• Runtimes
  • Unityゲーム空間で『重力』を適用する方法について

OS:Windows11
Spine:4.2.40
Unity:6000.0.42f1(URP)

Spine上で物理演算『重力を設定しているボーン』がUnityゲーム空間では同じ挙動にならないので困っています。
同じ挙動にするための方法がありましたら、教えていただきたいのですが…

現在の状況ですが、『赤いパーツ』がボーンに重力設定されている箇所です。
Spineではrootから回転させた際にパーツが傾きますが、Unityでは傾きません。

■Spineでの状態

■Unityでの状態

Spine、Unityのバージョンは適切なものに変更可能です。
どうぞ宜しくお願いします。

Related Discussions
...
  • Изменено

Spineで設定した物理演算がUnityで同じように動作しない場合、いくつかの原因が考えられます。まず、Spineの物理演算はスケルトン空間で設定されており、Unityの設定とは独立しています。Unityで同じ挙動を再現するためには、Spineの物理設定がUnityのスケルトンに正しく適用されているか確認する必要があります。

  1. SpineのバージョンとUnityのランタイムの互換性: 最新のSpineランタイムを使用しているか確認してください。特に、物理演算に関するバグ修正が含まれている場合があります。例えば、このコミットで修正された問題があるかもしれません。

  2. Physics Inheritanceの設定: UnityのSkeletonAnimationコンポーネントのAdvancedセクションでPhysics Inheritanceの設定を確認し、物理演算が正しく継承されているか確認してください。詳細はこちらを参照してください。

  3. Transformの影響: UnityでGameObjectのTransformがスケルトンに影響を与えていない可能性があります。Transformの動きがスケルトンに正しく伝わるように設定を確認してください。

これらの点を確認し、必要に応じて設定を調整することで、SpineとUnityでの物理演算の挙動を一致させることができるかもしれません。

  • Изменено

提案いただいた3つの項目を試しましたが、求めている挙動にはなりませんでした。

Physics Inheritanceの『Position、Rotation』の数値を上げたとしても、『傾いたまま変形を維持する』といったSpine空間と同じ挙動にはなりませんでした。

【Spineの物理演算はスケルトン空間で設定されており、Unityの設定とは独立しています。】ということですと、Spine空間と全て同じ挙動にするのは難しいということでしょうか?

これが正しいのかは判断できませんが、『rootをOverride』したところ、Spine空間と同じ表現になりました。

■Spineと同じように『傾いたまま変形を維持する』ことができました。(画面左側のオブジェクト)

@Adachi Glad to hear you've figured it out, thanks for getting back to us.

Currently Physics Inheritance of forwarding the Unity GameObject Transform movement to the Spine internal Physics constraints only work in regards to applying translation movement via rotation, but not changing the current direction of gravity and wind. These remain in skeleton space in the current versions.

So your solution was correct to instead of the GameObject Transform rotate the root bone to achieve the desired effect.

@Harald 返信ありがとうございます。
私の解釈が正しかったようで、安心しました。