0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

24日目:花火から学ぶエフェクト作成(Unity・Script編)

Last updated at Posted at 2020-12-29

この記事はアドベントカレンダー「【VCI】テーマパーク を作ろう 」の記事です。

今回の内容

今回は前回作成した花火のエフェクトを取り込んで行きたいと思います

今回は学ぶ技術は以下となります。
 ・Effectを実行する方法
 ・ランダム要素のあるスクリプトの書き方

Unity概要

早速Unityに取り込みます。詳細な手順は以下の公式ページを御覧ください。
 ・Effekseer (VCI対応)
wikiの説明ではエクスポートしたファイルをD&Dする説明になっていますが、
プロジェクトをEffekseer1.5のefkefcファイル形式で作成していれば、efkefcファイルをD&Dしても行けるそうです。
ただし、その場合も画像ファイルの相対パスの維持は必要です。

今回は連続で花火を打ち上げる方式で作成します。
たくさん花火が上がるので他の人と同期はしなくて良いとし、子オブジェクトとしていくつか作成しておきます。
Effect付きオブジェクトを選択した際にSceneの右下にEffect用のパネルが出てきます。こちらで再生して内容を確認できます。

コードの作成

Effectの再生はスクリプトより行います。詳細は以下の公式ページを御覧ください。
 ・Effekseer (エフェクト)

上記を参考に作成したコードが以下となります。
花火の間隔と位置をバラけさせるためにmatn.randomを使用しています。

--- 次の花火が再生される時間。
local nextExplosionTime = vci.me.Time.TotalSeconds
--- 次のエフェクト再生対象となる花火のNo
local targetFireWorkNo = 1

function updateAll()
  local minute = tonumber(os.date("%M"))
  if minute == illminateMinute and nextExplosionTime < vci.me.Time.TotalSeconds then
    --花火の出現位置をランダムなるように設定
    local x = math.random(-50,50)
    local y = math.random(-20,20)
    local z = math.random(-4,4)

    --アイテムを取得して位置と大きさを設定
    local item = vci.assets.GetTransform("Fireworks "..targetFireWorkNo)
    item.SetLocalPosition(Vector3.__new(x,y,z))
    item.SetLocalScale(2*(Vector3.one+ Vector3.one*math.random(-5,10)/10))

    --エフェクトを取得して再生
    local effect = vci.assets.GetEffekseerEmitter("Fireworks "..targetFireWorkNo)
    effect.PlayOneShot()

    --次実行する花火の番号と実行する時間を設定
    targetFireWorkNo = targetFireWorkNo%20 + 1
    nextExplosionTime = vci.me.Time.TotalSeconds + math.random(1,15)/10
  end
end

実際に動かすと以下のようになります。

終わりに

いかがでしたでしょうか?
今回は花火がいきなり空中に出る方式で作成しましたが、アニメーションやスクリプトで地上から玉を発射してから爆発エフェクトを再生させることも可能だと思います。
次回はRoomの設定を公開について説明します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?