Language:

サイドバー

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

メニュー

Steam版

デバイス

アセット

配信

その他

リリース情報

デベロッパー向け


開発環境

GLB

vci:script:reference:effekseer

以前のリビジョンの文書です


Effekseer (エフェクト)

VCIでエフェクトを再生するのに使用します。
コンポーネントの使用方法は Effekseer (VCI対応) を確認してください。

メソッド一覧

メソッド一覧は[EmbeddedScriptWorkspace]フォルダ内の[types.lua]を開くと最新のメソッド一覧を確認できます。


メソッド名 説明
EffectName Stringでエフェクト名を取得します。
Play() 停止するまでエフェクトがループ再生します。
PlayOneShot() エフェクトが1回だけ再生されます。
Stop() エフェクトを停止します。ゆっくりと消失します。
StopImmediate() エフェクトを停止します。
実行したタイミングで即座にエフェクトが消失します。
StopRoot()
SetAllColor(color: Color) エフェクトの色を変更します。
SetTargetLocation(targetLocation: Vector3) エフェクトの向かう位置を指定します。
SetPause (paused: bool) 実行したタイミングでエフェクトの再生を一時停止します。
SetShow (shown: bool) エフェクトの表示・非表示を切り替えます。
SetSpeed (speed: number) エフェクトのスピードを変更します。
通常の速度を1の基準速度として扱い、基準速度の倍速で変化します。
SetLoop (isLoop: bool) trueであればエフェクトの再生がループします。
デフォルトはEffekseer Emitterで設定した値です。

_ALL_ を含むメソッドは、他のクライアントでも実行され同期します。
全てのクライアントで同じ結果になってほしい場合は _ALL_ を含むメソッドを使用してください。

メソッド名 説明
_ALL_Play () 停止するまでエフェクトがループ再生します。
_ALL_PlayOneShot () エフェクトが1回だけ再生されます。
_ALL_Stop () エフェクトを停止します。ゆっくりと消失します。
_ALL_StopImmediate () エフェクトを停止します。
実行したタイミングで即座にエフェクトが消失します。
_ALL_StopRoot ()
_ALL_SetAllColor (color: Color) エフェクトの色を変更します。
_ALL_SetTargetLocation (targetLocation: Vector3) エフェクトの向かう位置を指定します。
_ALL_SetPause (paused: bool) 実行したタイミングでエフェクトの再生を一時停止します。
_ALL_SetShow (shown: bool) エフェクトの表示・非表示を切り替えます。
_ALL_SetSpeed (speed: number) エフェクトのスピードを変更します。
通常の速度を1の基準速度として扱い、基準速度の倍速で変化します。
_ALL_SetLoop (isLoop: bool) trueであればエフェクトの再生がループします。
デフォルトはEffekseer Emitterで設定した値です。

基本的な使用方法

  1. EffekseerEmitterのコンポーネントをSubItemに対してアタッチします。
  2. vci.assets.GetEffekseerEmitter(“SubItem”) または
    vci.assets.GetEffekseerEmitters(“SubItem”)を実行してSubItemからeffectを変数へ格納します。引数はSubItemのgameobjectの名前をstringで指定します。
  3. エフェクトを格納した変数に対して、関数を実行してエフェクトの再生や停止などを行います。

※コンポーネントやセットアップについてはEffekseer (VCI対応)を確認してください。

サンプル

main.lua
-- エフェクトをアタッチしたゲームオブジェクト名を指定してエフェクトを格納します
-- Effect という名前のゲームオブジェクトにアタッチされたエフェクトを変数 effect に格納する
local effect = vci.assets.GetEffekseerEmitter("Effect")
 
-- エフェクト名の表示
print(effect.EffectName)
 
function onUse()
    -- 格納したエフェクトを1回再生する
    effect.PlayOneShot()
end

実行結果

(SubItemをUseした時に1回だけエフェクトが再生されます)

EffectName

戻り値:string

  • EffekseerEmitterのEffectAssetに割り当てられているエフェクトのファイル名を取得します。
main.lua
-- GameObjectにアタッチされてるエフェクトを格納する
local _Effect = vci.assets.GetEffekseerEmitter("EffectItem")
 
-- コンソールに再生するエフェクト名を表示する
print("エフェクトを再生します : ".._Effect.EffectName)
 
-- エフェクトの再生を開始する
_Effect._ALL_Play()

実行結果

エフェクトを再生します : Effect
(_Effectに格納されたエフェクトの再生が開始されます)

Play()

引数:なし

  • Effectの再生を開始します。
  • Loop設定の場合、Stop()を実行するまで再生され続けます。
  • Loopが設定されてない場合、エフェクト全体の再生が終わった時点で終了します。
main.lua
-- 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()

引数:なし

  • Loop設定になってるエフェクトの場合でも、エフェクトを1回だけ再生します。
  • エフェクトの再生中に実行すると、再生中のエフェクトを終了して再生しなおします。
main.lua
-- GameObjectにアタッチされてるエフェクトを格納する
local _Effect = vci.assets.GetEffekseerEmitter("EffectItemLoop")
 
function onUse()
    -- エフェクトを1回再生する。  
    _Effect._ALL_PlayOneShot()
end

実行結果

(エフェクトが1回だけ再生されます)

Stop()

引数:なし

  • Play()したエフェクトの再生を即座に停止します。
main.lua
-- 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()

引数:なし

  • 処理はStop()と同じく即座にエフェクトが停止されますが、Effekseerの公式では非推奨の処理になります。

StopRoot()

引数:なし

  • Play()したエフェクトの再生を徐々に停止します。処理としてはルートノードだけを停止して、子のノードが徐々に停止していきます。
main.lua
-- 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()

第1引数:color (color)

  • SetAllColor()を使用する場合、テクスチャの色は白を使用してください。
  • 色はColor型を使って指定してください。
  • エフェクトの再生が終了すると、初期設定の色に戻ります。
main.lua
-- 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をするとエフェクトのカラーがランダムで変更されます)
main.lua
-- 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()

第1引数:targetLocation (Vector3)

  • tips1
  • tips2
main.lua
 

実行結果

 

SetPause()

第1引数:paused (bool)

  • trueでエフェクトを一時停止し、falseでエフェクトの一時停止を解除します。
main.lua
-- 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()

第1引数:shown (bool)

  • trueでエフェクトを表示し、falseでエフェクトを非表示にします。
  • falseの状態でエフェクトが終了した場合、再度エフェクトを再生すると表示状態になります。
main.lua
-- 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 ()

第1引数:Speed(number)

  • エフェクトの再生スピードを変更します。
main.lua
-- 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 ()

第1引数:isLoop (bool)

  • trueの場合エフェクトをループ再生に設定し、falseの場合エフェクトのループ再生を解除します。
main.lua
-- 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回だけエフェクトを再生し終了します)
vci/script/reference/effekseer.1623927718.txt.gz · 最終更新: 2021/06/17 20:01 by t-daihisa

ページ用ツール