$30 off During Our Annual Pro Sale. View Details »

Animation Riggingで簡単リアルタイムリターゲット

karukaru
October 23, 2019

Animation Riggingで簡単リアルタイムリターゲット

Roppongi.unity #5

karukaru

October 23, 2019
Tweet

More Decks by karukaru

Other Decks in Technology

Transcript

  1. Animation Riggingで 簡単リアルタイムリターゲット Roppongi.unity #5

  2. Name: karukaru Twitter: https://twitter.com/_karukaru_ GitHub: https://github.com/karukaru808 普段は北海道で学生やりながら BitStar Akihabara Lab

    でVTuber関連の研究開発をやっています エンジニア募集中! 興味ある人は気軽にお声がけください https://www.wantedly.com/projects/322760 自己紹介 2 最近アイコン変えました
  3. 今日話す内容  リターゲットについて  Animation Riggingについて このLTは  アニメーションをガッツリ使用している人 

    モーションキャプチャしたデータをリアルタイムで使用している人 向けの内容です 3
  4. リターゲットって何? 異なる骨構造を持ったHumanoidモデルであっても同じ アニメーションを使用できるようにしてくれる機能  腕/脚の長さの違い  移動量の違い  骨の命名の違い 

    初期ポーズ(T-Pose, A-Pose)の違い  etc... Mecanim(Animator)で吸収してくれる 便利! 4
  5. モーションキャプチャとリターゲット モーションキャプチャしたデータをリアルタイムに直接キャラクターに流し込むと...? 5

  6. 何かがおかしい  脚が浮いてる 6  接地感がない

  7. おかしい原因 モーションキャプチャデータはキャラクターのBone(Transform)に直接流し込まれる  Mecanim(Animator)のリターゲット機能が使えない! モーションキャプチャしている人間とキャラクターの色々な違いによりおかしくなる  腕/脚の長さの違い  移動量の違い 

    etc... 人間とキャラクターとのリターゲットが必要! 7
  8. リターゲットしたい 大きな違和感の原因は以下の2つ  脚が浮いてる  脚の長さの違い  接地感がない  移動量の違い

    これらの違いを何かで上手く吸収してあげれば違和感なく動く(はず) 8 Animation Riggingで吸収してあげよう!
  9. Animation Riggingって何? Unity2019.1以降で使用できるPackage 再生中のアニメーションをプログラマブルに変更できる Animation C# Jobs(C# Job System)をベース に構築されている

     マルチスレッドで動作する! 詳しくはUniteTokyo2019の講演動画を見てください  Unity 2019での新アニメーション・リギング - Unite Tokyo 2019 https://www.youtube.com/watch?v=yg3jV2IzATc 9
  10. 使用するスクリプト  MultiPositionConstraint SourceObjectの Position を ConstrainedObjectにコピーする  Hipsの移動に使用 10

     MultiRotationConstraint SourceObjectの Rotation を ConstrainedObjectにコピーする  各関節の回転に使用
  11. 移動量の違いの吸収について Animator.humanScale(Hipsの高さ)と人間の 腰の高さを比較して移動量の倍率を変える 倍率は1fを超えることもあるが、 MultiPositionConstraintのWeightは0f-1fの 値しか使用できない  PositionConstraintは1f以上の値を使用 できるので間に挟むことで解決 11

  12. 結果 主要なBoneに対して先ほどのスクリプトを設定した結果... 12

  13. Animation Riggingでリターゲットするメリット Animation Riggingが使用できる!  TwistCorrectionで腕の補助骨を回転させる  DampedTransformで尻尾を動かす  MultiAimConstraintで任意の方向を向かせる

     etc… Humanoidで必要そうな機能は大体そろってる上に、 独自のAnimation Riggingを書くことも可能 13
  14. まとめ  Animation Riggingを使用してリアルタイムリターゲットが簡単にできた!  Humanoidに必要そうな機能は大体そろってる!  機能が足りなかったら自分で書ける!  色々応用できて楽しいので皆さんもAnimation

    Rigging触ってね! 14
  15. 参考文献  Unity 2019での新アニメーション・リギング - Unite Tokyo 2019 https://www.youtube.com/watch?v=yg3jV2IzATc 

    Unity 2019.1 リリース - Unity Blog https://blogs.unity3d.com/jp/2019/04/16/introducing-unity-2019-1/#animation  Animation C# Jobs - Unity Blog https://blogs.unity3d.com/jp/2018/08/27/animation-c-jobs/  高度な Animation Rigging:キャラクターとプロップのインタラクション - Unity Blog https://blogs.unity3d.com/jp/2019/09/05/advanced-animation-rigging-character-and-props-interaction/  Unityアニメーションシステムの 今と未来の話 https://www.slideshare.net/UnityTechnologiesJapan/unity-119555796  UnityのMecanimでキャラクターを動かす - Qiita https://qiita.com/yando/items/601e6fd35002e77ae9c8 15