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 6.3 Beta」リリース。UI Toolkitでカスタムシェーダーが使用可能。2Dシーンで3Dメッシュを描画できる機能なども実装
2025.09.17
ScriptableObjectを解説したUnity公式の無料電子書籍、Unity 6版にアップデート。無料サンプルや公式ブログと併せて学べる
2025.09.09
Unity 6で更新されたHDRPの機能を解説。無料電子書籍がUnity公式サイトで公開中。日本語版は後日リリース予定
2025.09.08
Unityで3D都市モデルを使えるオープンソースSDK「PLATEAU SDK for Unity v4.0.0-alpha」リリース。広域のモデルを低負荷で描画可能に
2025.09.04
Unity 6におけるビジュアルエフェクト(VFX)の制作手法を解説した日本語版電子書籍、Unity公式が無料公開
2025.08.25
ゲームにDiscord機能を組み込める公式SDK「Discord Social SDK」、ボイスチャットなどの一般提供を開始。商用利用も可能
2025.08.21

注目記事ランキング

2025.09.10 - 2025.09.17
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

ラグドール(Rag Doll)
ラグドール ぬいぐるみを意味する英語。 ゲームにおける、キャラクターの全身が脱力したかのような挙動を行う物理シミュレーション。ラグドール物理。 例えば、上空からの落下やキャラクターが死亡した際に用いられる。
VIEW MORE

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