spine-unity 2Dおよび3D物理演算
December 2nd, 2019
spine-unity runtime はHingeJointおよびHingeJoint2Dチェーンのサポートを改善しました!これにより、キャラクターに現実的なケープ物理を与え、重い物体を引きずり回したり、早朝の星を周回させる、その他様々なことが可能になりました。
HingeJointおよびHingeJoint2Dコンポーネントは、RigidbodyまたはRigidbody2Dを相互に接続したり、ヒンジに接続されたように制約し、動かすことに使用できます。これはドアの動きに最適ですが、モデルチェーン、振り子、その他の物体にも使用できます。正しく設定すれば、Unitiyの物理演算が運動量と衝突反応を全てのチェーン要素に適用します。ここでの重要な要件は、チェーン要素が親子階層をなすのではなく、同じ階層レベルにフラットに配置されなくてはならないことです。
以前の機能
この機能は以前のspine-unityバージョンにも存在したことを覚えている方もいらっしゃるでしょう。ご試用になった場合、「Rigidbody」パラメーターをどのように設定しても、あまり満足のいかない結果になったかもしれません。これは重力が適用されても、スケルトンまたは親ボーンの動きが捉えられず、運動量が不足したためです。spine-unity 3.8以降、この物理リギングが運動量を確保し、スケルトンを反転した時も正しく動作するようになりました。
ヒンジチェーンの作成
2Dと3Dのヒンジチェーンは、既存のSkeletonUtilityBone階層から作成できます。
まず「SkeletonUtilityBone」チェーン要素を選択し、物理的なリグを生じるために、インスペクターの中で「Create 3D Hinge Chain」または「Create 2D Hinge Chain」を選択します。選択された要素と全ての「SkeletonUtilityBone」の子はヒンジチェーンになります。これにより生じた結果を好きな形状に変更するには、「Rigidbody」ドラッグとマスパラメータを調整します。ドラッグ値を上げると、「Rigidbody」の動きが遅くなり、重い、または空気の中でインタラクションしているような効果を作ります。
チェーンルートノードは、スケルトンのボーンに親として配置されず、その代わりにシーン階層の最上部に配置されます。これはUnityが運動量を正しく適用するための要件です。チェーンルートをスケルトンのボーンの親に指定しないでください。これを行うと、チェーン要素はスケルトンの動きに影響されなくなります!
2D ヒンジチェーン
1.通常通りにSkeletonUtilityBone hierarchyを作成します。 2.シーンパネルで最初のチェーン要素を選び、2Dヒンジチェーンリグを作成するために、インスペクターで「Create 2D Hinge Chain」を選択します。 3.これにより、以前の親から「GameObject」チェーンが取り除かれ(例では「cape-root」)、シーンの最上部で新しい「HingeChain Parent」と「GameObject」が配置されます。前述のとおり、「GameObject」をスケルトンの親に指定しないでください! 4.これにより生じた結果を好きな形状に変更するには、チェーン要素である「Rigidbody」ドラッグとマスパラメーターを調整します。
この「GameObject」は「Hinge Chain」と「Hinge Chain FlippedX」という2つの子オブジェクトを含みます。スケルトンが反転すると、これらの「GameObject」インスタンスは、それぞれのヒンジチェーンを有効にするために、自動的にアクティベートされる、またはアクティベートが解除されます。
3Dヒンジチェーン
- 通常通りにSkeletonUtilityBone hierarchyを作成します。 2.シーンパネルで最初のチェーン要素を選択し、3Dヒンジチェーンリグを作成するために「Create 3D Hinge Chain」を選びます。 3.これにより、以前の親から「GameObject」チェーンが取り除かれ(例では「cape-root」)、シーンの最上部で新しい「HingeChain Parent」と「GameObject」が配置されます。前述のとおり、「GameObject」をスケルトンの親に指定しないでください! 4.これにより生じた結果を好きな形状に変更するには、チェーン要素である「Rigidbody」ドラッグとマスパラメーターを調整します。
スケルトンが反転すると、「HingeChain Parent」 と「GameObject」が自動的に180度回転し、ヒンジチェーンを反転したボーンの位置に合わせます。
これらのspine-unity runtimeの新機能により、スケルトンが簡単に物理に影響されるようになり、よりダイナミックな動きを実現します。皆さんのご意見や作品はSpine forumにお気軽にお寄せください!