Language:

サイドバー

バーチャルキャスト公式Wiki

メニュー

VirtualCast

THE SEED ONLINE

配信

その他

リリース情報

デベロッパー向け


開発環境

VRM

VCI

GLB

vci:sample:transform:no1

物体を常に上下運動させる(positionの変更)

※この記事は「UniVCI-0.15」時点のものです。

サンプルデータ:https://seed.online/items/d4866fb99ca08c1e983f25031bb4f2863b77a9b00823b9a94c3bd646b6d74284

VCIが表示されている間、常に処理を実行するには「update」を使用します。

また、上下運動については、math.sin関数を使ってふわふわさせます。
ここでは他のユーザーと同期する必要がないため「vci.me(ExportMe)(ローカル情報)」の中にある「FrameCount」を使用します。

「FrameCount」はローカルのクライアントを起動してから今までのフレーム数です。

1. 新しくGameObjectを作成し、その中にCubeを子にします。
GameObjectの名前は「Floating_VCI」としていますが、任意の名前でも可です。
Cubeの名前は「Cube」と指定します。Cubeは地面に貫通しないようY座標を1.0に指定します。

2. GameObjectに「VCI Object」コンポーネントをアタッチし、
Cubeに「VCI SubItem」コンポーネントをアタッチします。
この時、「Rigitbody」コンポーネントもアタッチされます。
重力を使用しないため、「Use Gravity」をOFF、「Is Kinematic」をONにします。

3. GameObjectの「VCI Object」コンポーネントのScriptsのSizeを1に指定し、
Nameに「main.lua」を記入、Sourceに以下スクリプトを記入します。

main.lua
local cube = vci.assets.GetTransform("Cube")	--SubItem名をstring型で挿入します
local basePosition = cube.GetLocalPosition()	--Cubeの初期座標
local speed = 0.1	--スピード
local range = 0.1	--移動範囲
 
function updateAll() -- 所有権にかかわらず全ユーザーで呼び出されます
 
    if cube.IsMine then -- 所有者が代表して移動させます
        local addPosition = Vector3.__new(0,math.sin(vci.me.FrameCount * speed * range),0)	--追加する位置       
        cube.SetLocalPosition(basePosition + addPosition)
    end
end

各コンポーネントの設定は以下を参照してください。

vci/sample/transform/no1.txt · 最終更新: 2022/03/06 23:10 by Ramen

ページ用ツール