ダイナミックボーンはキャラクターの骨や関節に物理学を適用します。
シンプルな設定で、あなたのキャラクターの髪、布、胸、またはあらゆる部分が現実に動くでしょう。

Assets / DynamicBone / Demo / Demo1を開いて動作を確認します。
ご不明な点がございましたら、willhongcom @ gmail.comまでご連絡ください。


基本設定:

1.適切に設定された文字を準備すると、Mecanimと従来のリグの両方がサポートされます。
2.ダイナミックボーンを適用するゲームオブジェクトを選択します。
3.コンポーネントメニューで、Dynamic Bone - > Dynamic Boneを選択します。
4.インスペクタで、ルートオブジェクトを選択します。
5.動的骨パラメータを調整します(次のセクションの詳細の説明を参照)。

必要に応じて、コライダーオブジェクトを追加できます。

1.コライダーがアタッチするゲームオブジェクトを選択します。
2.コンポーネントメニューで、Dynamic Bone - > Dynamic Bone Colliderを選択します。
3.コライダーの位置とサイズを調整します。
4. Dynamic Boneコンポーネントでは、コライダーのサイズを大きくし、対応するオブジェクトを追加します。


ダイナミックボーンコンポーネントの説明:

  • ルート
      物理を適用する変換階層のルート。

  • 更新レート
      内部物理シミュレーションレート。フレーム/秒で測定。

  • UpdateMode
      通常:通常の更新。
      AnimatePhysics:フィジックスエンジンと同期するためにフィジカルループ中に更新されます。
      UnscaledTime:Time.timeScaleから独立して更新されます。

  • ダンピング
      どのくらいの骨が減速した。値が高いと、ふんわりと元の位置に戻る感じ

  • 弾力性(Elasticity)
      各骨を元の向きに戻すために適用された力。値が高いと常にかかっている、元に戻す力が強くなる。つまり、値が低いと物体はブランブランに動き、値が高いとほとんど動かなくなる。

  • 剛性(Stiffness)
      骨の元の向きがどれくらい保存されているか。

  • 不活性(Inert)
      どのくらいキャラクタの位置変化が物理シミュレーションで無視されるか。

  • 半径
      各骨は、衝突者と衝突する球体とすることができる。半径は球のサイズを表します。

  • ダンピング分布、弾性分布、剛性分布、不規則分布、半径分布
      階層チェーン上でのパラメータの変更方法曲線の値は、対応するパラメータに乗算されます。

  • 終わりの長さ
      End Lengthがゼロでない場合、変換階層の最後に追加のボーンが生成され、
      長さは最後の2つの骨の距離で乗算されます。

  • 終了オフセット
      End Offsetがゼロでない場合、変換階層の最後に追加のボーンが生成され、
      オフセットは文字のローカルスペースにあります。

  • 重力
      力は、世界の空間の骨に適用されます。キャラクターの初期ポーズに適用される部分的な力は相殺されます。

  • 強制
      力は、世界の空間の骨に適用されます。

  • 衝突
      Colliderオブジェクトは、骨と相互作用します。

  • 除外
      骨は物理シミュレーションから除外されます。
         

  • 凍結軸
      特定の平面上を移動するように骨を拘束する。

  • 遠隔ディスエーブル、参照オブジェクト、オブジェクトまでの距離
      キャラクターがカメラやプレーヤーから遠い場合、物理シミュレーションを自動的に無効にします。
      参照オブジェクトがない場合、デフォルトのメインカメラが使用されます。

Dynamic Bone Colliderコンポーネントの説明:

  • センター
      オブジェクトのローカル空間にある球またはカプセルの中心。

  • 半径
      球またはカプセルの半径は、変換のスケールでスケーリングされます。

  • 高さ
      2つの半球を含むカプセルの高さは、変換のスケールでスケーリングされます。

  • 方向
      カプセルの高さの軸。

  • バウンド
      骨を外側に束縛するか内側に束縛するかを制限する。


ダイナミックボーンスクリプトリファレンス:

  • パブリックvoid SetWeight(float w);
      物理学と既存のアニメーションとの融合を制御します。

  • パブリックvoid UpdateParameters();
      実行時にパラメータを更新し、パラメータを変更した後にこの関数を呼び出します。


バージョン履歴

1.0.1初期リリース。
1.0.2インスペクタのUIを改善しました。
1.0.3有効/無効にすると不活性不安定になる不具合を修正しました。
1.1.0カーブを使用して、階層チェーン上のパラメータを設定します。
      Colliderは束縛内の骨を束縛するように設定できます。
1.1.1除外設定を追加します。
1.1.2負のスケール問題に対処する。
1.1.3ボーンにスケールが含まれているバグを修正しました。
1.1.4フリーズ軸を追加する。
      スクリプト経由で追加したときにバグを修正しました。
1.1.5遠隔ディスエーブルを追加します。
      GCの割り当てを減らす。
1.1.6カプセル衝突者のバグを修正しました。
1.1.7 Unity 5のサポート。
1.1.8負のスケールに起因する問題を修正しました。
1.1.9マイナススケールの検出を改善する。
      衝突者が内部に設定されているとバグを修正しました。
      UpdateMode設定を追加します。
1.1.10 Unity 5.4以降のマイナススケールによる問題を修正しました。
1.2.0ツールチップを追加する。
      平面コライダーを追加します。
      実行時にパラメータを更新する関数を追加します。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.