メインコンテンツまでスキップ

ボーンチェーン設定

KawaiiPhysicsでボーンチェーンを設定する方法を説明します。

注記

このページは設定のガイドです。RootBone / ExcludeBones / AdditionalRootBones / DummyBoneLength の全プロパティ詳細は 物理パラメータ を参照してください。

Root Boneの選択

Root Bone は物理を適用するボーンチェーンの 親ボーン を指定します。

警告

Root Bone自体には物理が適用されません。その子ボーン以下に物理が適用されます。

ボーンチェーン構造図

※自動生成された概念図です。実際のボーン名やスケルトン構造はアセットにより異なります。

自動検出

KawaiiPhysicsはRoot Boneから自動的に子ボーンを検出し、チェーンを構築します。

spine_03 (Root Bone - 物理なし)
├── hair_front_01 ← 物理適用
│ └── hair_front_02 ← 物理適用
└── hair_back_01 ← 物理適用
└── hair_back_02 ← 物理適用

DummyBoneLength(末端ボーンの揺れ改善)

チェーンの末端ボーンは、子ボーンを持たないため回転の基準が定まらず、物理制御が不安定になりがちです。DummyBoneLength に 0 より大きい値を設定すると、末端に見えないダミーボーンを1本追加し、末端ボーンに「子」を与えて回転・揺れを安定させます。揺れ方に直結する重要なパラメータです。

DummyBoneの効果

DummyBoneLength = 0(左)では末端ボーンが不安定。0 より大きくする(右)と末端に見えないダミーが追加され、末端ボーンが安定して自然に揺れる。

プロパティ
float
デフォルト0.0(無効)
範囲0 以上
カテゴリBones

使い方のポイント:

  • 末端ボーンの揺れが弱い・カクつく・不自然なときに有効
  • 値はダミーボーンの長さ(末端ボーンからの距離)。まずは末端ボーンの長さと同程度から試すとよい
  • ランタイムでは UKawaiiPhysicsLibrary::SetDummyBoneLength で変更可能(変更時はボーン構成が再構築されます)
注記

これはチェーン末端に1本だけ追加するダミーです。隣接ボーンにダミーを挿入してコリジョン解像度を上げる BoneSubdivisionCount とは別物です(ボーン細分化 を参照)。

Exclude Bones

特定のボーンを物理計算から除外できます。

UPROPERTY(EditAnywhere, Category = "Bones")
TArray<FBoneReference> ExcludeBones;
警告

ExcludeBones に指定したボーンは、そのボーン自身とその子孫ボーンすべて が制御対象から外れます。チェーンの途中のボーンを指定すると、それ以降の末端まで物理が適用されなくなる点に注意してください。

ボーンチェーンとExclude Bone

Root Bone から始まるチェーンに物理が適用されます。Exclude Bone に指定したボーン自身と、それ以下(子孫)のボーンはすべて物理計算から除外されます。

使用例

  • リボンの結び目など、動かしたくない部分
  • 別のKawaiiPhysicsノードで制御したいボーン
ヒント

Additional Root Bones ごとに専用の除外リストを設定したい場合は、各 FKawaiiPhysicsRootBoneSettingOverrideExcludeBonesbUseOverrideExcludeBones 有効時)を使用します。

複数のボーンチェーン

1つのキャラクターに複数のKawaiiPhysicsノードを使用できます。

AnimGraph
├── KawaiiPhysics (髪の毛用)
├── KawaiiPhysics (尻尾用)
└── KawaiiPhysics (服用)
ヒント

パラメータが異なる部位は、別々のノードで管理すると調整しやすくなります。

Additional Root Bones(追加ルートボーン)

バージョン情報

v1.17.0で追加

1つのKawaiiPhysicsノードで複数のRootBoneを設定できます。同じパラメータで複数のボーンチェーンを制御したい場合に便利です。

設定方法

  1. KawaiiPhysicsノードを選択
  2. Additional Root Bones 配列に要素を追加
  3. 各要素に追加のRootBoneを設定

FKawaiiPhysicsRootBoneSetting

プロパティ説明
RootBoneFBoneReference追加の制御ルートボーン
OverrideExcludeBonesTArray<FBoneReference>このルートボーン専用の除外ボーンリスト
bUseOverrideExcludeBonesbool除外ボーンオーバーライドの有効化

使用例

// 1つのノードで髪の前後を制御
RootBone: hair_front_root
AdditionalRootBones:
- RootBone: hair_back_root
- RootBone: hair_side_l_root
- RootBone: hair_side_r_root

メリット

  • ノード数の削減: 同じパラメータなら1つのノードでまとめられる
  • パフォーマンス: 複数ノードより僅かに効率的
  • 管理のしやすさ: パラメータ変更が一括で反映

従来の方法との比較

方式メリットデメリット
複数ノード部位ごとに異なるパラメータ設定可能ノード数が増える
Additional Root Bones同じパラメータで一括管理部位ごとの微調整が難しい
ヒント

髪の毛のように同じパラメータで揺らしたい部位はAdditional Root Bonesを使用し、スカートと尻尾のように異なるパラメータが必要な部位は別ノードにすることを推奨します。

ボーンの長さと半径

各ボーンの長さは自動計算されます。半径は手動で設定するか、カーブで制御します。

詳しくは カーブエディタ を参照してください。