-
Notifications
You must be signed in to change notification settings - Fork 392
Parameters
KawaiiPhysicsの全パラメータについて解説します。
- Modify Target
- Physics Settings
- Simulation Space
- Curve Data
- Limits (コリジョン)
- Bone Constraint
- Sync Bone
- External Force
- World Collision
- External Force Presets
- AnimNotify
- Gameplay Tag
- デバッグ・コンソール変数
制御対象のボーンを設定します。
指定ボーンとそれ以下のボーンを制御対象にします。
v1.17以降: 複数のRoot Boneを設定可能になりました。
指定したボーンとそれ以下のボーンを制御対象から除外します。
0より大きい場合は、制御ボーンの末端にダミーボーンを追加します。ダミーボーンを追加することで、末端のボーンの物理制御が改善されます。
ボーンの前方向を指定します。物理制御やダミーボーンの配置位置に影響します。
物理シミュレーションの基本パラメータです。
減衰度。揺れの強さを制御します。値が小さいほど、加速度を物理挙動に反映します。
- 参考値: 0.1〜0.3
剛性度。値が大きいほど、元の形状を維持します。
- 参考値: 0.05〜0.2
ワールド座標系におけるSkeletalMeshComponentの移動量の反映度。
- 参考値: 0.5〜0.8
ワールド座標系におけるSkeletalMeshComponentの回転量の反映度。
- 参考値: 0.5〜0.8
v1.19で追加
SkeletalMeshComponentの移動が物理シミュレーションに与える影響度を調整します。エレベーターや移動プラットフォーム上での動作調整に有用です。
各ボーンのコリジョン半径。
物理挙動による回転制限。適切に設定することで荒ぶりを抑制できます。
ターゲットとなるフレームレート。
物理の空回し回数。物理処理が落ち着いてから開始・表示したい際に使用します。
1フレームにおけるSkeletalMeshComponentの移動量が設定値を超えた場合、その移動量を物理制御に反映しません。瞬間移動時の荒ぶり防止に使用します。
1フレームにおけるSkeletalMeshComponentの回転量が設定値を超えた場合、その回転量を物理制御に反映しません。
指定した軸に応じた平面上に各ボーンを固定します。
各ボーンの物理パラメータを毎フレーム更新するフラグ。無効にするとパフォーマンスが僅かに改善しますが、実行中に物理パラメータを変更できなくなります。
制御対象のボーンが見つからない場合にTransformをリセットするフラグ。基本的には無効にしてください。
v1.19で追加
物理シミュレーションの座標系を設定します。
シミュレーションを行う座標系を選択します。
| 値 | 説明 |
|---|---|
| Component Space | コンポーネント座標系(従来の動作) |
| World Space | ワールド座標系 |
| Base Bone Space | ベースボーン座標系 |
使用例:
- 1フレーム内でルートボーンが180度回転するような場合に、World SpaceやBase Bone Spaceを使用すると安定します。
各パラメータをボーン位置に応じて変化させるカーブデータです。
計算式:
RootBoneから特定のボーンまでの長さ / RootBoneから末端のボーンまでの長さ
この値(0.0〜1.0)におけるカーブの値を各パラメータに乗算します。
Dampingパラメータを補正します。
Stiffnessパラメータを補正します。
World Damping Locationパラメータを補正します。
World Damping Rotationパラメータを補正します。
Collision Radiusパラメータを補正します。
Limit Angleパラメータを補正します。
コリジョン設定です。
球コリジョン。
カプセルコリジョン。
平面コリジョン。
v1.20で可視化対応
ボックスコリジョン。
コリジョン設定(DataAsset版)。別AnimNode・ABPで設定を流用したい場合に使用します。
v1.16以降: ボーン選択がテキスト入力から階層メニューに改善。Limitsをエクスポートするボタンが追加されました。
v1.17で追加
コリジョン形状を自動生成する機能が追加されました。
v1.14で追加、v1.19でProduction Readyに昇格
XPBD(Extended Position-Based Dynamics)を使用して、ボーン間の距離を維持します。スカートなど、隣接するボーンチェーン同士が離れすぎるのを防ぐのに有効です。
Bone Constraintで用いる剛性タイプ。
コリジョン処理前のBone Constraint処理回数。
コリジョン処理後のBone Constraint処理回数。
末端ボーンをBoneConstraint処理の対象にした場合、自動的にダミーボーンも処理対象にするフラグ。
BoneConstraint処理の対象となるボーンのペアを設定します。スカートのように、ボーン間の距離を維持したい場合に使用します。
BoneConstraint設定(DataAsset版)。別AnimNode・ABPで設定を流用したい場合に使用します。正規表現ベースのボーン設定にも対応しています。
v1.20で追加
参照ボーンの変位を対象ボーンに適用する機能です。スカート貫通などの問題を解決するのに役立ちます。
Sync Boneは、指定した参照ボーン(例:足のボーン)の動きに応じて、対象ボーン(例:スカートのボーン)を同期させます。これにより、ControlRigやPoseDriverを別途設定することなく、貫通問題を軽減できます。
- スカートが足を貫通する問題の解決
- マントが体を貫通する問題の解決
外力の設定です。
外力(重力など)。
v1.20で追加
従来の重力処理を使用するフラグ。v1.20で重力処理が改善されましたが、過去の動作を維持したい場合に有効にします。
v1.20で追加
重力方向をワールド空間で使用するフラグ。
v1.20で追加
プロジェクト設定のDefaultGravityZ値を重力に乗算するフラグ。
単純な外力ベクトル。重力とは別に一定の外力を適用したい場合に使用します。
Simple External Forceをワールド座標系で処理するフラグ。
WindDirectionalSourceによる風の影響を有効にします。ClothやSpeedTreeとの併用を目的としています。
WindDirectionalSourceによる風の影響度。
v1.19で追加
風向きにノイズを追加します。カメラの向きが風と一致する場合の不自然な表現を防止します。
外力のプリセット。C++で独自のプリセットを追加可能です(Instanced Struct)。
注意: 非常に実験的な機能です
BP・C++で独自のプリセットを追加可能です(Instanced Property)。
重要: AnimNodeをクリックするか、ABPをコンパイルしないと正常に動作しません。
レベル上のコリジョンとの判定設定です。
レベル上の各コリジョンとの判定を行うフラグ。
注意: 有効にすると物理処理の負荷が大幅に上がります。
SkeletalMeshComponentのコリジョン設定ではなく、独自のコリジョン設定をWorldCollisionで使用します。
WorldCollisionにて、SkeletalMeshComponentが持つコリジョン(PhysicsAsset)を無視するフラグ。
WorldCollisionにて、指定したボーンのコリジョンを無視します。
WorldCollisionにて、指定したプレフィックスを持つボーンのコリジョンを無視します。
外力プリセットの共通設定と各タイプの設定です。
外力を適用するボーンを指定します。指定しなかったボーンには適用されません。
外力を適用しないボーンを指定します。
外力の空間を指定します。ボーンのローカル座標系での力適用にも対応しています。
ランダムな外力スケールの範囲を指定します。
基本的な外力プリセット。
- Force Dir: 外力の方向
- Force Rate By Bone Length Rate: 各ボーンに適用するForce Rateを補正
- Interval: 外力を適用する間隔
重力プリセット。
- Force Rate By Bone Length Rate: 各ボーンに適用するForce Rateを補正
- Use Character Gravity Direction: Character側で設定されたCustomGravityDirectionを使用
- Use Character Gravity Scale: Character側で設定されたGravityScaleを使用
カーブベースの外力プリセット。
- Force Curve: 時間に応じて変化する外力をカーブで設定
- Curve Evaluate Type: カーブの評価方式
- Substep Count: 経過時間の分割数
- Time Scale: 時間のスケール
- Force Rate By Bone Length Rate: 各ボーンに適用するForce Rateを補正
アニメーションと連携するための機能です。
v1.20で追加
KawaiiPhysicsノードのAlpha値を、特定のアニメーションセグメント中にオーバーライドします。物理効果を一時的に無効化したい場合に使用します。
使用例:
- 特定のアニメーション中は物理を無効にしたい
- カットシーン中は物理効果を弱めたい
AnimNotifyや外部システムからKawaiiPhysicsノードを識別・フィルタリングするためのタグ。複数のKawaiiPhysicsノードを使用する場合に、特定のノードのみを対象にした処理を行う際に有用です。
v1.16で追加
| 変数 | 説明 |
|---|---|
a.AnimNode.KawaiiPhysics.Enable |
KawaiiPhysicsの有効/無効 |
a.AnimNode.KawaiiPhysics.Debug |
デバッグ表示の有効/無効 |
a.AnimNode.KawaiiPhysics.Debug.LengthRate |
長さ比のデバッグ表示 |
v1.20で拡張
- BoxおよびPlaneコリジョンの可視化に対応
- コンソール変数で線の太さを調整可能
- クイックスタート - 基本的なセットアップ
- FAQ - よくある質問
- チュートリアル - 用途別の設定ガイド
- GitHub Discussions - 質問・議論