일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- NavMesh
- 깃허브
- github
- error
- 쉐이더
- 사용법
- 리깅
- 튜토리얼
- 애니메이션
- 익명 타입
- 리팩토링
- 2판
- c#
- 오류
- Effective C#
- 유니티
- 프로퍼티
- 애님
- 에러
- 쓰는 법
- Final IK
- unity
- 메모리
- 유니티 그래픽 최적화
- 유니티 그래픽스 최적화 스타트업
- 속성
- 최적화
- shader
- tutorial
- 파이널 IK
- Today
- Total
참치김밥은 최고의 한식이다
[Unity] Final IK Tutorial 정리 - Aim IK Redirecting Animation 본문
문제 상황 : 불규칙한 바닥이나 벽이 나타났을 때, 애니메이션은 이미 정해진 클립이기 때문에 유연하게 대응할 수 없다.
STEP 1 :
캐릭터 오브젝트에서, Animator와 같은 계층에 Aim IK 컴포넌트를 추가한다.
Bones는 본인이 대응시키고 싶은 부위의 관절을 알맞게 순서대로 (root -> tip) 넣어주면 된다.
해당 영상에서는 벽, 바닥에 따라 몽둥이를 다르게 휘두를 필요가 있어서, Spine을 건드려주었다.
따라서 아래 사진과 같이 할당해주었다
참고로, Aim Transform은 부위의 가장 마지막(여기서는 Bones의 4번째인 Neck이 되겠다)에 빈 오브젝트를 추가한 뒤 Transform을 리셋한 녀석이다.
이렇게 하면, Aim Transform이 어디 있느냐에 따라 척추가 회전하고, 애니메이션이 바라보는 방향도 바꿀 수 있다.
하지만, 이는 자동이 아니다. 그리고 모든 각도로 돌아간다. 따라서, Aim IK를 위한 default direction이 있어야 한다.
STEP 2 :
Aim IK의 offset을 조정할 새로운 스크립트를 하나 생성하고, 아래와 같이 코드를 작성한다. (영상에서의 스크립트 이름은 TerrainOffsetAimIK 이다)
STEP 3 :
위와 같이 할당해준다.
이때, Target의 Sphere는 그냥 임의로 새 Sphere 하나 생성 후, 넣어주면 된다. 어디의 자식으로 넣을 필요도 없음
와너무 졸리다
하지만 이렇게만 하면 그냥 Aim IK만 쓸 때와 다를 바가 없음!! (스크립트 추가하기 전이랑 다를 게 없음!)
STEP 3 :
따라서, 코드를 위와 같이 수정한다
aimIK를 통해 spine이 target쪽으로 틀되, offset을 넣어서 원하는 곳을 바라보도록 수정한 코드인 듯 하다
이렇게 하면, 아바타가 원하는 방향으로 몸 틀기 + 특정 포인트 바라보기 둘 다 수행할 수 있게 된다 !
+ ) Raycast로 특정 지점 지정하기
Ray를 쏴서, 원하는 곳(벽 또는 바닥 등)에 맞춘 후,
맞은 point 쪽에 Aim Transform을 위치시키고,
맞은 point의 월드 좌표를 Aim Transform 기준의 로컬 좌표로 변환한 후, TerrainOffsetAimIK.cs의 offset 에 할당해주면 될 듯 하다~~
변칙적인 환경 속에서 애니메이션이 자유롭게, 유동적이어야 할 경우 유용하겠다~~~
출처 : https://www.youtube.com/watch?v=OhCtiV5r8HA&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6&index=10
'Unity' 카테고리의 다른 글
[Unity] Final IK Tutorial 정리 - Interaction System Basics (2) (0) | 2023.06.19 |
---|---|
[Unity] Final IK Tutorial 정리 - Interaction System Basics (1) (0) | 2023.06.19 |
[Unity] Final IK Tutorials 정리 - Custom IK Rigs (0) | 2023.06.19 |
[Unity] RectTransform left, right, top, bottom 값 수정 및 가져오기 (0) | 2023.06.15 |
[Unity] 코드가 이상할 때, 코드 호출 타이밍 이상할 때 (한 번이라도 보면 후회 안함) (0) | 2023.06.14 |