Unityの「Humanoid」を活用しつつ、揺れ骨など独自ジョイントを制御するには。QualiArtsによる「CEDEC2024」講演の補足記事が公開

Unityの「Humanoid」を活用しつつ、揺れ骨など独自ジョイントを制御するには。QualiArtsによる「CEDEC2024」講演の補足記事が公開

2024.10.08
ニュースUnity
この記事をシェア!
Twitter Facebook LINE B!
Twitter Facebook LINE B!

この記事の3行まとめ

  • QualiArts、『CEDEC2024 UnityのHumanoidと共存するキャラクタジョイント制御と制作ワークフロー』と題した記事を公開
  • 「CEDEC2024」での同名の講演内容および、割愛された部分を補足解説した記事
  • Unityの「Humanoid」のメリットを生かしつつ、揺れ骨や補助骨などのジョイントを制御する手法について紹介している

QualiArtsは、『CEDEC2024 UnityのHumanoidと共存するキャラクタジョイント制御と制作ワークフロー』と題した記事を、同社の技術ブログ「QualiArts engineer blog」にて公開しました。

同記事は、2024年8月21日(水)から23日(金)にかけて開催された「CEDEC2024」で行われた、同名の講演を補足した記事。講演本編の内容および、時間の都合により割愛された内容を記載しています。

「CEDEC2024」の講演スライド資料は、Speaker Deckで公開されている(画像はSpeaker Deckより引用)

Unityには、人型キャラクターを動かすための「Humanoid」と呼ばれる機能が備わっています。これにより、リターゲットやIKといった、キャラクターを汎用的に扱うシステムが整っています。

しかし、補助骨(補助ボーン)「揺れもの」のボーンなど独自のジョイントを導入する際には、Humanoid特有の挙動と相性が悪いことがあり、パフォーマンス的に最適でない選択をしなくてはならないことがあるそう。

記事ではHumanoidのメリットを生かしつつ、表現力やパフォーマンスを損なわないジョイント制御手法について解説しています。

Humanoidでは、ジョイントの回転を人体の動きに即したパラメータに正規化し、その値で制御する。これにより、手首のひねりを肘に伝達したり、手首の位置に合わせて肩や肘を動かしたりといった挙動が可能(画像はブログ記事より引用)

キャラクターの制御において、カットシーンとスクリプト操作の場面で求められる要件が異なります。

どちらの要件も満たすため、「UnityのTimelineと親和性が高いアニメーション再生」「キャラクター・衣装の変更に対応した基本ボーンの補正」「計算コストを抑えた独自ボーンの制御」といったシステムが必要になり、これらを実装する手法について説明されています。

「UnityのTimelineと親和性が高いアニメーション再生」については、Timelineとの親和性が高い「Animation C# Jobs」を用いてジョイントを制御。アニメーションやスクリプトにミックスやブレンドなどを行う「Playable API」を使って出力しています。

Playable APIのツリー構造(PlayableGraph)。アニメーションのブレンド後に追加のジョイント制御を行うことで、ゲーム性や再生方式によらない汎用のキャラクタ制御システムとして動作する(画像はブログ記事より引用)

「キャラクター・衣装の変更に対応した基本ボーンの補正」では、とくに衣装ごとのボリューム差に着目。たとえば衣装のスカートのボリュームが大きいときは、汎用モーションにおいて手が埋まってしまうなどの問題が発生します。

ボリュームの大きなスカートに手が埋まった様子(画像はブログ記事より引用)

対策として、衣装の概形に沿うコライダーを生成し、コライダーに基づいてポーズ補正処理を追加。これにより、同じモーションを使用しても埋まりをある程度回避できるようになっています。

コライダーにより、手の埋まりを回避(画像はブログ記事より引用)

ただし、IKおよびFKの切り替え処理が行われるため、コライダーに触れた瞬間にカクつきが起こることも。そこで、衝突を完全に避ける「不可侵領域」のコライダーのほか、ローパスフィルターのような役割を持つ「減衰領域」のコライダーを作成しています。

減衰領域での「布に手があたって沈むような挙動」を挟むことにより、カクつきの抑制が実現できたと述べています。

(画像はブログ記事より引用)

「計算コストを抑えた独自ボーンの制御」としては、足を曲げたときのスカートのジョイントの暴れを防止します。

実装手法としては、足の回転値を取得した後、ステレオ投影法で軸ごとに分解。前後と左右の曲げに合わせてスカートのジョイントを連動して動かす処理を行うことで、動きの破綻が抑えられ、豊かな表現ができたとのこと。

(画像はブログ記事より引用)

記事ではほかにも、「肘を曲げた際の出っ張った部分」などリアリティを表現するための補助骨作成や、揺れもののボーン制御の高速化/汎用化テクニック、MayaとUnity間のワークフローなど、さまざまな角度からジョイント制御などの解説をしています。

詳細は、QualiArts engineer blogをご確認ください。

『CEDEC2024 UnityのHumanoidと共存するキャラクタジョイント制御と制作ワークフロー』QualiArts engineer blog

関連記事

Unity公式クラウドサービス「Unity Gaming Services」、チュートリアル記事&動画が順次公開中。プレイヤー認証やアプリ内課金の実装などを解説
2025.10.21
サイバーエージェント主催のUnity勉強会「CA.unity #10」、全4講演の動画が公開。TextMesh Proでグラデーションを表現するカスタムシェーダー実装事例などを解説
2025.10.20
Unityでゲームを“直近N秒”だけ録画できるOSS、サイバーエージェントが正式リリース。ディスク負荷軽減機能のデフォルト化や、Linuxサポートが追加
2025.10.10
Unity 6に搭載されたプロファイリングツールを一挙解説。「Unity Profiler」「Project Auditor」などを学べる公式電子書籍、日本語版が無料で公開
2025.10.08
3D地理データを最適化できるクラウドサービス「Cesium ion」で、Googleマップの2D地図タイルを利用可能に。UE・Unityにインポートも可能
2025.10.07
Unity製ゲームで任意コード実行の脆弱性が発覚。開発者向け対処法と各社の対応状況まとめ
2025.10.06

注目記事ランキング

2025.10.15 - 2025.10.22
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

被写界深度(DOF)
ヒシャカイシンド
  1. Depth of Field(DOF)とも呼ばれる。カメラの焦点(ピント)があっているように見える範囲のこと。
  2. 3DCGにおいて、1をシミュレーションするエフェクト。注目させたい部分に焦点を合わせ、それ以外の部分をぼかすことができる。ゲームの開発現場においては、ボケ自体のことを示すことが多い。
VIEW MORE

Xで最新情報をチェック!