[cgwcc2016] ue4でリギング

11
UE4 de Rigging 補補補補補補補補 AllrightRig 補補補補補補補補補補補補補補補補 TA 補補補補 補補 補補補補補 補補補補補補 「・・ 2016 補補補補補補補補補補 補補補補 補補補補補補補補補補補補補補補補 補補補補補補 !~、 CGWORLD 補補補補補補補補補補補補補補 2016

Upload: ueta

Post on 07-Jan-2017

472 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: [CGWCC2016] UE4でリギング

UE4   de  Rigging

~補助骨の自動化と AllrightRig についてちょっとだけ~フリーランス TA  上原達也

「ザ・リギング・マニアックス 2016  集まれリガーピーポー!~おーい、リガー達が秘伝の技を教えるってよ スペシャル」CGWORLD クリエイティブカンファレンス 2016

Page 2: [CGWCC2016] UE4でリギング

 「 Maya でセットアップした補助骨の自動制御を UE4 でも再現できないかな?」

Maya

UE4

腕の動きに連動する肩の自動制御を Maya と UE4 で試してみました

モチベーション

https://youtu.be/5MXStcNYFUca https://youtu.be/2dJgOtTVlW8

Page 3: [CGWCC2016] UE4でリギング

Python でエクスプレッションが書ける「 maya_exprespy 」を利用。

自動肩:OFF

※ かなり適当な書き方ですがそこはご愛嬌・・・

Maya側

自動肩:ON

https://github.com/ryusas/maya_exprespy

Page 4: [CGWCC2016] UE4でリギング

エクスプレッションをノードに置き換える。

自動肩:OFF

UE4側

自動肩:ON

AnimBlueprint: EventGraph

AnimBlueprint: AnimGraph

Page 5: [CGWCC2016] UE4でリギング

Maya   to UE4 の注意点 1.座標系が違う問題

Maya は右手系、 Y-up UE4 は左手系、 Z-up

Maya Translate X  →  Translate Y  → Translate Z  → Rotate X    → Rotate Y    → Rotate Z    →

UE4 Translate X  Translate Z -Translate Y Rotate X     -Rotate Y     -Rotate Z    

SkeletalMesh の骨の場合の変換

軸を置き換えて考える →

※Rotate は Maya での RotateOrder が[xyz] の場合

Page 6: [CGWCC2016] UE4でリギング

Maya   to UE4 の注意点 2.値を設定するときの骨の空間

標準ノードの Transform(Modify)Bone の場合以下の種類が存在する。 ・ World Space (シーンを基準とした空間) ・ Component Space  (キャラクターを基準とした空間) ・ Parent Bone Space  (親の骨を基準とした空間) ・ Bone Space (対象の骨を基準とした空間)

Page 7: [CGWCC2016] UE4でリギング

Maya   to UE4 の注意点 2.値を設定するときの骨の空間

標準ノードの Transform(Modify)Bone の場合 World Space (シーンを基準とした空間) Component Space  (キャラクターを基準とした空間) Parent Bone Space  (親の骨を基準とした空間) Bone Space(対象の骨を基準とした空間)

回転に限って言えば、直感的なのは 「 Bone Space」バインドポーズの値が基準( X:0,Y:0,Z:0 )。※Maya 上で jointOrient に値を入れないようにセットアップしている場合は、「 Parent Bone Space」で考えるのが良いはず。

Page 8: [CGWCC2016] UE4でリギング

AllrightRig    

http://alexallright.com/allrightrig/・ UE4 上で Rig を使った手付けアニメーションが出来てしまう。・既存のアニメーションをリグにベイクすることが出来てしまう。( UE4 上で!)

https://youtu.be/-eJe_cE0Zg0既存のアニメーションをリグコントローラにベイクして F カーブを修正するデモ動画

Page 9: [CGWCC2016] UE4でリギング

AllrightRig  おまけ Transform(Modify)Bone  の代わりとなる SetBoneLocationAndRotation  が便利

メリット: 骨名や Location,Rotation 有効・無効の Pin を 持っているのでパラメータで制御できる。 デメリット?: 値の基準となる空間( BoneSpace )が ParentBoneSpace に固定されている。

Page 10: [CGWCC2016] UE4でリギング

AllrightRig  おまけ TwoBoneIk  が便利

UE4 標準の TwoBoneIK ノードは AnimGraph 内でしか利用できないノード・・・ これは、 EventGraph 内で利用できるので、 この結果をもとにさらに別の処理を組める。 最終的に骨に値を設定するときは、 AnimGraph で SetBoneLocationAndRotation等を利用。

Page 11: [CGWCC2016] UE4でリギング

以上です