[Unity]24.RPG 튜토리얼 #3 - Blend Tree와 플레이어 공격

안녕하세요 유랑입니다.



실력향상을 위해서 오늘도 유튜브 강의를 따라하면서 공부하겠습니다.

궁금하신점 있으시면 댓글로 남겨주세요^^




1. RPG 만들기



이번 강의는 Patreon.com에서 외국인이 만든 강좌이며,

매달 $5의 후원을 통해야 리소스 다운을 받을 수 있습니다.

저는 돈을 지불하였고, 스킬업을 위해서 복습겸 글을 올리겠습니다.


리소스 사이트 => https://www.patreon.com/inScopeStudios/posts

유튜브 사이트 => https://goo.gl/o5VcTv







2. Blend Tree



2-1) Rigidbody 2D



캐릭터에게 물리효과를 주기 위해서 Rigidbody 2D를 추가하겠습니다.

추가하게되면 Gravity Scale이 보이실텐데 꼭 0으로 설정해 주세요.

중력의 크기를 뜻하며, 0은 중력의 영향을 받지 않는걸 뜻합니다.






캐릭터 스크립트 수정을 하겠습니다.

Rigidbody를 이용해서 이동할 예정이므로 FixedUpdate()를 사용하겠습니다.

FixedUpdate()는 물리효과가 적용될 때 상용됩니다.








2-2) Blend Tree



블렌드 트리는 두 개 이상의 애니메이션이 혼합되어있을 때 자연스럽게 변경되는걸 도와줍니다.

현재 Idle과 Walk의 애니메이션 형태가 복잡한것도 있기에 Blend Tree로 변경해 보겠습니다.

애니메이터 창으로 들어가 마우스 우측 버튼을 이용해 Blend Tree를 생성해 주시고,

기존에 있던 애니메이션 상태들은 전부 삭제해 주세요.






블렌드트리의 속성값은 다음과 같이 설정해 주세요.

해당 애니메이션은 드래그앤 드랍을 이용해 넣어주시면 됩니다.


- Blend Type => 2D Simple Direcsional

- Parameters => x, y

- Motion =>    Idle_Up     (X: 0, Y: 1)

           Idle_Down (X: 0, Y: -1)

           Idle_Right  (X: 1, Y: 0)

           Idle_Left    (X: -1, Y: 0)





Walk Layer에도 물론 블렌드 트리를 생성해 Idle과 똑같이 구성해 주세요.

복사 붙여넣기를 이용하셔도 무관합니다. 이름과 애니메이션만 변경해 주세요.







게임을 실행하여 움직임을 확인해 보세요^^






3. 플레이어 공격



3-1) 애니메이션 셋팅



플레이어 공격 스프라이트들을 전부 선택 후 Pixels Per Unity 값을 300으로 변경한 후 적용해 주세요.






AttackDown, AttackLeft, AttackRight, AttackUp 스프라이트들을 각각 선택 후

드래그앤 드랍을 이용해 플레이어 오브젝트에 넣어 주세요.

그러면 애니메이션 생성이 가능해 진답니다.







애니메이션 이름은 다음과 같이 설정해주세요.






3-2) Attack Layer와 Blend Tree



플레이어 공격도 레이어를 나눠서 구성하겠습니다.

애니메이터에 레이어를 추가 후 Attack_Tree라는 블렌드트리를 생성해 주세요.







Idle과 Walk와 동일하게 블렌드 트리를 설정할게요.

해당 애니메이션을 똑같이 적용해 주세요.





공격을 안할 때와 할 때로 구분되므로 애니메이션이 들어가 있지않은 상태를 생성하고,

Attack_Tree와 트랜지션하겠습니다.





Wait 애니메이션 상태를 클릭 후 마우스 우측 버튼을 이용해서 Default State로 설정해 주세요.

해당 레이어가 실행될 때 맨 처음 설정되는 애니메이션 상태입니다.





Boo값으로 attack이라는 파라미터를 생성해 주세요.

true일 때는 Attack_Tree로, false일 때는 Wait로 전환해 줄게요.





트랜지션 설정은 동일합니다.

단, 컨디션 값은 해당 트랜지션에 맞게 설정해 주세요.


- Has Exit Time => 언체크

- Transition Duration => 0

- Transition Offset => 0








3-3) 플레이어 공격 적용하기



Character 스크립트로 들어가 코드를 수정해 주세요.

공격 가능여부를 판단하기 위해서 bool값과 enum에 AttackLayer도 추가되었고,

공격을 중지한다는 코드도 있습니다.










Player 스크립트는 스페이스 버튼을 이용해 공격,

Coroutine을 이용해 공격 애니메이션 변경을 적용하였어요.

코루틴은 쓰레드를 사용하지 않고, 멀티 테스킹이 가능하도록 도와주는 기능입니다.

앞으로 자주 나올거에요!!





Space버튼을 클릭하면 공격이 가능해집니다.

아직은 좀 어색하지만 추후 계속 바뀌겠죠?






4. 마무리



오늘 강의는 여기까지입니다.

RPG 튜토리얼을 따라하면서 Blend Tree와 플레이어 공격을 만들어 보았습니다.

다음 시간에는 공격 위치와 캐스팅에 대해서 배워보겠습니다.

감사합니다.




수업자료: https://github.com/YouRang12/-Tistory-Unity---Extra-2D-









댓글

Designed by JB FACTORY