Creator Guide
Korean
Korean
  • OVERDARE
    • 🚩OVERDARE 소개
    • 🐤시작하기
      • OVERDARE App
      • OVERDARE Studio
    • 📌운영 정책
      • 커뮤니티 가이드라인
      • UGC 콘텐츠 제작 가이드라인
      • UGC의 외부 활용 가이드라인
      • LOGO 활용 가이드라인
      • 지식 재산권 정책
      • 신고 안내
      • 콘텐츠 제재 이의 신청 안내
      • 크리에이터 정산 정책
      • OVERDARE 수익화 가이드라인
      • 포럼 사용 가이드라인
    • 🅰️OVERDARE Glossary
  • MANUAL
    • 🏰스튜디오 메뉴얼
      • 시작하기
        • 스튜디오 인터페이스
        • 월드 템플릿
        • 좌표계
        • 스튜디오 테스트 플레이
        • 월드 퍼블리시
        • Collaboration
      • 에셋 & 리소스 제작
        • 에셋 임포트
        • 애니메이션 에디터
        • Shadow Detail 설정
      • 게임 제작
        • 게임 설정
        • 스크립트 에디터
        • 정렬
        • Material Manager
        • Collision Groups
        • Tag Editor
        • 퍼포먼스 가이드
        • 월드 성능 분석
      • Object
        • 파트
        • 모델
        • 카메라
        • 물리
        • 조명
        • Tool
        • VFX
        • Sound
      • 캐릭터
        • 캐릭터 애니메이션
        • Humanoid Description
      • GUI
    • 📝스크립트 메뉴얼
      • 시작하기
        • 스크립트 개요
        • 루아 기초 가이드
        • 코딩 스타일
        • 오브젝트 참조
        • 유니티 개발자용 가이드
      • 이벤트 및 통신
        • 이벤트
        • 서버-클라 통신
        • BindableEvent
        • Value Objects
      • 입력 및 조작
        • 모바일 조작 처리
        • TPS Strafing System
      • 게임 고도화
        • Saving & Loading Data
        • 트윈
        • 모듈 스크립트
        • JSON과 HTTP 통신
      • 디버깅 & 최적화
        • 중단점
        • 스크립트 최적화 실전 가이드
    • 💡크리에이터 참고 자료
      • 크리에이터를 위한 게임 용어 번역표
    • 💸수익화
      • Payout Guideline
  • DEVELOPMENT
    • 📚API Reference
      • Enums
        • ActuatorRelativeTo
        • AnimationPriority
        • AspectType
        • AssetTypeVerification
        • BorderMode
        • CameraMode
        • CameraType
        • ContextActionResult
        • CoreGuiType
        • DominantAxis
        • EasingDirection
        • EasingStyle
        • ForceLimitMode
        • HttpCompression
        • HttpContentType
        • HumanoidDisplayDistanceType
        • HumanoidStateType
        • KeyCode
        • Material
        • MaterialPattern
        • NormalId
        • ParticleEmitterShape
        • ParticleEmitterShapeInOut
        • ParticleEmitterShapeStyle
        • ParticleFlipbookLayout
        • ParticleFlipbookMode
        • ParticleOrientation
        • PartType
        • PlaybackState
        • RaycastFilterType
        • RollOffMode
        • RotationType
        • UserInputState
        • UserInputType
        • VelocityConstraintMode
      • DataTypes
        • BlendSpaceSampleSata
        • BrickColor
        • CFrame
        • Color3
        • ColorSequence
        • ColorSequenceKeypoint
        • Content
        • Enum
        • EnumItem
        • NumberRange
        • NumberSequence
        • NumberSequenceKeypoint
        • OverlapParams
        • PhysicalProperties
        • Ray
        • RaycastParams
        • RaycastResult
        • ScriptConnection
        • ScriptSignal
        • TweenInfo
        • Udim
        • Udim2
        • Vector2
        • Vector3
      • Classes
        • Animation
        • AngularVelocity
        • AnimationTrack
        • Animator
        • Atmosphere
        • Attachment
        • Backpack
        • BackpackItem
        • BasePart
        • BaseScript
        • Beam
        • BindableEvent
        • BlendSpace
        • BoolValue
        • Bone
        • Camera
        • CharacterMesh
        • CollectionService
        • Constraint
        • ContextActionService
        • CoreGui
        • DataStore
        • DataModel
        • DataStoreGetOptions
        • DataStoreIncrementOptions
        • DataStoreInfo
        • DataStoreKeyPages
        • DataStoreKeyInfo
        • DataStoreService
        • DataStoreListingPages
        • DataStoreSetOptions
        • FormFactorPart
        • Frame
        • Folder
        • GlobalDataStore
        • GuiBase2d
        • GuiButton
        • GuiObject
        • HttpService
        • Humanoid
        • HumanoidDescription
        • ImageButton
        • ImageLabel
        • InputObject
        • IntValue
        • LayerCollector
        • Instance
        • Light
        • Lighting
        • LinearVelocity
        • LocalScript
        • LuaSourceContainer
        • MaterialService
        • MaterialVariant
        • MeshPart
        • Model
        • ModuleScript
        • Mouse
        • NumberValue
        • OrderedDataStore
        • Pages
        • Part
        • ParticleEmitter
        • PhysicsService
        • Player
        • PlayerGui
        • Players
        • PlayerScripts
        • PointLight
        • PVInstance
        • ReplicatedStorage
        • RemoteEvent
        • ScreenGui
        • RunService
        • Script
        • ServerStorage
        • ServiceProvider
        • Skeleton
        • ServerScriptService
        • Sound
        • SoundService
        • SoundGroup
        • SpotLight
        • SpawnLocation
        • StarterCharacterScripts
        • StarterPack
        • StarterGui
        • StarterPlayer
        • StarterPlayerScripts
        • StringValue
        • SurfaceGui
        • SurfaceGuiBase
        • Team
        • Teams
        • TextLabel
        • TextButton
        • Tool
        • Trail
        • Tween
        • TweenService
        • TweenBase
        • UIAspectRatioConstraint
        • UserGameSettings
        • UserInputService
        • UserSettings
        • VectorForce
        • Workspace
        • WrapLayer
        • WorldRoot
        • WrapTarget
  • UPDATE
    • 📰Release Note
Powered by GitBook
On this page
  • 개요
  • 사용 방법
  • Use Strafing Animations 활성화
  • 캐릭터의 회전 방향을 카메라 방향 기준으로 설정
  • 카메라 오프셋 적용
  • 상체 애니메이션 변경
  • 활용 예시
  • Strafing 전용 애니메이션 에셋
  1. MANUAL
  2. 스크립트 메뉴얼
  3. 입력 및 조작

TPS Strafing System

Previous모바일 조작 처리Next게임 고도화

Last updated 7 days ago

개요

TPS Strafing System은 3인칭 슈팅(TPS) 게임에서 널리 사용되는 이동 방식으로, 캐릭터가 카메라의 방향을 기준으로 움직이며, 상체는 조준점을 향한 상태를 유지하고 하체는 이동 방향에 맞춰 움직입니다. 이를 통해 상하체 애니메이션이 독립적으로 재생되며, 보다 자유로운 조준 및 이동 컨트롤이 가능해집니다.

사용 방법

Use Strafing Animations 활성화

Level Browser에서 Players를 선택한 다음, Use Strafing Animations를 활성화합니다.

이 옵션이 비활성화되어 있으면 단일 이동 애니메이션이 재생됩니다.

이 옵션을 활성화할 경우, 대각선을 포함한 상하좌우 8방향 애니메이션이 이동 방향에 맞춰 재생됩니다. 이를 통해 게걸음(Strafing), 후진, 대각선 이동 등 다양한 방향의 이동이 자연스럽게 표현됩니다.

Use Strafing Animations 옵션만 단독으로 활성화했을 경우, 시각적인 차이가 뚜렷하지 않을 수 있습니다. 이 기능은 아래의 설정들과 함께 사용해야 효과를 제대로 확인할 수 있습니다.

캐릭터의 회전 방향을 카메라 방향 기준으로 설정

UserGameSettings의 RotationType을 CameraRelative로 설정하여 캐릭터가 카메라 방향을 기준으로 회전하게 설정합니다.

(기존 설정으로 복구하려면 Enum.RotationType.MovementRelative로 설정하면 됩니다.)

StarterCharacterScripts에서 LocalScript로 아래의 코드 작성:

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

repeat wait() until LocalPlayer.Character
local Character = LocalPlayer.Character
local Humanoid = Character:WaitForChild("Humanoid")

local UserGameSettings = UserSettings().GameSettings
UserGameSettings.RotationType = Enum.RotationType.CameraRelative

Use Strafing Animations 옵션이 활성화된 상태에서 캐릭터의 회전 방향을 카메라 기준(CameraRelative)으로 설정하면, 캐릭터는 항상 카메라 방향을 바라보게 됩니다. 이를 통해 상체는 카메라(조준 방향)을 기준으로, 하체는 이동 방향을 기준으로 각각 독립적인 애니메이션이 재생됩니다.

RotationType이 CameraRelative로 설정된 경우, 캐릭터가 카메라 방향을 따라 회전하는 속도는 CharacterTurnRateWhenUsingCameraRelative 값을 통해 조절할 수 있습니다. (이 값의 기본값은 -1이며, 이는 즉시 회전함을 의미합니다.)

UserGameSettings.CharacterTurnRate = 200

카메라 오프셋 적용

CameraOffset 속성으로 카메라의 상대 위치를 설정할 수 있습니다. 특히 TPS 게임에서는 캐릭터를 화면 중앙에서 약간 벗어난 위치에 배치함으로써, 조준점과 캐릭터가 시각적으로 겹치지 않도록 설정하는 데 활용됩니다.

StarterCharacterScripts에서 LocalScript로 아래의 코드 작성:

local Workspace = game:GetService("Workspace")
local Camera = Workspace:WaitForChild("Camera")

Camera.CameraOffset = Vector3.new(90, 90, -120)

상체 애니메이션 변경

Use Strafing Animations 옵션과 무관하게 캐릭터는 상체와 하체 애니메이션을 분리하여 재생할 수 있습니다. 애니메이션 트랙의 UpperBodyAnimation 속성을 true로 설정하면, 해당 애니메이션은 상체에만 적용되어 재생됩니다.

StarterCharacterScripts에서 LocalScript로 아래의 코드 작성:

local Animation = Instance.new("Animation")
Animation.AnimationId = "BasicHandgunIdleAnimation"

local Animator = Humanoid:FindFirstChild("Animator")
local AnimationTrack = Animator:LoadAnimation(Animation)
AnimationTrack.UpperBodyAnimation = true
AnimationTrack.Priority = Enum.AnimationPriority.Movement 

AnimationTrack.Looped = true
AnimationTrack:Play()

Use Strafing Animations 옵션과 UpperBodyAnimation을 함께 사용하면, 상체는 조준 방향, 하체는 이동 방향을 기준으로 동작하여 보다 자연스럽고 역동적인 캐릭터 애니메이션을 구현할 수 있습니다.

활용 예시

  • 총기 장착 여부에 따른 RotationType 설정

    • 총기를 장착하지 않은 상태에서는 MovementRelative로 설정하여 일반 이동 처리

    • 총기를 장착한 상태에서는 CameraRelative로 설정하여 시야 고정 이동 처리

  • 투척류 무기를 장착한 상태에서 조준 여부에 따른 RotationType 설정

    • 미조준시에는 MovementRelative로 설정하여 일반 이동 처리

    • 조준시에는 CameraRelative로 설정하여 시야 고정 이동 처리

  • 무기 종류별로 CameraOffset를 다르게 처리

Strafing 전용 애니메이션 에셋

애니메이션 ID가 숫자 형식인 경우, 해당 에셋을 Asset Drawer에서 이름으로 검색한 뒤 Level Browser에 배치해야 스크립트에서 사용할 수 있습니다. (Level Browser에 배치되어 있지 않으면 Studio에서는 정상적으로 로드되더라도 모바일에서는 로드되지 않습니다.)

애니메이션 재생 방법 알아보기

Animation
Animation Id

BasicWalkForwardAnimation

or

ovdrassetid://14128300

  • Asset Name : BasicWalkAnimations

    • BasicWalkForwardAnimation

BasicWalkLeftAnimation

or

ovdrassetid://14129100

  • Asset Name : BasicWalkAnimations

    • BasicWalkLeftAnimation

BasicWalkForwardLeftAnimation

or

ovdrassetid://14128200

  • Asset Name : BasicWalkAnimations

    • BasicWalkForwardLeftAnimation

BasicWalkForwardRightAnimation

or

ovdrassetid://14129200

  • Asset Name : BasicWalkAnimations

    • BasicWalkForwardRightAnimation

BasicWalkRightAnimation

or

ovdrassetid://14128100

  • Asset Name : BasicWalkAnimations

    • BasicWalkRightAnimation

BasicWalkBackLeftAnimation

or

ovdrassetid://14129400

  • Asset Name : BasicWalkAnimations

    • BasicWalkBackLeftAnimation

BasicWalkBackRightAnimation

or

ovdrassetid://14129300

  • Asset Name : BasicWalkAnimations

    • BasicWalkBackRightAnimation

BasicWalkBackAnimation

or

ovdrassetid://14129500

  • Asset Name : BasicWalkAnimations

    • BasicWalkBackAnimation

BasicRunForwardAnimation

or

ovdrassetid://14035200

  • Asset Name : BasicAnimations

    • BasicRunForwardAnimation

BasicRunLeftAnimation

or

ovdrassetid://14035400

  • Asset Name : BasicAnimations

    • BasicRunLeftAnimation

BasicRunForwardLeftAnimation

or

ovdrassetid://14035300

  • Asset Name : BasicAnimations

    • BasicRunForwardLeftAnimation

BasicRunForwardRightAnimation

or

ovdrassetid://14033500

  • Asset Name : BasicAnimations

    • BasicRunForwardRightAnimation

BasicRunRightAnimation

or

ovdrassetid://14033800

  • Asset Name : BasicAnimations

    • BasicRunRightAnimation

BasicRunBackLeftAnimation

or

ovdrassetid://14033700

  • Asset Name : BasicAnimations

    • BasicRunBackLeftAnimation

BasicRunBackRightAnimation

or

ovdrassetid://14035100

  • Asset Name : BasicAnimations

    • BasicRunBackRightAnimation

BasicRunBackAnimation

or

ovdrassetid://14033600

  • Asset Name : BasicAnimations

    • BasicRunBackAnimation

Animation
Animation Id

ovdrassetid://13322700

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkFowardAnimation

ovdrassetid://13322400

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkLeftFowardAnimation

ovdrassetid://13323000

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkRightFowardAnimation

ovdrassetid://13321800

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkLeftAnimation

ovdrassetid://13322500

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkRightAnimation

ovdrassetid://13321900

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkBackAnimation

ovdrassetid://13321700

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkLeftBackAnimation

ovdrassetid://13321400

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkRightBackAnimation

ovdrassetid://13322800

  • Asset Name : MeleeMovingAnimations

    • MeleeRunFowardAnimation

ovdrassetid://13322600

  • Asset Name : MeleeMovingAnimations

    • MeleeRunLeftFowardAnimation

ovdrassetid://13321500

  • Asset Name : MeleeMovingAnimations

    • MeleeRunRightFowardAnimation

ovdrassetid://13322100

  • Asset Name : MeleeMovingAnimations

    • MeleeRunLeftAnimation

ovdrassetid://13321600

  • Asset Name : MeleeMovingAnimations

    • MeleeRunRightAnimation

ovdrassetid://13322900

  • Asset Name : MeleeMovingAnimations

    • MeleeRunBackAnimation

ovdrassetid://13321200

  • Asset Name : MeleeMovingAnimations

    • MeleeRunLeftBackAnimation

ovdrassetid://13322300

  • Asset Name : MeleeMovingAnimations

    • MeleeRunRightBackAnimation

Animation
Animation Id

ovdrassetid://13335100

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkFowardAnimation

ovdrassetid://13333700

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkLeftFowardAnimation

ovdrassetid://13330300

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkRightFowardAnimation

ovdrassetid://13330400

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkLeftAnimation

ovdrassetid://13333600

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkRightAnimation

ovdrassetid://13330100

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkBackAnimation

ovdrassetid://13333300

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkLeftBackAnimation

ovdrassetid://13335200

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkRightBackAnimation

ovdrassetid://13333400

  • Asset Name : HandgunMovingAnimations

    • HandgunRunFowardAnimation

ovdrassetid://13334100

  • Asset Name : HandgunMovingAnimations

    • HandgunRunLeftFowardAnimation

ovdrassetid://13330200

  • Asset Name : HandgunMovingAnimations

    • HandgunRunRightFowardAnimation

ovdrassetid://13333200

  • Asset Name : HandgunMovingAnimations

    • HandgunRunLeftAnimation

ovdrassetid://13331100

  • Asset Name : HandgunMovingAnimations

    • HandgunRunRightAnimation

ovdrassetid://13333100

  • Asset Name : HandgunMovingAnimations

    • HandgunRunBackAnimation

ovdrassetid://13332100

  • Asset Name : HandgunMovingAnimations

    • HandgunRunLeftBackAnimation

ovdrassetid://13333500

  • Asset Name : HandgunMovingAnimations

    • HandgunRunRightBackAnimation

Animation
Animation Id

ovdrassetid://13354000

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkFowardAnimation

ovdrassetid://13356100

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkLeftFowardAnimation

ovdrassetid://13356600

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkRightFowardAnimation

ovdrassetid://13357500

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkLeftAnimation

ovdrassetid://13356900

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkRightAnimation

ovdrassetid://13356300

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkBackAnimation

ovdrassetid://13356500

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkLeftBackAnimation

ovdrassetid://13356400

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkRightBackAnimation

ovdrassetid://13356700

  • Asset Name : RifleRunFowardAnimation

    • RifleRunFowardAnimation

ovdrassetid://13357300

  • Asset Name : RifleRunFowardAnimation

    • RifleRunLeftFowardAnimation

ovdrassetid://13356200

  • Asset Name : RifleRunFowardAnimation

    • RifleRunRightFowardAnimation

ovdrassetid://13357400

  • Asset Name : RifleRunFowardAnimation

    • RifleRunLeftAnimation

ovdrassetid://13356800

  • Asset Name : RifleRunFowardAnimation

    • RifleRunRightAnimation

ovdrassetid://13357100

  • Asset Name : RifleRunFowardAnimation

    • RifleRunBackAnimation

ovdrassetid://13357600

  • Asset Name : RifleRunFowardAnimation

    • RifleRunLeftBackAnimation

ovdrassetid://13357200

  • Asset Name : RifleRunFowardAnimation

    • RifleRunRightBackAnimation

📝
캐릭터 애니메이션
Use Strafing Animations 비활성화
Use Strafing Animations 활성화