Joystick 을 뒤로 하면 캐릭터가 뒷걸음질 치고 옆으로 하면 옆걸음을 하고 하는 식으로 변경해 본다.
단순히 방향에 맞춰 Animation Blending 을 해 줄 것이기 때문에,
BlendType 을 2D Simple Directional 로 선택한다.
VelocityX, VelocityZ Parameter 를 Animator 에 추가 해야 된다.
VelocityX 는 X 값, VelocityZ 는 Y 값에 매칭된다.
여기 까지 하면 방향에 맞춰 애니메이션이 재생은 되는데 방향전환시 휙휙 바뀌어 자연스럽지 못하다.
https://docs.unity3d.com/ScriptReference/Animator.SetFloat.html
_animator.SetFloat(_animIDVelocityX, targetDirection.normalized.x, 0.5f, Time.deltaTime);
_animator.SetFloat(_animIDVelocityZ, targetDirection.normalized.z, 0.5f, Time.deltaTime);
dampTime, deltaTime 값을 추가 설정해 주면 자연스럽게 변화한다.
근데 개발을 하다보니 Joystick A, B 두가지로 하나는 움직임, 하나는 뷰 컨트롤을 하게되면 항상 캐릭터 뒷면만 보게 되는 이슈가 생긴다.
이는 원복 해서 움직이는 방향과 바라보는 방향을 원복 시켰다.
InputSystem 이 문제가 됬는데 추가된 이벤트 실행시 에러가 발생했다.
이를 수정하려고 InputAction 을 수정하고, InputSystemUIInputModule 에 추가했는데 이러면 UGUI 에 입력이 되지 않는 이슈가 생겼다.
Default 로 수정해서 해결은 했는데, InputSystem 의 정확한 사용법을 몰라서 발생한 일이지 싶다.
공격 애니메이션 중 움직이지 않도록 하게
StateMachineBehaviour 를 통해 StateExit 이벤트 전까지 움직임을 막는다.
발자국 사운드 추가는 애니메이션에 타이밍에 맞게 EventTrigger 를 추가해서 추가 하였다.
https://forum.unity.com/threads/footstep-sounds-and-blending.756410/
방패로 방어 모드에 들어가는 애니메이션을 추가하려고 했는데 처음에 고안하지 않은 구조라 변경이 쉽지않았다. BlendTree 가 복붙 기능이 없어 구조 변경시 새로 만들어야 하나 하고 있었는데, 마침 누군가 만들어둔 툴이 있어 잘 활용하여 수정 하였다.
https://forum.unity.com/threads/mecanim-blend-trees-copy-and-paste.180152/
'Works > Unity 3D' 카테고리의 다른 글
[Unity] OpenUPM 사용법 2 (0) | 2021.08.26 |
---|---|
SoulLike 만들기 (3) -Postprocessing (0) | 2021.08.22 |
[Unity3D] Addressable 특징 메모 (0) | 2021.07.19 |
[Unity] OpenUPM - Custom Package 만들기 (0) | 2021.05.02 |
Unity C# DLL (0) | 2021.05.02 |
댓글