物理演算#
VCIでは、Unityの物理演算システムを使用して、物理法則に従った動作を実現します。
物理演算を有効にしたいオブジェクトには、RigidbodyとColliderのコンポーネントを追加します。
チュートリアル#
Unityの物理演算システムを理解するには、Unityの公式チュートリアルを参照することを推奨します。
3D Physics - Unity Learn(日本語字幕あり)
VCIで利用可能な物理演算に関連するコンポーネント#
-
物理演算による運動を有効にするコンポーネント
-
物理演算の対象となるオブジェクトの形状を定義するコンポーネント
-
物理演算の挙動を調整するコンポーネント
-
Rigidbody同士を接続するコンポーネント
スクリプトによる操作#
VCIスクリプトでは物理演算に関するAPIとしてExportTransform
が提供されます。
以下はRigidbodyに力を加えるサンプルコードです。
-- ExportTransformを取得
local transform = vci.assets.GetTransform("Rigidbodyをアタッチしたオブジェクトの名前")
-- 前方向に力を加える
transform.AddForce(Vector3.forward * 1000)
SubItemの物理演算#
位置を同期したいオブジェクトはSubItemである必要があります。SubItemには自動的にRigidbodyが追加されるため、物理演算に則った動作をします。
SubItemの物理演算はSubItemの所有権を保持するクライアントで計算されます。計算によって得られたオブジェクトの姿勢は、他のクライアントに送信されて同期します。