UDN
Search public documentation:

IntroductionToFaceFXKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > FaceFX 얼굴 애니메이션 > FaceFX 입문

FaceFX 입문


문서 변경내역: Doug Perkowski? 작성.

개요


FaceFX 는 OC3 엔터테인먼트가 개발한 얼굴 애니메이션 솔루션으로, 언리얼 엔진 3에 통합되었습니다. 모든 언리얼 엔진 3 라이선시와 UDK 사용자께서는 FaceFX 를 이용하실 수 있습니다. 이 튜토리얼에서는 Max 와 Maya에서 FaceFX 데이터를 UE3에 가져오는 방법을 설명합니다. FaceFX에서 새 애니메이션을 생성하는 기초 및 이 어플리케이션으로 작업하는 방법도 함께 다룹니다. 독립형 FaceFX 제품에 대한 보다 광범위한 문서는 이 문서의 말미에 독립형 버전의 FaceFX와 UE3 통합 버전간의 차이점과 함께 첨부되어 있습니다.

플러그인 설치와 시동


가장 먼저 Max 와 Maya의 플러그인을 설치해야 합니다. 이전에 독립형 버전의 FaceFX를 사용했었더라도 UE3 주 배포판의 Binaries\FaceFXPlugins 폴더에 포함되어 있는 UE3 특정FaceFX 플러그인을 설치해야 합니다 (주: FaceFX 버전1.7.3.1 현재, UE3 플러그인은 독립형 원시 좌표 플러그인과 똑같습니다. 단 한 가지, UE3 플러그인은 여백을 가진 이름을 언더스코어가 있는 이름으로 자동 전환한다는 점이 다릅니다). 플러그인은 C:\Program Files\Autodesk\3ds Max 2010\plugins 또는 C:\Program Files\Autodesk\Maya2009\bin\plug-ins 같은, 적절한 3D Studio Max, Maya, XSI, 또는 MotionBuilder 플러그인 폴더에 복사되어야 합니다. Maya를 사용하는 경우에는, Binaries\FaceFX\FxTools\FxMaya\MEL Script\FaceFX.mel 파일을 여러분의 기본 스크립트 디렉토리에 복사해두면 쉽게 접근할 수 있습니다. 또 res 폴더의 비트맵을 plug-in 폴더에 복사할 수 있습니다. 이 파일들을 ActorX Wiki 페이지에서 다운로드해서 (아니면 Binaries 폴더에 있는 것을 사용해서) Max 또는 Maya의 실행 파일 디렉토리에 복사해 넣어야 합니다. FaceFX 플러그인의 설치에는 Microsoft Visual Studio 2008 SP1 재배포판이 요구된다는 점을 명심하십시오.

Max 플러그인을 시동하려면, 오른쪽의 Utilities 패널에서 "More" 버튼을 클릭한 다음 목록에서 FaceFX를 선택합니다. Maya 플러그인을 시동하려면, 플러그인이 Window->Settings/Preferences->Plug-in Manager 대화상자에 로드되어 있는지 확인하고, 스크립트 에디터에서 MEL 스크립트를 연 다음 이 스크립트를 실행합니다.

FaceFX Asset 삭제


이 튜토리얼에서 FaceFX 애셋을 작성하는 법을 설명하고 있지만, 여기서는 UE3에 포함되어 \UTGame\Content\TestPackages\MatineeTest_Resources.upk 에 있는 OC3_Slade FaceFX 애셋을 사용합니다. OC3_Slade는 이미 FaceFX 를 사용할 수 있도록 접속되어 있으며, 처음 시작하는 이들은 이를 견본으로서 사용할 수 있습니다. 그렇지만 이 튜토리얼에서는 FaceFX Asset 을 삭제하고, 처음부터 다시 시작하려고 합니다. 이를 위해서는 Slade 뼈대 메쉬를 오른 클릭하여 Edit using AnimSet Viewer 선택합니다.

AnimSetViewer.JPG

AnimSet 에디터에서 Mesh 탭을 열어 FaceFX Asset을 찾으십시오. 그 다음 "Clear All Text" 버튼을 누릅니다.

ClearAllText.JPG

만일 FaceFX Asset을 참조하고 있는 FaceFX 애니메이션 세트가 있다면 그 참조를 해제해야 합니다. 애니메이션 세트를 오른 클릭하여 프로퍼티를 선택한 다음 DefaultFaceFXAsset 필드의 문자들을 모두 삭제하면 됩니다.

DeleteAnimationSetReference.JPG

이제 Slade의 FaceFX Asset을 삭제할 준비가 되었습니다. 반드시 FaceFX Studio가 종료되었는지 확인하십시오. 그렇지 않으면 UnrealEd가 크래시 됩니다. OC3_Slade 패키지의 Generic Browser에서 OC3_Slade_AMesh_FaceFX를 오른 클릭한 다음 Delete을 선택합니다. 만일 FaceFX Asset이 아직 사용중이며 TransBuffer에 의해 참조되고 있다는 오류 메시지가 나타나면, FaceFX Asset을 삭제하기 전에 모든 것을 저장한 뒤 에디터를 다시 시작해야 합니다. FaceFX Asset이 성공적으로 삭제됐으면 패키지를 저장하십시오.

플러그인으로부터 FXA 파일 만들기


FaceFX를 착수하기 전에, FaceFX를 사용하는 FXA 파일을 만들어야 합니다. 독립형 FaceFX의 문서를 읽으면 스크린샷을 비롯해서 이에 대한 자세한 정보를 얻을 수 있습니다. 그러나 다음에 설명하는 단계를 따라 하면 빠르게 시작할 수 있습니다. 이 튜토리얼을 그대로 따라하려면 Maya를 사용해야 합니다. 모든 기능성은 Max에서도 똑같습니다만, 이 튜토리얼은 OC3_Slade 패키지에 있는, Maya 에서 만든 스켈레탈 메시를 사용합니다. Max 사용자들은 아래에 첨부된 Slade-Max.max 소스 파일을 사용해서 FBX 파일로 익스포트한 다음 언리얼 에디터로 임포트해야 합니다.

  1. 아래에 첨부된 Slade 샘플 Max 또는 Maya 파일을 열고 FaceFX 플러그인을 시동합니다.
  2. FaceFX "Reference Pose(참조 포즈)”가 들어있는 프레임으로 갑니다. 대부분의 경우 이는 뼈대의 바인드 포즈입니다. Slade에서 프레임 0으로 갑니다.
  3. FaceFX가 콘트롤할 뼈를 모두 선택합니다. Slade의 경우 모든 뼈를 다 선택합니다. 플러그인의 Reference Pose 섹션에서 "Export" 버튼을 클릭, 참조 포즈를 내보내기 합니다.
  4. "Batch Export" 버튼을 눌러 Slade의 포즈들을 한꺼번에 내보내기 합니다.
  5. 아래의 첨부에 포함된 Slade-Batch-Export.txt 파일을 선택합니다.
  6. FXA 파일을 저장합니다.

유용한 링크

UnrealEd 셋업


UnrealEd에서 FaceFX 애셋 만들기

이제 OC3_Slade 패키지에 있는 Slade의 Skeletal Mesh용으로 새 FaceFX Asset을 만들어야 합니다. Slade의 Skeletal Mesh를 오른 클릭하여 "Create New FaceFX Asset"을 선택합니다. Max 사용자들은 OC3_Slade 패키지에 있는 Skeletal Mesh를 사용할 수 없으며, 직접 만들어야 합니다. 텍스처들은 모두 똑같습니다.

CreateNewFaceFXAsset1731.jpg

UnrealEd에 FXA 파일 가져오기

다음에는 Max나 Maya 플러그인으로부터 앞서 만든 FXA 파일을 가져오기 합니다. 새로 생성된 FaceFX 애셋을 오른 클릭하여 "Import from .FXA"을 선택하십시오.

ImportFromFXA.JPG

UnrealEd에서 FaceFX 시동하기

이제 UnrealEd 내에서 FaceFX Studio를 시동할 수 있습니다. FaceFX Asset을 오른 클릭한 다음 "Edit Using FaceFX Studio"를 선택하십시오.

LaunchFaceFX.JPG

FaceFX 작업하기


Mapping 만들기

FaceFX의 Mapping 탭으로 갑니다. Slade는 Mapping탭의 맨 위에 있는 "New Default Mapping" 버튼을 클릭하면 만들어지는 기본 매핑을 사용합니다. Mapping은 FaceFX가 특별한 음운을 인식한 경우에 어떠한 커브를 그려내야 할지를 지시합니다. 여러분은 어떤 종류의 Mapping이든 마음대로 만들 수 있습니다만, 이 기본 매핑은 캐릭터가 진짜같이 입술과 혀를 움직이게 하는데 충분한 포즈들을 제공하는 타겟 기반 매핑의 좋은 예입니다.

MakeDefaultMapping.JPG

Face Graph 설정

Face Graph 탭을 보면 Max나 Maya에서 내보내기된 뼈의 포즈 목록이 있습니다. Max나 Maya에서 내보내기된 뼈의 포즈 가운데 몇가지는 기본 매핑에서의 타겟과 일치하는 이름을 가지고 있습니다. FaceFX에서 오디오 파일을 분석할 때는, 이들 타겟에 대한 커브가 만들어지고 Slade는 WAV 파일의 소리에 입을 맞춥니다. Face Graph는 매우 복잡한 관계도 소화해낼 수 있지만, Face Graph에서 결합 노드와 링크를 새로 만들면 쉽게 애니메이트할 수 있는 아주 복잡한 움직임을 만들어낼 수 있습니다. Slade의 샘플 Face Graph를 설정하려면, 아래의 첨부에 포함되어 있는 일괄처리 스크립트 Slade-Face-Graph-Setup.fxl을 실행해야 합니다. 이 스크립트는Face Graph의 설정에 필요한 모든 명령어를 제공해 줍니다. 이 파일을 복사해서 C:\ 디렉토리에 넣은 다음 FaceFX의 명령행에서 다음 명령어를 실행하십시오:

exec -f "C:\Slade-Face-Graph-Setup.fxl"

FaceGraphSetup.JPG

Console 탭을 보면 일괄처리 스크립트의 명령어들이 모두 실행되어 이 Console 탭에 기록되어 있는 것을 확인할 수 있을 것입니다. Console 탭에는 가장 최근의 명령어들만이 기록됩니다. 해당 세션의 기록 전부를 보려면 Binaries\FaceFX\Logs\FaceFxStudioLog.html 파일을 점검해 보십시오. 이 파일은 문제점을 디버그하는 데 매우 도움이 됩니다. FaceFX를 사용하는데 문제가 생기는 경우에는 FaceFX를 다시 시작하기 전에 이 로그 파일을 복사한 뒤 이름을 바꾸어 저장해두면 기록이 삭제되지 않습니다.

ConsoleTab.JPG

Slade의 Face Graph를 설정하는 또 한가지 방법은 이를 보기판 파일(*.FXT)에 동기화하는 것입니다. 이 보기판은 Face Graph, 노드 그룹, 매핑, 카메라 (아직 지원되지 않음) 및 작업 공간에 대한 정보를 한 액터에서 다른 액터로 복사할 수 있도록 해줍니다. 보기판 파일은 FaceFX의 Actor 메뉴에서 내보내기나 가져오기 할 수 있습니다.

애니메이션 생성하기

이제 약간의 Slade용 애니메이션을 생성할 준비가 되었습니다. Face Graph는 매핑에 있는 타겟에 대한 값을 전달받을 뿐 아니라 Slade가 일정한 단어를 강조하기 위해 머리를 돌리도록 하고, 눈을 깜박거리고, 눈썹을 찌푸리게도 합니다. Slade의 Face Graph의 복잡성은 상당 부분이 Slade가 머리를 움직일 때 눈꺼풀 및 눈이 진짜처럼 움직이게 하도록 고안된 것입니다. 좀 더 단순한 Face Graph를 원하시면 아래에 첨부된 .zip 파일 Slade-Simple을 체크해 보십시오.

애니메이션을 생성하려면 먼저 분석할 사운드 애셋 및 사운드 큐를 UnrealEd에 가져오기 해야 합니다. OC3_Slade 패키지에는 이미 환영 사운드 파일이 들어 있으므로 여기서는 이것을 보기 삼아 분석할 것입니다. OC3_Slade 패키지에서 welcomeCue 애셋을 선택하면 다음에 설명하는 단계에서 이 파일을 사용할 수 있습니다. 그 다음 FaceFX Browser의 맨 위에 있는 Animation Manager 버튼을 클릭하십시오.

AnimationManager1731.JPG

그리고 Animation Manager의 맨 밑에 있는 "Create Animation..." 버튼을 클릭합니다. 다음은 마법사에서의 이들 단계에 대한 설명입니다:

  1. FaceFX가 애니메이션을 위해 자동적으로 커브를 생성해주기를 원한다면 마법사의 첫 페이지에서 선택한 기본을 그대로 유지합니다. 애니메이션을 처음부터 만들려면 "Do not generate curves (커브를 생성하지 않음)"를 선택하고, 원한다면 오디오 파일을 가져오기 하십시오. 무성 애니메이션을 만들려면 "Use Sound Cue (사운드 큐 사용)" 체크박스를 체크하지 않으면 됩니다.
  2. welcomeCue 사운드 애셋이 미리 선택되어 있어야 합니다. 이는 애니메이션 생성을 시작하기 전에 선택된 것이기 때문입니다. Next를 클릭하십시오.
  3. 환영 사운드 파일은 welcomCue에 있는 유일한 아이템입니다. 이것을 선택하고 Next를 클릭하십시오.
  4. 다음에는 FaceFX가 오디오를 정확하게 분석하도록 영어로된 텍스트 파일을 지정해 주어야 합니다. 텍스트 파일은 "텍스트 태그"를 사용해 특정 단어들에 어울리는 커브를 생성, 다른 노드들을 Face Graph로 이끕니다. 아래의 텍스트를 사용해서 대화 타겟, 깜박임, 눈썹 그리고 머리 움직임 커브에 덧붙여 "Gaze Left and Right (좌우를 살펴보세요)"에 대한 커브를 만들어 보십시오:
    • Face Ef Ex 스튜디오에 오신것을 환영합니다. 샘플 애니메이션을 더 원하시면 애니메이션 그룹을["Gaze Left and Right" v2= -1 v3=-1 easein=.5 easeout=.5]에서 왼쪽에 있는[/"Gaze Left and Right"] 액터 패널로 변경하십시오.
  5. 그 다음에 나타나는 대화상자에서 사용하고자 하는 동시조음 및 제스처 설정 파일과 함께 분석하려는 언어를 선택합니다. 이 설정파일들은 Binaries\FaceFX\Configs 디렉토리에 있습니다. 기본 설정을 선택하고 Next를 클릭하십시오.
  6. 마지막으로, 애니메이션에 이름을 붙여주고 Finish를 클릭합니다.

애니메이션 미리보기

이제 애니메이션이 로드되었습니다. Preview 탭에서 이를 감상할 수 있습니다. Preview 탭에는 오른쪽에 슬라이더와 함께 Animation, Combiner 또는 Mapping 모드로 사용할 수 있는 UE3 뷰포트가 들어 있습니다. 애니메이션을 감상하려면 왼쪽에 있는 Actor 패널의 "Animations"드롭다운 박스에서 애니메이션을 선택합니다. 그리고 왼쪽 밑에 있는 Play 버튼을 클릭합니다. Slade가 머리를 움직여 Actor 패널을 바라보는 것을 눈여겨 보십시오. 이는 텍스트 태그가 추가되었기 때문입니다.

PreviewWindow.JPG

커브 프로퍼티

Actor 패널의 Animations 드롭다운 박스를 보면 "Gaze_Left_and_Right" 커브를 제외하고 애니메이션의 모든 커브들이 파도 모양의 아이콘을 가지고 있는 것을 알 수 있습니다. 파도 모양 아이콘을 가지고 있는 커브들은 "owned by analysis(분석자 소유)" 이며, 이를 오른 클릭하여 프로퍼티를 "owned by the user(사용자 소유)"로 바꾸기 전에는 커브 에디터나 슬라이더에서 변경할 수 없습니다. "분석자 소유"인 커브들은 phoneme(음운) 바에서 음운을 움직일 때마다 자동으로 재생성됩니다.

AnimationTab.JPG

애니메이션의 관리 및 이동

직접 FaceFXAsset 내에 있는 애니메이션들은 각기 다른 레벨에 쓰이는 것들이라도 항상 모두 로드됩니다. 따라서 다수의 FaceFX AnimSet를 (예: 각 Matinee별로 한 개씩, 각 레벨의 대화상자당 한 개씩) 만들어 두는 것이 최선의 방법입니다. 그러면 Kismet 액션을 통해 이들을 모두 탑재할 수 있습니다.

애니메이션을 새 AnimSet으로 옮기는 방법:

  1. FaceFX Asset을 오른 클릭하여 "Create new FaceFX AnimSet"을 선택하십시오 (그 AnimSet이 FaceFXAsset에 연결됩니다).
  2. New FaceFX AnimSet을 여십시오.
  3. Actor->Animation Manager
  4. 여러분이 만든 그룹이 드롭다운에 나타납니다.
  5. 새 그룹을 Secondary Pane에 넣으십시오.
  6. 옮겨올 애니메이션이 있는 그룹을 Primary Pane에 넣으십시오.
  7. 애니메이션을 선택하고 Move 버튼을 클릭하면 애니메이션이 옮겨집니다.
  8. 많은 수의 애니메이션을 이동하려면 좀 기다려야 합니다 (예. 1-2 천개를 옮기려면 시간이 좀 걸립니다 :-) )

더 자세한 정보를 얻으려면


정보가 더 필요하시면 아래에 게재된 CHM 파일을 참고하십시오. 대부분의 경우 Unreal의 FaceFX Studio 프로그램은 독립형 FaceFX 프로그램과 똑같으며, 관련 문서들을 보면 미묘한 차이점들을 금방 알 수 있습니다. FaceFX의 UE3 버전과 독립형 버전간의 몇가지 중요한 차이점은 다음과 같습니다:

  • FaceFX의 UE3 버전은 UE3의 뷰포트를 사용하며, 따라서 FaceFX의 샘플 렌더링 엔진 또는 FXR 파일 포맷을 사용하지 않습니다.
  • UE3 버전은 오디오, 음운 목록 등을 저장하는 FXS 파일을 출력하지 않습니다. 이들 데이터는 모두 UE3의 패키지 시스템에 통합된 FaceFX Asset에 보존됩니다. .
  • FaceFX의 UE3 버전은 표준 FxCombinerNode, FxBonePoseNode, FxDeltaNode, 그리고 FxCurrentTimeNode 외에 커스텀 Unreal 노드 타입을 사용합니다. 커스텀 Unreal 노드 타입은 FUnrealFaceFXMorphNode 및 FUnrealFaceFXMaterialParameterNode입니다. 이 노드들을 사용하는 방법에 대한 것은 고급 FaceFX 튜토리얼들을 참고하십시오.

다운로드