Robloxのタワーディフェンスエフェクト:設置、アップグレード、範囲ダメージ、敵の撃破

Robloxのタワーディフェンスゲーム向け無料エフェクトです。タワーの設置やアップグレード、範囲ダメージ、スロウ、空爆、敵の撃破をフリップブックで表現できます。敵が倒れた場所でエフェクトを再生するLuauも付属します。

更新日

タワーディフェンスゲームは高い位置から見下ろすことが多く、道の上に一度に何十体もの敵がいることもあります。こうした状況で効果的なのは、遠くからでも見分けやすいエフェクトです。新しいタワーを囲むように弾けるリング、アップグレード時に伸びる光の柱、範囲ダメージを示す大きなリング、敵を倒したときに目立つポップです。この距離では細部が見えにくいため、テクスチャのサイズよりも、大胆な形と鮮やかな色が重要です。

タワーと敵のエフェクト

  • 建設: タワーが設置されたときのTower Placement(回転する紋章をリングがぴたりと囲みます)と、レベルアップ時のTower Upgrade(光の柱を金色のシェブロンが上昇します)。
  • 範囲ダメージ: 爆弾タワーや迫撃砲タワー向けのSplash Damage Ring、凍結タワー向けのFrost Nova、スタン向けのEMP Blast。
  • アビリティ: プレイヤーが発動する空爆向けのOrbital Strike。
  • 敵へのエフェクト: 敵がスロウ状態の間に再生するループエフェクトと、敵の撃破時に一度だけ再生し、その敵の価値をコインで示すEnemy Defeat Coin Drop。

敵が倒れた場所で再生する

タワーディフェンスゲームの敵は、通常サーバーが管理します。敵が倒れたら、サーバーが位置をすべてのクライアントに伝え、各クライアントがその場所でエフェクトを再生します。こうすればサーバーはエフェクトの処理をせずに済み、1秒間に40体の敵が倒れるウェーブの終わりにも効果的です。

サーバーScript
-- Server: wherever an enemy is defeated (a RemoteEvent named PlayFX in ReplicatedStorage)
local PlayFX = game:GetService("ReplicatedStorage"):WaitForChild("PlayFX")

local function onDefeated(enemy)
	PlayFX:FireAllClients("Enemy Defeat Coin Drop", enemy:GetPivot())
	enemy:Destroy()
end
LocalScript
-- LocalScript in StarterPlayerScripts
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Debris = game:GetService("Debris")
local effects = ReplicatedStorage:WaitForChild("Effects")

ReplicatedStorage:WaitForChild("PlayFX").OnClientEvent:Connect(function(name, at)
	local template = effects:FindFirstChild(name)
	if not template then return end
	local fx = template:Clone()
	fx:PivotTo(at)
	fx.Parent = workspace
	Debris:AddItem(fx, 3) -- Lifetime 1.3 s + 1, rounded up
end)

エクスポートしたモデルは、ReplicatedStorage内のEffectsという名前のフォルダに入れ、それぞれエフェクト名のままにします。モデルは準備済みなので、ワールドに表示されるとすぐに再生されます。LocalScriptでは配置と削除だけを行います。

タワーディフェンス向けの設定

  • サイズ: タワーディフェンスのカメラは遠くから見るため、エフェクトは格闘ゲームより大きくする必要があります。設置とアップグレードのリングは、Sizeをタワーの幅の約2倍から始めます。Splash Damage Ringは、タワーの範囲ダメージの半径に合わせます。
  • 斜め上から見た描画: Tower PlacementとSplash Damage Ringのリングは、斜め上から見た楕円として描かれており、一般的なタワーディフェンスのカメラに適しています。真上から見るカメラでは、少し平たく見えます。
  • 同時に多数を表示: 各エフェクトは1つのパーティクルなので、ウェーブ全体でも負荷は軽くなります。敵のエフェクトには512 pxのテクスチャを使いましょう。この距離では1024との差は見分けられません。
  • 飛翔体: タワーから敵へ飛ぶボルトは、フリップブック内で長さを固定して描きます。線はRoblox Beamで描き、敵の位置でヒットエフェクトを再生してください。

フリップブックPNGは無料です。各エフェクトページのROBLOXボタンはアカウント不要で使えます。また、無料アカウントでもスタジオから、グリッドとテクスチャサイズを選んで書き出せます(1日3エフェクト)。エミッターを設定済みで再生用Scriptが付いた.rbxmxの準備済みモデルと、UI用のUIFlipbook.luauは、月額$7.99からのすべてのプランに含まれます。

ゲームに取り込む

すべての設定と2つの導入方法(無料のPNGまたは完成済みモデル)は、Robloxのセットアップページで確認できます。ジャンル別のエフェクトは無料のRoblox VFXをご覧ください。エクスポート前にスタジオでエフェクトを変更することもできます。たとえば、各タワーの色に合わせて範囲ダメージのリングを変えられます。

よくある質問

敵を一度に40体倒すとゲームが重くなりますか?

各エフェクトはフリップブックを再生する単一のパーティクルなので、ウェーブ全体でも負荷は軽くなります。サーバーではなくクライアントで再生し、Debrisでそれぞれを削除して、小さなエフェクトには512 pxのテクスチャを使いましょう。

範囲ダメージの半径を表示するにはどうすればよいですか?

まず、エミッターのSizeを範囲ダメージの直径と同じstudsに設定します。その後、StudioでSplash Damage Ringの赤い円がダメージ範囲と一致するように一度調整します。同じ半径のタワーなら、すべて同じSizeを使えます。

タワーのレベルごとにアップグレードエフェクトを変えられますか?

はい。スタジオでTower Upgradeを開き、色(たとえばブロンズ、シルバー、ゴールド)を変更して、それぞれ別の名前でエクスポートします。

Robuxを獲得できるゲームで、これらのエフェクトを使えますか?

はい。ライブラリから開始したものを含め、書き出したエフェクトはクレジット表記なしで、商用ゲームを含むあらゆるプロジェクトに使用できます。ただし、ライブラリ自体をエフェクトパックとして再販売することは禁止されています。

Roblox VFXガイド