본문 바로가기

프로그래밍/Unity

FBX 에니메이션 임포트

FBX 파일을 이용한 에니메이션

   

마야, 3DMax 등에서 작업한 오브젝트, 에니메이션 데이터를 unity3d에서 사용하기 위한

절차...

   

1. 마야에서 오브젝트와 각 에니메이션별로 export 한다.

   

* export 하는 방법에 따라 차이가 있는데, 일단 unity3d의 샘플 프로젝트는 아래와

같은 이름 규칙을 사용.

   

오브젝트명.fbx

오브젝트명@에니메이션명1.fbx

오브젝트명@에니메이션명2.fbx

   

이와 같은 형태로 익스포트된 fbx를 사용하고 있다.

   

* 하나의 fbx에 각 동작별로 프레임을 나눠 한번에 로드하고, 각 프레임별 에니메이션을

지정할 수 있다. 단 이럴경우 각 동작의 시작-끝 프레임번호를 알아야 한다.

(unity3d에서 import 후 오브젝트의 prefab 객체에 Animations 컴포넌트가 있는데, Split Animations 를

체크하고, 각 프레임별 에니메이션을 지정할 수 있다.)

   

* 일단은 샘플에서 사용한 방법대로 진행.

   

아래는 마야에서 test 오브젝트를 fbx 포맷으로 export 한 파일들이다.

기본 메쉬는 피라미드이고, y축 회전과 x축 회전으로 에니메이션이 구성되어 있다.

(마야에서 export fbx format이 활성화되지 않으면 Window > Setting/Preferences > Plug-in Manager를

실행시켜 fbx와 관련된 플러그인과 object 플러그인을 로드해준다.)

   

   

   

2. unity3d에서 Project 패널에서 import 한다.

오브젝트와 animation, 매터리얼 폴더가 임포트 된다.

(마야의 경우 export 옵션에서 각 항목을 뺄수 있음)

   

   

   

3. 메인 오브젝트를 씬에 배치한다.

Inspector를 살펴보면, 기본적으로 Animation 컴포넌트가 포함되어 있고,

Animation이 idle 로 설정되어 있다.(초기 에니메이션 변경가능)

그리고, 해당 오브젝트와 관련있는 에니메이션이 배열로 설정되어 있다.

   

   

   

4. 실행해보면 Play Automatically 가 체크되어 있으므로 첫번째 에니메이션이

자동으로 실행된다.(한번만~)

   

에니메이션 세부설정은 해당 에니메이션 컴포넌트를 클릭한뒤

Inspector에서 수정하면 된다.

idle 에니메이션을 Loop로 변경해 봤다.

   

   

   

   

   

5. 스크립트에서 에니메이션 변경

일반적인 사용 예>

.루프모드 : animation.wrapMode = WrapMode.Loop;

.각 에니메이션 접근 : Animation roll = animation["roll"];

.에니메이션 교체

animation.CrossFade("idle");

animation.CrossFade("roll", 0.2f); // 0.2초내에 교체

.현재 재생 중인 에니메이션이 끝나고 교체

animation.CrossFadeQueued("idle", 0.3f, QueueMode.PlayNow );

   

   

   

'프로그래밍 > Unity' 카테고리의 다른 글

[Unity] 인스펙터에 UI 추가하기  (0) 2011.06.15
2D를 위한 Plane 생성  (0) 2011.05.30
Physics.Raycast  (0) 2011.05.13
2D 게임을 위한 몇가지  (0) 2011.05.09
터치 입력  (0) 2011.04.04
스크립트에서 오브젝트/컴포넌트 접근 및 활성화  (0) 2011.02.11
강체-RigidBody 기본속성  (0) 2011.02.03
[Unity3D] 오브젝트 회전 - Quaternion  (0) 2011.02.01
캐릭터 컨트롤 하기  (4) 2011.01.20
기본 클래스 정리  (0) 2011.01.17