~~NOTOC~~ ====== ExportEffekseer (エフェクト) ====== このページは過去の情報となります。\\ 新しいスクリプトリファレンスは**[[https://developer.virtualcast.jp/vci-docs/api/|こちら]]**になります。 VCIでエフェクトを再生するのに使用します。\\ コンポーネントの使用方法は [[vci:component:sdk:effekseer| Effekseer (VCI対応)]] を確認してください。 ^ ExportAssets ^^^ ^ 名前 ^ 説明 ^ バージョン ^ | [[ vci/script/reference/effekseer#基本的な使用方法|GetEffekseerEmitter]] | VCI内のObjectのエフェクトを取得 | | ^ ExportEffekseer ^^^ ^ 名前 ^ 説明 ^ バージョン ^ | [[ vci/script/reference/effekseer#EffectName]] | エフェクト名を取得 | | | [[ vci/script/reference/effekseer#Play]] | ループ再生 | | | [[ vci/script/reference/effekseer#PlayOneShot]] | 1回だけ再生 | | | [[ vci/script/reference/effekseer#Stop]] | 即座に停止 | | | [[ vci/script/reference/effekseer#StopImmediate(非推奨)]] | 即座に停止(非推奨)| | | [[ vci/script/reference/effekseer#StopRoot]] | 徐々に停止 | | | [[ vci/script/reference/effekseer#SetAllColor]] | エフェクトの色を変更 | | | [[ vci/script/reference/effekseer#SetTargetLocation]] | エフェクトの向かう位置を指定 | | | [[ vci/script/reference/effekseer#SetPause]] | 一時停止 | | | [[ vci/script/reference/effekseer#SetShow]] | エフェクトの表示・非表示を設定 | | | [[ vci/script/reference/effekseer#SetSpeed]] | エフェクトのスピードを変更 | | | [[ vci/script/reference/effekseer#SetLoop]] | エフェクトのループを設定 | | ''_ALL_'' を含む関数は、他のクライアントでも実行され同期します。\\ 全てのクライアントで同じ結果になってほしい場合は ''_ALL_'' を含む関数を使用してください。\\ Play _ALL_Play ===== 基本的な使用方法 ===== - EffekseerEmitterのコンポーネントをSubItemに対してアタッチします。 - ''vci.assets.GetEffekseerEmitter("SubItem")'' または\\ ''vci.assets.GetEffekseerEmitters("SubItem")''を実行してSubItemからeffectを変数へ格納します。引数はSubItemのgameobjectの名前をstringで指定します。\\ - エフェクトを格納した変数に対して、関数を実行してエフェクトの再生や停止などを行います。\\ **※コンポーネントやセットアップ**については[[vci:component:sdk:effekseer|Effekseer (VCI対応)]]を確認してください。\\ サンプル\\ -- エフェクトをアタッチしたゲームオブジェクト名を指定してエフェクトを格納します -- Effect という名前のゲームオブジェクトにアタッチされたエフェクトを変数 effect に格納する local effect = vci.assets.GetEffekseerEmitter("Effect") -- エフェクト名の表示 print(effect.EffectName) function onUse() -- 格納したエフェクトを1回再生する effect.PlayOneShot() end 実行結果\\ (SubItemをUseした時に1回だけエフェクトが再生されます) ===== EffectName ===== **EffectName string** EffekseerEmitterのEffectAssetに割り当てられているエフェクトのファイル名を取得します。 -- GameObjectにアタッチされてるエフェクトを格納する local _Effect = vci.assets.GetEffekseerEmitter("EffectItem") -- コンソールに再生するエフェクト名を表示する print("エフェクトを再生します : ".._Effect.EffectName) -- エフェクトの再生を開始する _Effect._ALL_Play() 実行結果\\ エフェクトを再生します : Effect (_Effectに格納されたエフェクトの再生が開始されます) ===== Play ===== **Play fun()**\\ **_ALL_Play fun()** * Effectの再生を開始します。 * Loop設定の場合、Stop()を実行するまで再生され続けます。 * Loopが設定されてない場合、エフェクト全体の再生が終わった時点で終了します。 -- GameObjectにアタッチされてるエフェクトを格納する local _Effect = vci.assets.GetEffekseerEmitter("EffectItem") function onUse() -- Useした時、エフェクトの再生を開始する _Effect._ALL_Play() print("エフェクトの再生を開始 : ".._Effect.EffectName) end function onUnuse() -- Unuseした時、エフェクトの再生を停止する _Effect._ALL_Stop() print("エフェクトの再生を停止 : ".._Effect.EffectName) end 実行結果\\ (Useをするとエフェクトの再生が開始します) (Unuseをするとエフェクトの再生が停止します) ===== PlayOneShot ===== **PlayOneShot fun()**\\ **_ALL_PlayOneShot fun()** * Loop設定になってるエフェクトの場合でも、エフェクトを1回だけ再生します。 * エフェクトの再生中に実行すると、再生中のエフェクトを終了して再生しなおします。 -- GameObjectにアタッチされてるエフェクトを格納する local _Effect = vci.assets.GetEffekseerEmitter("EffectItemLoop") function onUse() -- エフェクトを1回再生する。 _Effect._ALL_PlayOneShot() end 実行結果\\ (エフェクトが1回だけ再生されます) ===== Stop ===== **Stop fun()**\\ **_ALL_Stop fun()** * Play()したエフェクトの再生を即座に停止します。 -- GameObjectにアタッチされてるエフェクトを格納する local _Effect = vci.assets.GetEffekseerEmitter("EffectItem") function onUse() -- Useした時、エフェクトの再生を開始する _Effect._ALL_Play() print("エフェクトの再生を開始 : ".._Effect.EffectName) end function onUnuse() -- Unuseした時、エフェクトの再生を即座に停止する _Effect._ALL_Stop() print("エフェクトの再生を停止 : ".._Effect.EffectName) end 実行結果\\ (Useをするとエフェクトの再生が開始します) (Unuseをするとエフェクトの再生が即座に停止します) ===== StopImmediate(非推奨) ===== **StopImmediate fun()**\\ **_ALL_StopImmediate fun()** * 処理はStop()と同じく即座にエフェクトが停止されますが、Effekseerの公式では非推奨の処理になります。 ===== StopRoot ===== **StopRoot fun()**\\ **_ALL_StopRoot fun()** * Play()したエフェクトの再生を徐々に停止します。処理としてはルートノードだけを停止して、子のノードが徐々に停止していきます。 -- GameObjectにアタッチされてるエフェクトを格納する local _Effect = vci.assets.GetEffekseerEmitter("EffectItem") function onUse() -- Useした時、エフェクトの再生を開始する _Effect._ALL_Play() print("エフェクトの再生を開始 : ".._Effect.EffectName) end function onUnuse() -- Unuseした時、エフェクトの再生を徐々に停止する _Effect._ALL_StopRoot() print("エフェクトの再生を停止 : ".._Effect.EffectName) end 実行結果\\ (Useをするとエフェクトの再生が開始します) (Unuseをするとエフェクトの再生が徐々に停止します) ===== SetAllColor ===== **SetAllColor fun(color: Color)**\\ **_ALL_SetAllColor fun(color: Color)** **第1引数:color (color)** * SetAllColor()を使用する場合、テクスチャの色は白を使用してください。 * 色は[[vci:script:reference:color|Color]]型を使って指定してください。 * エフェクトの再生が終了すると、初期設定の色に戻ります。 -- GameObjectにアタッチされてるエフェクトを格納する local _Effect = vci.assets.GetEffekseerEmitter("EffectItem") -- エフェクトの再生を開始する _Effect._ALL_Play() function onUse() -- ランダムで色を作成する local color = Color.__new(math.random(0,100) * 0.01, math.random(0,100) * 0.01, math.random(0,100) * 0.01, 1) _Effect.SetAllColor(color) end 実行結果\\ (Useをするとエフェクトのカラーがランダムで変更されます) -- GameObjectにアタッチされてるエフェクトを格納する local _Effect = vci.assets.GetEffekseerEmitter("EffectItem") -- エフェクトの再生を開始する _Effect._ALL_Play() function onUse() -- エフェクトを青に変更する _Effect.SetAllColor(Color.blue) end function onUnuse() -- エフェクトを赤に変更する _Effect.SetAllColor(Color.red) end 実行結果\\ (Useをするとエフェクトのカラーが青に変更します) (Unuseをするとエフェクトのカラーが赤に変更します) ===== SetTargetLocation ===== **SetTargetLocation fun(targetLocation: Vector3)**\\ **_ALL_SetTargetLocation fun(targetLocation: Vector3)** **第1引数:targetLocation (Vector3)** * tips1 * tips2 実行結果\\ ===== SetPause ===== **SetPause fun(paused: boolean)**\\ **_ALL_SetPause fun(paused: boolean)** **第1引数:paused (bool)** * trueでエフェクトを一時停止し、falseでエフェクトの一時停止を解除します。 -- GameObjectにアタッチされてるエフェクトを格納する local _Effect = vci.assets.GetEffekseerEmitter("EffectItemLoop") -- エフェクトの再生を開始する _Effect._ALL_Play() function onUse() -- エフェクトを一時停止する _Effect._ALL_SetPause(true) end function onUnuse() -- エフェクトの一時停止を解除する _Effect._ALL_SetPause(false) end 実行結果\\ (アイテムを出すとエフェクトの再生がはじまります) (Useするとエフェクトが一時停止します) (Unuseするとエフェクトの一時停止が解除されます) ===== SetShow ===== **SetShow fun(shown: boolean)**\\ **_ALL_SetShow fun(shown: boolean)** **第1引数:shown (bool)** * trueでエフェクトを表示し、falseでエフェクトを非表示にします。 * falseの状態でエフェクトが終了した場合、再度エフェクトを再生すると表示状態になります。 -- GameObjectにアタッチされてるエフェクトを格納する local _Effect = vci.assets.GetEffekseerEmitter("EffectItemLoop") -- エフェクトの再生を開始する _Effect._ALL_Play() function onUse() -- エフェクトを非表示にする _Effect._ALL_SetShow(false) end function onUnuse() -- エフェクトを表示する _Effect._ALL_SetShow(true) end 実行結果\\ (アイテムを出すとエフェクトの再生を開始します) (Useをするとエフェクトを非表示にします) (Unuseをするとエフェクトを表示します) ===== SetSpeed ===== **SetSpeed fun(speed: number)**\\ **_ALL_SetSpeed fun(speed: number)** **第1引数:Speed(number)** * エフェクトの再生スピードを変更します。 -- GameObjectにアタッチされてるエフェクトを格納する local _Effect = vci.assets.GetEffekseerEmitter("EffectItem") function onUse() -- 1.0 ~ 3.0 の間でランダムな値をspeedに代入する local speed = 0.1 * math.random(10, 30) -- エフェクトの再生スピードを変更する _Effect._ALL_SetSpeed(speed) -- エフェクトを1回だけ再生する _Effect.PlayOneShot() end 実行結果\\ (Useした時、再生速度1倍~3倍のランダムな速度でエフェクトを1回再生します) ===== SetLoop ===== **SetLoop fun(isLoop: boolean)**\\ **_ALL_SetLoop fun(isLoop: boolean)** **第1引数:isLoop (bool)** * trueの場合エフェクトをループ再生に設定し、falseの場合エフェクトのループ再生を解除します。 -- GameObjectにアタッチされてるエフェクトを格納する local _Effect = vci.assets.GetEffekseerEmitter("EffectItem") function onGrab() -- エフェクトをループ再生に設定する _Effect._ALL_SetLoop(true) -- エフェクトの再生を開始する _Effect._ALL_Play() end function onUse() -- エフェクトのloop再生を解除する _Effect._ALL_SetLoop(false) -- エフェクトの再生を開始する _Effect._ALL_Play() end 実行結果\\ (Grabをするとエフェクトがループ再生を開始します) (Useをすると1回だけエフェクトを再生し終了します)