0 今日の目標

3Dエフェクトを使うことで、2Dでは表現が難しい特殊な演出でステージを盛り上げることができます。
今回は、炎・スモーク・爆発・ライト・効果音のエフェクトを使いこなせるようになりましょう!

1 授業準備

目安時間: 3分
1-1

Roblox Studioを開いてログイン

まずはRoblox Studioを開いて、自分のアカウントでログインしておきましょう。
Roblox Studio起動 ログイン画面
1-2

実験用ステージを開く

前回使っていた「 実験用ステージ 」を開いておきましょう。
※使いづらかったり、すでになければ新しくBaseplateを作ってもかまいません。
実験用ステージを開く
実験用ステージを開くことができましたか?

2 3Dエフェクトでステージを盛り上げよう

目安時間: 15分
3Dエフェクトとは、ステージの見た目を盛り上げるための演出のことです。
まずは、炎・スモーク・爆発の3種類を作ってみましょう。
エフェクト例
2-1

炎のエフェクトを作ってみよう

燃え上がる炎のエフェクトを作ります。炎自体に触れることはできませんが、目立つ演出になりそうですね。
炎のエフェクトの見本
まずは準備として、ブロックを作って「 固定 」して、名前は「 炎 」にしておきます。
大きさは、X と Z(横幅と奥行き)が同じ方が使いやすいです。
ブロック作成 名前設定
炎ブロックの中に「 Fire (ファイア)」を入れてみましょう。
フィルターに「 f 」と入力するとすぐに出てきます。
Fire追加
Fire エフェクトを入れただけで、ブロックの中心から3Dの炎が燃え上がり続けます。
Fire表示
炎ブロックのプロパティから「 Transparency 」「 1 」にして透明にし、「 CanCollide 」をオフにしてぶつかり判定をなくすと、見た目を炎だけにすることができます。
ブロック透明化
Fire エフェクトのプロパティを変えると、炎の見た目を変えることができます。
自由にオリジナルの炎を作ってみましょう。
Fireプロパティ
2-2

スモークのエフェクトを作ってみよう

スモークのエフェクトを作っていきます。
こちらも触れることはできませんが、演出に使えるだけでなく、何かを隠すのにも使えそうですね。
スモークのエフェクトの見本
流れはFireと同じです。ブロックを作って「 固定 」して、名前は「 スモーク 」にしておきます。
大きさは、X と Z(横幅と奥行き)が同じ方が使いやすいです。
ブロック作成 名前設定
スモークブロックの中に「 Smoke (スモーク)」を入れてみましょう。
フィルターに「 sm 」まで入力すると上に出てきます。
Smoke追加
Smoke エフェクトを入れただけで、ブロックの中心から3Dのスモークが出続けます。
Smoke表示
スモークブロックのプロパティから「 Transparency 」「 1 」にして透明にし、「 CanCollide 」をオフにしてぶつかり判定をなくすと、見た目をスモークだけにすることができます。
ブロック透明化
Smoke エフェクトのプロパティを変えると、スモークの見た目を変えることができます。
自由にオリジナルのスモークを作ってみましょう。
Smokeプロパティ
2-3

Scriptで爆発エフェクトを作ってみよう

ブロックに触れたら、爆発してプレイヤーにダメージを与えるしくみをScriptで作りましょう。
このエフェクトはFireやSmokeとは作り方が大きく変わります。
爆発エフェクトの見本
ブロックを作って「 固定 」して、名前は「 爆発 」にしておきます。
ブロック作成 名前設定
爆発にも「 Explosion (エクスプロージョン)」というエフェクトがあるのですが…実はそのままブロックに入れてみても何も起きません。
Explosion追加
なんとExplosionは、ステージである「 Workspace 」に直接置かないと爆発しないし、置いたらガマンできずすぐ爆発してしまうのです。
Workspaceに配置
そんな時こそScriptの出番です。
爆発ブロックにScriptを入れて、名前を「爆発Script」にしておきます。
※Explosionは消してかまいません。
Script追加
以下のScriptをコピーして貼り付けてみましょう。まだ実行はしません。
1
Ctrl A で全選択
2
Ctrl C でコピー
3
Scriptを開いて元あるコードを消す
4
Ctrl V で貼り付け
爆発Script
※コード部分をクリックして、背景が黄色くなったら「 Ctrl + A 」でコード部分のみが選択できます。
さらに爆発音を入れてみます。
ツールボックスのクリエイターストアから、以下の手順で操作してみましょう。
1
「 爆発ブロック 」を先に選択しておく
2
モデル 「 オーディオ 」に変更する
3
「 explosion 」で検索する
4
再生して好みの音を選ぶ
5
名前をクリックすると爆発ブロックに挿入される
5
音の名前を「 爆発音 」に変更する
オーディオ追加
ツールボックスがない時
ツールボックスは、ホームタブにある「 ツールボックス 」で表示できます。
ツールボックス表示
プレイすると、5秒に1回爆発するようになりました。
なお、爆発はエフェクトですが、プレイヤーが触れると即死ダメージが入る特殊仕様になっています。
爆発動作
Scriptの解説は各コード上にコメントを入れてありますが、もっと詳しく知りたい!という人のために解説を用意してあります。
注意
今回のようにScriptの細かい中身を理解するのは、自分で1から作るというより、読んだときになんとなく何をしているかを読み解きやすくするためです。
読み慣れてアレンジにも慣れて、その後でもし必要だと感じたなら自力で作れるようになりましょう。
まずはおさらいです。
「 while true do ~ end 」で、ずっと繰り返す。
「 task.wait(5) 」で、5秒待つ。という使い方でしたね。
基本構文
次に、「 local baku 」で baku という名前の変数を作ります。
そしてその中に、「 Explosion 」(爆発)を新しく作って入れます。
変数作成
ここは難しいので、もっとわかりやすくします。
まず、local と言えば、変数を作って、数値か何かを入れるというものでしたね。
Scratchでもよく使っていた変数と同じです。
変数Lua 変数Scratch
しかし今回は、文字でも数値でもなく、Explosion(爆発エフェクト)をそのまま入れているのです。
この時点では、魂だけを受け取ったようなものなので、まだステージのどこにも出ていませんし、爆発予定地も決まっていません。
エフェクトの魂
Explosionの魂を持った変数bakuは、自由に爆発に関するプロパティ設定を変えることができます。
まずは、「爆発エフェクトのポジション(位置)はこのScriptの親のポジション(位置)にする」という命令で爆発予定地を設定しておきます。
位置設定
この1行を全訳するとこのようになります。
コード解説1
Scriptの気持ちを代弁すると、このようになります。
※爆発予定地の設定が決まっただけなので、まだWorkSpaceやステージには置かれていません。
Script解説
ついに爆発の時です。
爆発をWorkspaceに置きます。Workspaceに置いた瞬間に爆発するんでしたね。
5秒ごとに毎回新しいExplosionを作って、予定地を決めて、置いて爆発させる、という流れができました。
爆発実行
この1行を全訳すると以下の通りです。
ここに移動して…という命令ではなく、あなたの親(居場所)はWorkspaceだ。と指示すると、その場所に移動することになります。
コード解説2 親の変更
ポイント
今回ように、実は今までホームのボタンや「」ボタンで何かを作っていた操作は、Scriptからでもできるのです。
たとえば以下のコードだけで、ブロックをWorkspaceに出すこともできます。
ブロック生成
これで最後のコードです。
爆発するとともに、効果音を鳴らします。
効果音再生
この1行を全訳すると以下の通りです。
「 : 」(コロン)は、自分自身が何かコマンドを実行するような時に使います。
コード解説3
また、以下のScriptではプレイヤーが触れた時だけ爆発します。一度爆発すると5秒経つまでは触れても爆発しません。
このScriptでは、爆発範囲や強さもScriptから設定できます。
地雷Script
※コード部分をクリックして、背景が黄色くなったら「 Ctrl + A 」でコード部分のみが選択できます。
なお、爆発はブロックの中央で起こるので、細長いブロックに使うと自分がやられずに実験することができます。
細長いブロック
3Dエフェクトを作ることができましたか?

3 ライトのエフェクトでステージを明るくしよう

目安時間: 15分
屋内など暗いステージ、夜のステージなどでは、光がないと見えづらいですね。
そんな時に活躍するのが、「 Light (ライト)」のエフェクト3種です。
ライト種類
3-1

PointLightで照明を作ろう

PointLight(ポイントライト)を使うと、ブロックの中心から全方向に向けて光を出すことができます。
PointLight例
まずはブロックを作って、名前を「 照明 」にしておきましょう。
ブロック作成 名前設定
照明ブロックの中に、「 PointLight 」を入れてみましょう。
※フィルターで「 light 」と検索すると、3種のライトだけが絞り込まれます。
PointLight追加
PointLightが入ると、うっすらブロックが光っているように見えます。
PointLight表示
さすがにこれではわかりづらいので、「 Lighting 」(ライティング)のClockTimeを14.5から0などに変更して、夜の時間にしてみましょう。
時間変更
これで光っているのがわかりやすくなりました。
夜間表示
さらにPointLightのプロパティから、「 Range 」(レンジ・範囲)を大きくしてみると、光の範囲を広げることができます。
※ライトは、ゲームスタートから起動までに数秒かかります。
Range調整
3-2

SurfaceLightで懐中電灯を作ろう

SurfaceLight(サーフェイスライト)を使うと、選んだ面の全体から光を出すことができます。
懐中電灯のようですね。
SurfaceLight例
また新しくブロックを作って、名前を「 電灯 」(でんとう)にしておきましょう。
なお、奥行きZ方向に伸ばしておくと後でわかりやすいのでおすすめです。
ブロック作成 名前設定
電灯ブロックの中に、「 SurfaceLight 」を入れてみましょう。
フィルターに「 light 」と検索すると、3種のライトだけが絞り込まれます。
SurfaceLight追加
SurfaceLightは、ブロックの面から光を出すライトです。
SurfaceGuiと同じく「 表面 」という意味で使われています。
SurfaceLight表示
同じく「 Range 」を大きくすると、光の範囲を遠くに広げることができます。
Range調整
また、SurfaceGuiと同じく、「 Face 」(フェイス・面)を「 Top 」(トップ・上)などに変えると、他の面を光らせることができます。
Face変更
また、「 Angle 」(アングル)を変えると、光の角度を狭めたり広げたりできます。
たとえば90 27にすると、範囲がかなり狭くなります。
Angle狭く
100にしてみると、範囲がまた広がります。
Angle広く
また、よく使われる方法の1つとして、空中に浮かして、Faceを「 Bottom 」(ボトム・底)にすることで、電灯・蛍光灯のように使うことができます。
天井照明
しかし、ブロックの影が気になってしまいますね。
影あり
こういう時はライトでどうにかするのではなく、ブロックのプロパティから「 CastShadow 」(キャストシャドウ)をオフにすると、影をなくすことができます。
影なし
CastShadowを知っていれば、ブロックで囲まれたステージを作る時も便利ですね。
屋内ステージ
クリエイターストアでも、SurfaceLightは電灯によく使われています。こちらもBottom(下方向)に光を出していますね。
クリエイターストア例1 クリエイターストア例2
3-3

SpotLightで舞台照明を作ろう

SpotLight(スポットライト)を使うと、ブロックの選んだ面の中央にだけ光を出すことができます。
上から光を当てているわけではありませんが、まるで舞台照明のようですね。
SpotLight例
また新しくブロックを作って、名前を「 舞台照明 」(ぶたいしょうめい)にしておきましょう。
こちらは床として使うので、幅広く作るのがおすすめです。
ブロック作成 名前設定
舞台照明ブロックの中に、「 SpotLight 」を入れてみましょう。
フィルターに「 light 」と検索すると、3種のライトだけが絞り込まれます。
SpotLight追加
SpotLightは、ブロック表面の中央にだけ光を当てるライトです。
しかし、少し下側にずれているように見えますね。
SpotLight初期表示
こちらも面を選ぶ必要があるため、SpotLightのプロパティからFaceを「 Top 」にしてみると、しっかり中央が光るようになります。
Face調整
また、「 Brightness 」(ブライトネス・輝度)を上げると、もっと強く輝くようになります。
他のライトでも使えるので、ものたりない時はまぶしすぎない範囲で使ってみましょう。
Brightness調整
特別なアイテムや案内などを置いたりするのに使えそうですね。
活用例1 活用例2
最後に、「 Lighting 」(ライティング)のClockTimeを変更して、明るい時間に戻しておきましょう。
時間を戻す
ライトのエフェクトを作ることができましたか?

4 自由課題

目安時間: 15分
余裕があれば、ここまでの内容を応用した課題に挑戦してみましょう!
好きな順番から挑戦してかまいませんし、見て理解するだけでもOKです。
4-1

効果音ブロック

プレイヤーが触れた時に音を鳴らすブロックを作ってみましょう。
単純ながら、正解/不正解の音、クリアの音、セーブやワープの音、たくさんの使い道があります。
効果音ブロック
まずはブロックを作って、名前を「 音ブロック 」にしておきましょう。
ブロック作成 名前設定
ブロックを選んで、クリエイターストアのオーディオから、検索にある文字を全て消してある状態でEnterを押すと、音のカテゴリ一覧が出てきます。
少し下にスクロールすると効果音のカテゴリがあるので「 すべて見る 」を押します。
カテゴリ一覧
音のカテゴリは10種類以上もあります。好きなカテゴリから、好きな音を探してみましょう。
ほしい音が決まっている時は、テキスト検索で探してもかまいません。
音検索
鳴らしてみたい音を見つけたら、名前を押すか挿入ボタンで、音ブロックの中に入れてみます。
そして、名前を「 効果音 」に変えておきましょう。
音追加
音ブロックにScriptを入れて、名前を「 効果音Script 」にします。
Script追加
Scriptを開いて、以下のScriptをコピーしましょう。
1
Ctrl A で全選択
2
Ctrl C でコピー
3
Scriptを開いて元あるコードを消す
4
Ctrl V で貼り付け
効果音Script
※コード部分をクリックして、背景が黄色くなったら「 Ctrl + A 」でコード部分のみが選択できます。
プレイして、触れた時に音がなったら完成です!
組み合わせ次第で、音楽系のゲームも作れそうですね。
完成
4-2

たいまつモデル

今回の学びを組み合わせて、たいまつモデルを作ってみましょう。
たいまつ完成
円柱ブロックを作って、固定して、名前を「棒」にしておきましょう。
見本では、横幅は1にして、高さを5にしています。
棒作成 サイズ設定
色や素材も、自由にアレンジしてみましょう。
色素材設定
好きな形のブロックを追加して、固定して、名前を「 炎 」にしておきます。
炎ブロック作成 名前設定
棒の上に乗せて、整列ツールのXZにチェックを入れて整列すると、綺麗に並びます。
※整列ツールは、ウィンドウ 3D 整列 から出すことができます。
整列
炎ブロックにFireを入れます。
Fire追加
炎ブロックから炎が出るようになりました。
さらに、炎ブロックのTransparencyを1にして、炎だけ見えるようにしましょう。
透明化
ここで、「 Lighting 」(ライティング)のClockTimeを14.5から変更して、夜の時間にしてみます。
時間変更
炎があるのは遠くからでもわかりそうですが、周りはあまり明るくなっていませんね。
暗い状態
この炎の周りが光ってほしいので、炎ブロックに「 PointLight 」を入れてみましょう。
これで炎ブロックは、炎も出せるし、同時に光も出せるというブロックになりました。
PointLight追加
ただし、まだ「 棒 」「 炎 」は別々のブロックなので、一緒に動かすことはできません。
別々のブロック
ここでユニオンをしてしまうと炎やライトは消えてしまうので、複数選択して右クリック 「 モデルとしてグループ化 」をします。
モデル化
これでたいまつとして1つのモデルになりました。名前を「 たいまつ 」にしておきましょう。
名前設定 完成
最後に、「 Lighting 」(ライティング)のClockTimeを変更して、明るい時間に戻しておきましょう。
時間を戻す
4-3

自動オンオフ照明

舞台照明をアレンジして、床に触れると自動でライトがついて、はなれてから5秒後に自動で消えるようにします。
ライトオン ライトオフ
まずは、舞台照明ブロックのプロパティから、「 Enabled 」(イネーブル・有効)をオフにしておきます。
Enabledは Fire や Smoke にもある項目で、オンなら出続けて、オフなら消えます。電源スイッチのようですね。
Enabledオフ
Scriptを作って、名前を「 自動ライトScript 」にします。
Script作成
以下のScriptを貼り付ければ、プレイヤーがブロックに触れた時にだけ自動で照明がつき、はなれてから5秒後には自動で消えるようになります。
※ライトは、ゲームスタートから起動までに数秒かかります。
自動ライトScript
※コード部分をクリックして、背景が黄色くなったら「 Ctrl + A 」でコード部分のみが選択できます。
自由課題に挑戦できましたか?

5 チェック問題

目安時間: 5分
今回学んだことの理解度をクイズで確認しましょう。

学習者情報の入力

6 企画・制作の続き

目安時間: 残り時間
企画が未完成なら、前回のテキストを見ながら続きに取り組みましょう。
企画が完成したら、実験用ステージとは別に、新規バーチャル空間(Baseplate)を開いてから、作品制作を始めましょう。
新規バーチャル空間(Baseplate)
作品制作
企画・制作を進めることができましたか?

7 さいごに

目安時間: 残り時間
7-1

残り時間の過ごし方

続きを作った時は、「 Ctrl S 」か、「 ファイル 」 「 Robloxに保存 」で上書き保存できます。
上書き保存
今回から発表に向けた作品制作を作り始めたなら、「名前を付けてRobloxに保存 or 公開」をしておきましょう。
7-2

ログアウト

終わるときには、右上の自分のIDから、ログアウトします。
ログアウト1 ログアウト2
7-3

今日のまとめ

炎とスモークのエフェクト
FireとSmokeを使って、視覚的な演出ができるようになりました
爆発エフェクト
Scriptで制御する爆発エフェクトを作れるようになりました
3種類のライト
PointLight、SurfaceLight、SpotLightを使い分けられるようになりました
効果音の実装
オーディオを使った効果音付きブロックが作れるようになりました
Scriptの理解
Instance.newやParentの概念を学び、より高度なScriptが書けるようになりました
次回予告
次回は、「制作回」です。第11回・12回で学んだことを活かして、作品制作を進めていきましょう!