Summary
-
애니메이터 내의 각 애니메이션에 대한 이벤트를 생성, 관리할 수 있는 컴포넌트
-
애니메이션의 프레임마다 이벤트를 추가할 수 있습니다.
-
플레이모드의 변경 사항은 플레이모드가 종료되어도 유지됩니다.
-
테스트 버전 :
2018.3.14f1
,2019.4.9f1
,2020.3.14f1
Usage Example
-
캐릭터가 칼을 휘두르는 순간에 검기 이펙트 생성하기
-
캐릭터가 걸을 때, 발이 땅에 닿는 순간마다 발소리 재생하기
Preview
0. Download & Import
-
첨부 파일을 다운로드하고, 유니티 프로젝트가 켜져 있는 상태에서 실행합니다.
-
임포트 창이 나타나면
Import
버튼을 클릭하여 프로젝트에 임포트합니다.
1. Animator 컴포넌트 준비
-
Animator
컴포넌트를 게임오브젝트에 추가합니다. -
Animator
컴포넌트에는Controller
부분에Animator Controller
애셋이 등록되어 있어야 합니다. -
Animator Controller
내에는 반드시 하나 이상의 애니메이션이 존재해야 합니다.
2. Animator Event Controller 컴포넌트 추가
Animator
컴포넌트의 이름 부분을 우클릭하고Add Animator Event Controller
를 클릭하여AnimatorEventController
컴포넌트를 추가합니다.
3. 영문, 한글 전환
- 우측 상단의
Eng/한글
버튼을 클릭하여 영문, 한글 모드를 전환할 수 있습니다.
4. 이벤트 목록 확인
-
애니메이터에 등록된 이벤트를 모두 확인할 수 있습니다.
-
이벤트는 애니메이션 클립별로 구분되어 표시됩니다.
-
각 이벤트는 프레임 순서로 정렬되어 표시됩니다.
5. 재생 모드, 편집 모드 전환
-
편집 모드
토글을 클릭하여 재생 모드와 편집 모드를 전환할 수 있습니다. -
두 개의 슬라이더를 조절하여 각 모드별 게임 진행 속도를 조절할 수 있습니다.
-
재생 모드에서는 속도가
0
이 아닌 경우, 애니메이션이 시간에 따라 재생됩니다. -
편집 모드에서는 애니메이션이 항상 정지합니다.
-
애니메이션 편집은 편집 모드에서만 가능합니다.
주의사항
- 원활한 이벤트 편집을 위해서는 유니티 에디터가 플레이모드에 진입해야 합니다.
6. 이벤트 추가/제거
-
[+]
버튼을 클릭하여 새로운 이벤트를 추가할 수 있습니다. -
각 이벤트 우측에 존재하는
[-]
버튼을 클릭하여 해당 이벤트를 제거할 수 있습니다.
7. 이벤트 속성
[1] 활성화/비활성화
-
각 이벤트 좌측의 체크박스를 체크/해제하여 활성화/비활성화할 수 있습니다.
-
비활성화된 이벤트는 무시됩니다.
[2] 프리팹 오브젝트
-
이벤트를 통해 생성하기를 원하는 프리팹을
프리팹 오브젝트
부분에 등록할 수 있습니다. -
프리팹 오브젝트가 등록될 경우 이름이 자동으로 지정되며, 이름을 직접 수정할 수도 있습니다.
-
등록된 프리팹 오브젝트가 존재하지 않는 경우, 해당 이벤트는 무시됩니다.
[3] 애니메이션
-
이벤트 등록을 원하는 애니메이션 클립을 지정합니다.
-
애니메이터 내에 등록된 애니메이션 목록이 드롭다운 형태로 제공됩니다.
-
애니메이터 내에 애니메이션이 단 하나만 존재하는 경우, 자동으로 해당 애니메이션으로 선택되며 이 옵션이 나타나지 않습니다.
[4] 생성 프레임
-
이벤트 발생 타이밍으로 등록할 프레임을 지정합니다.
-
슬라이더의 범위는 해당 애니메이션의 프레임 범위로 자동 설정됩니다.
-
애니메이션이 해당 프레임에 도달할 경우, 등록된 프리팹이 복제되어 생성됩니다.
-
현재 재생 중인 애니메이션 프레임이 생성 프레임과 일치하는 경우, 슬라이더가 하늘색으로 강조 표시됩니다.
[5] 부모 트랜스폼
-
이벤트를 통해 생성된 오브젝트가 소속될 부모 게임 오브젝트를 지정합니다.
-
오브젝트가 생성되면 해당 게임 오브젝트의 자식으로 포함됩니다.
-
우측의
[M]
버튼을 클릭하면AnimatorEventController
가 존재하는 게임 오브젝트가 등록됩니다. -
부모 트랜스폼이 등록된 상태에서 우측의
[X]
버튼을 클릭하면 부모 트랜스폼이 해제됩니다. -
부모 트랜스폼이 등록된 상태에서
부모-자식 관계 유지
에 체크 해제할 경우, 이벤트 오브젝트의 위치, 회전, 크기 속성은 부모 트랜스폼을 따르지만, 자식으로 소속되지 않고 개별 오브젝트로 생성됩니다.
[6] 위치, 회전, 크기
-
이벤트를 통해 생성되는 오브젝트의 위치, 회전, 크기를 지정합니다.
-
부모 오브젝트가 등록되지 않은 경우, 월드 속성을 따릅니다.
-
부모 오브젝트가 등록된 경우, 해당 부모 트랜스폼에 종속되어 로컬 값으로 지정됩니다.
[7] 추가 옵션
-
하단의
>...
버튼을 클릭하여 추가 옵션을 확인할 수 있습니다. 위치, 회전, 크기 초기화
버튼- 위치와 회전을
(0, 0, 0)
, 크기를(1, 1, 1)
로 초기화합니다.
- 위치와 회전을
로컬 트랜스폼 복제
- 트랜스폼 속성을 복제하기를 원하는 다른 게임오브젝트를 드래그하여 끌어다 넣습니다.
- 해당 게임오브젝트의 트랜스폼이 갖고 있던 로컬 위치, 회전, 크기값을 이 이벤트에 적용합니다.
월드 트랜스폼 복제
- 트랜스폼 속성을 복제하기를 원하는 다른 게임오브젝트를 드래그하여 끌어다 넣습니다.
- 해당 게임오브젝트의 트랜스폼이 갖고 있던 월드 위치, 회전, 크기값을 이 이벤트에 적용합니다.
8. 플레이모드 기능
[1] 처음부터 다시 재생 버튼
- 현재 재생 중인 애니메이션을 0프레임부터 다시 재생합니다.
[2] 복제된 모든 오브젝트 제거 버튼
- 이벤트로 인해 씬에 생성된 모든 오브젝트들을 제거합니다.
[3] 생성된 오브젝트 확인
-
이벤트로 인해 복제되어 씬에 생성된 오브젝트를 확인할 수 있습니다.
-
더블클릭 시 해당 오브젝트를 즉시 선택할 수 있습니다.
9. 편집모드 기능
[1] 프레임 이동 버튼
<<
: 프레임을 앞으로 2만큼 이동합니다.<
: 프레임을 앞으로 1만큼 이동합니다.>
: 프레임을 뒤로 1만큼 이동합니다.>>
: 프레임을 뒤로 2만큼 이동합니다.
[2] 프레임 기능 버튼
생성 프레임으로 이동
- 해당 이벤트에 지정한 애니메이션과 현재 재생 중인 애니메이션이 일치하는 경우에만 활성화됩니다.
- 해당 이벤트에 지정한 생성 프레임으로 현재 프레임을 이동합니다.
현재 프레임 지정
- 해당 이벤트에 지정한 애니메이션과 현재 재생 중인 애니메이션이 일치하는 경우에만 활성화됩니다.
- 현재 재생 중인 프레임을 생성 프레임에 지정합니다.
[3] 오브젝트 생성/제거 버튼
오브젝트 생성
- 현재 재생 중인 프레임이 해당 이벤트의 생성 프레임과 일치하는 경우에만 활성화됩니다.
- 클릭 시 프리팹을 즉시 복제하여 씬에 생성합니다.
- 기존에 생성된 오브젝트가 존재할 경우, 제거하고 새로 생성합니다.
오브젝트 제거
- 이미 생성된 오브젝트가 존재할 경우에만 활성화됩니다.
- 생성된 오브젝트를 제거합니다.
10. 이벤트 편집 시 유의사항
- 현재 재생 중인 애니메이션과 이벤트에 지정된 애니메이션이 일치하는 경우에만 해당 이벤트를 편집할 수 있습니다.
위치, 회전, 크기 수정
-
이벤트 속성에서
위치, 회전, 크기
를 수정하는 경우,생성된 오브젝트
가 존재하면 해당 오브젝트에 수정사항이 실시간으로 적용됩니다. -
편집 모드일 때,
생성된 오브젝트
의 트랜스폼을 직접 수정하는 경우, 이벤트의위치, 회전, 크기
에 수정사항이 실시간으로 적용됩니다.생성된 오브젝트
가 파괴되지 않도록, 편집 모드의게임 진행 속도
를0
으로 고정하고 수정하는 것을 권장합니다.
- 예외사항 :
부모 트랜스폼
이 존재하고부모-자식 관계 유지
가 체크 해제된 경우,위치, 회전, 크기
의 수정사항이생성된 오브젝트
에 적용되지만, 반대로생성된 오브젝트
의 수정사항은위치, 회전, 크기
에 적용되지 않습니다.
Download
Github
Future Works
- 이벤트 종류 추가
- 게임오브젝트 활성화 이벤트
- 메소드 실행 이벤트