1인칭 시점이라 자신의 모습이 잘보이지 않기 때문에 플레이어는 간단하게만 대기. 이동, 공격의 세가지 애니메이션만 구현합니다.
맨먼저 Animations폴더에 우클릭후 Animation Controller를 만들고 SoldierAnim으로 변경합니다. Solider_Demo Animation Controller에 끌어다 놓습니다.
컨트롤러를 클릭해 애니메이션에디터를 열어 demo_combat_idle.fbx를 애니메이션뷰에 끌어다 놓습니다.
플레이 해보면 Idle animation이 잘 재생되지만 가까운 모델들은 짤려보입니다.
이건 카메라의 절두체의 문제인데 Clipping Planes를 Near를 0.22로 변경합니다.
Player는 FSM을 만들지 않았기 때문에 Player의 키입력에 따라 움직여 보도록 하겠습니다.
Animation Controller를 열고 우클릭후 Create State From New blender Tree를 선택 MoveBlend로 변경합니다.
MoveBlend안으로 들어가 BlendTree노드가 있는데 이걸 클릭하면 Inspector에서 Motion List가 비어 있습니다. +를 눌러
demo_combat_idle을 끌어다 놓습니다.
demo_combat_run도 추가합니다.
그래프에 노드들이 추가되었고 프리뷰를 플레이하면서 Blend slide를 움직여 보면 애니메이션이 blend 됩니다.
Blend를 만들때 자동으로 파라미터에 Blend가 생겼는데 이름을 MoveMotion으로 바꿉니다. 다시 Base로 돌아와 MoveBlend를 Default로 만들고
중복되는 idle노드를 지워줍니다.
이제 PlayerMove.cs 에서 블랜딩 트리를 호출해 보겠습니다.
anim 변수를 추가하고, Start()에서 anim을 지정해 줍니다. Soldier Mesh가 자식이므로 GetComponentInChildren을 사용합니다.
Animator anim;
void Start()
{
cc = GetComponent<CharacterController>();
anim = GetComponentInChildren<Animator>();
}
dir값을 MoveMotion 파라미터에 지정해 줍니다.
void Update()
{
생략
dir = dir.normalized;
--> anim.SetFloat("MoveMotion", dir.magnitude);
dir = Camera.main.transform.TransformDirection(dir);
플레이 해서 앞으로 나아가면 머리가 앞쪽으로 움직이기 때문에 머리형태가 보입니다. 카메라를 눈 앞으로 배치하고 카메라 Near를 최소한으로 줄입니다.
demo_combat_shoot animation을 끌어다 animation control에 놓고 MoveBlend와 서로 transition을 만들어 줍니다
Attack trigger 파라미터를 만들고
combat_shoot으로 가는 transition은 조건을 Attack으로하고
MoveBlend로 돌아가는 Transition은 조건없이 Has Exit Time 은 체크한체로 놔둡니다.
PlayerFire.cs에서
Animator anim;
void Start()
{
cc = GetComponent<CharacterController>();
anim = GetComponentInChildren<Animator>();
}
좌클릭시 MoveMotion Float의 값이 0일 경우에는 발사 애니메이션을 트리거 합니다.
if (Input.GetMouseButtonDown(0))
{
if(anim.GetFloat("MoveMotion") == 0)
{
anim.SetTrigger("Attack");
}
플레이어가 죽었을 경우 멈춰야 하므로 MoveMotion의 값을 0으로 해줍니다. GameManger.cs에서 처리합니다.
Animator anim;
void Start()
{
생략
anim = GameObject.Find("Player").GetComponentInChildren<Animator>();
}
void Update()
{
if(player.hp <= 0)
{
anim.SetFloat("MoveMotion", 0f);
생략
'인생유니티 > FPS게임' 카테고리의 다른 글
무기 모드 추가및 효과 적용 (0) | 2025.04.24 |
---|---|
Navigation (1) | 2025.04.24 |
플레이어 모델링 교체 (0) | 2025.04.23 |
Enemy Animation (0) | 2025.04.22 |
모델링 교체와 애니메이션 - 알파 (1) | 2025.04.22 |