この記事の3行まとめ
QualiArtsは、『CEDEC2024 UnityのHumanoidと共存するキャラクタジョイント制御と制作ワークフロー』と題した記事を、同社の技術ブログ「QualiArts engineer blog」にて公開しました。
【公式エンジニアブログ更新!】
テクニカルアーティスト塩塚の記事が掲載されました!
「CEDEC2024 UnityのHumanoidと共存するキャラクタジョイント制御と制作ワークフロー」https://t.co/pAelbHeo2v
— QualiArts(公式アカウント) (@QualiArts_PR) October 8, 2024
【公式エンジニアブログ更新!】
テクニカルアーティスト塩塚の記事が掲載されました!
「CEDEC2024 UnityのHumanoidと共存するキャラクタジョイント制御と制作ワークフロー」https://t.co/pAelbHeo2v
— QualiArts(公式アカウント) (@QualiArts_PR) October 8, 2024
同記事は、2024年8月21日(水)から23日(金)にかけて開催された「CEDEC2024」で行われた、同名の講演を補足した記事。講演本編の内容および、時間の都合により割愛された内容を記載しています。
Unityには、人型キャラクターを動かすための「Humanoid」と呼ばれる機能が備わっています。これにより、リターゲットやIKといった、キャラクターを汎用的に扱うシステムが整っています。
しかし、補助骨(補助ボーン)や「揺れもの」のボーンなど独自のジョイントを導入する際には、Humanoid特有の挙動と相性が悪いことがあり、パフォーマンス的に最適でない選択をしなくてはならないことがあるそう。
記事ではHumanoidのメリットを生かしつつ、表現力やパフォーマンスを損なわないジョイント制御手法について解説しています。
キャラクターの制御において、カットシーンとスクリプト操作の場面で求められる要件が異なります。
どちらの要件も満たすため、「UnityのTimelineと親和性が高いアニメーション再生」「キャラクター・衣装の変更に対応した基本ボーンの補正」「計算コストを抑えた独自ボーンの制御」といったシステムが必要になり、これらを実装する手法について説明されています。
「UnityのTimelineと親和性が高いアニメーション再生」については、Timelineとの親和性が高い「Animation C# Jobs」を用いてジョイントを制御。アニメーションやスクリプトにミックスやブレンドなどを行う「Playable API」を使って出力しています。
「キャラクター・衣装の変更に対応した基本ボーンの補正」では、とくに衣装ごとのボリューム差に着目。たとえば衣装のスカートのボリュームが大きいときは、汎用モーションにおいて手が埋まってしまうなどの問題が発生します。
対策として、衣装の概形に沿うコライダーを生成し、コライダーに基づいてポーズ補正処理を追加。これにより、同じモーションを使用しても埋まりをある程度回避できるようになっています。
ただし、IKおよびFKの切り替え処理が行われるため、コライダーに触れた瞬間にカクつきが起こることも。そこで、衝突を完全に避ける「不可侵領域」のコライダーのほか、ローパスフィルターのような役割を持つ「減衰領域」のコライダーを作成しています。
減衰領域での「布に手があたって沈むような挙動」を挟むことにより、カクつきの抑制が実現できたと述べています。
「計算コストを抑えた独自ボーンの制御」としては、足を曲げたときのスカートのジョイントの暴れを防止します。
実装手法としては、足の回転値を取得した後、ステレオ投影法で軸ごとに分解。前後と左右の曲げに合わせてスカートのジョイントを連動して動かす処理を行うことで、動きの破綻が抑えられ、豊かな表現ができたとのこと。
記事ではほかにも、「肘を曲げた際の出っ張った部分」などリアリティを表現するための補助骨作成や、揺れもののボーン制御の高速化/汎用化テクニック、MayaとUnity間のワークフローなど、さまざまな角度からジョイント制御などの解説をしています。
詳細は、QualiArts engineer blogをご確認ください。
『CEDEC2024 UnityのHumanoidと共存するキャラクタジョイント制御と制作ワークフロー』QualiArts engineer blog