物理演算#

VCIでは、Unityの物理演算システムを使用して、物理法則に従った動作を実現します。
物理演算を有効にしたいオブジェクトには、RigidbodyとColliderのコンポーネントを追加します。

チュートリアル#

Unityの物理演算システムを理解するには、Unityの公式チュートリアルを参照することを推奨します。

VCIで利用可能な物理演算に関連するコンポーネント#

  • Rigidbody

    • 物理演算による運動を有効にするコンポーネント

  • Collider

    • 物理演算の対象となるオブジェクトの形状を定義するコンポーネント

  • PhysicsMaterial

    • 物理演算の挙動を調整するコンポーネント

  • Joint

    • Rigidbody同士を接続するコンポーネント

スクリプトによる操作#

VCIスクリプトでは物理演算に関するAPIとしてExportTransformが提供されます。 以下はRigidbodyに力を加えるサンプルコードです。

-- ExportTransformを取得
local transform = vci.assets.GetTransform("Rigidbodyをアタッチしたオブジェクトの名前")

-- 前方向に力を加える
transform.AddForce(Vector3.forward * 1000)

SubItemの物理演算#

位置を同期したいオブジェクトはSubItemである必要があります。SubItemには自動的にRigidbodyが追加されるため、物理演算に則った動作をします。
SubItemの物理演算はSubItemの所有権を保持するクライアントで計算されます。計算によって得られたオブジェクトの姿勢は、他のクライアントに送信されて同期します。