ロブロックススタジオで初めてのLuaスクリプト言語【パーツ色変更】

※当サイトはアフィリエイト広告を利用しています。

ロブロックススタジオ(RobloxStudio)でパーツの色を変えたいけどどうやるの?プログラムで色々な変え方を知りたい

こんな疑問を解消します

この記事の内容

  • Lua(ルア)スクリプト言語について
  • 【基礎】色を変えるプログラム
  • 3秒ごとに色を順番に変える方法
  • ランダムで色を変える方法
  • 変数の書き方・使い方

 

現場でもプログラムを扱ったこともある元バックエンドSEの「ろこぼん」です。子供が4歳から一緒にプログラミングを始め6年たちました。今はROBLOXプログラミングで小学校5年生でビジュアルプログラミングからコードプログラミングへの移行へ成功しています

Twitterろこぼん@ROBLOX STUDIO

 

この記事は、ロブロックススタジオ(RobloxStudio)で障害物ゲーム(Obby)のパーツを作る記事の続きです

先に上記記事をご参照ください

 

パーツの色を単色で変えるだけならプログラムは必要ありません

しかし、次で説明する「○秒ごとに色を順番に変える(点滅させる)などの場合、グラフィックでは指定できません

まずは、プログラムでどのように色を指定していくかを学習していきます

 

☑ プログラミングをもっと学びたい!子供にやらせてあげたい!でもスクールってどんなのあるの?

関連記事子供向けオンラインプログラミングスクール5選!送迎なし

子供向けオンラインプログラミング教室4選+1!送迎なし【2024年最新】
子供がプログラミングに興味を持ち始めたけどどうしたらいい?親にプログラミングの知識はないからどうやって選んでいいかわからないと悩んでいる方に、オンラインプログラミング教室を紹介します
スポンサーリンク

ロブロックススタジオ(RobloxStudio)で使うLua(ルア)スクリプト言語とは

ロブロックススタジオ(RobloxStudio)では、Lua (ルア) というスクリプト言語でプログラミングをしていきます。

Lua スクリプト言語 は主にC言語に組み込んで使いますが、C言語にしか組み込めないわけではなく色々な言語に組み込めます。

そして、高速で汎用性が高く、実装が容易という特徴があります

Luaスクリプト言語なんて聞いたことないから心配だと思いますが、ドラゴンクエスト10,ファイナルファンタジー14など大手ゲームの現場でも使われている言語です

プログラムでパーツの色を変える方法3選

一番長くて大きい板(ita)の色を黄色にする

①色を変える一番長くて大きい板で、わかりやすいよう名前を「ita」に変更

②右側 Explorer 画面で住所確認
「Workspace」の下に「 ita」があるので、住所は「Workspace.ita」

③「ServerScriptService」をクリック、+を押すと作成できる一覧から「Script」をクリック

④新しく作られた「Script」を「ChangeColor」と変更(どのようなプログラムか分からなくなるのですぐ行うこと)

⑤左画面のファイルの中の「print(“Hello world!”)」はいらないので削除

 

プログラムはこちら

 

– ita という名前の板の色を変える
game.Workspace.ita.BrickColor = BrickColor.new(1,1,0)
このプログラムの説明をします
– はここから先の文字列はコメントとして解釈され、プログラムとしては認識されない
game.Workspace.ita.BrickColor は「このゲーム内のWorkspace の 「ita の BrickColor」という住所の意味
・BrickColor は色を示し、= で BrickColor.new(新しい色)を (1,1,0) に設定
・この(1,1,0) の表記は、色の三原色の RGB(Red,Green,Blue)を表す
・色は0.0(なし)~1.0(満タン)で、0.1毎指定

 

上記プログラムの指定は「赤1、緑1,青0」となり板の色は黄色に変わります

 

3秒ごとに色を順番に変える

 

球体の色を3秒ごとに黒→白→黒→白…と、ずっと繰り返し色を変えていきます

  1. 分かりやすいように球体の名前を「ball」に変更
  2. 「ServerScriptService」の「+」をクリックし、「Script」をクリック
  3. 新しく作られた「Script」の名前を「LoopColor」に変更(どのようなプログラムか分からなくなるのですぐ行うこと)

 

プログラムはこちら
以下のプログラムでは「3秒待つ」wait(3) を必ず入れてください。入れずに実行するとプログラムが高速処理されフリーズします
–繰り返し処理(ループ)
while true do
— ボールの色を黒にする
game.Workspace.ball.BrickColor = BrickColor.new(1,1,1)
– 3秒待つ
wait(3)
— ボールの色を白にする
game.Workspace.ball.BrickColor = BrickColor.new(0,0,0)
— 3秒待つ
wait(3)
end

 

このプログラムの説明をします

 

繰り返し処理(無限ループ)をするプログラムは while 文を使う

while 条件 do
実行される処理
end

 

今回の場合は、条件がずっと正しい(turu) 場合、ballというパーツを「黒」→「3秒待つ」→「白」→「3秒待つ」をずっと繰り返す処理(無限ループ)

 

ランダムで色を変えるようにする

ランダムで色を変えるには BrickColor.random コードを使います

「Wedge」(斜めの三角のもの)をランダムで色を変えます

  1. 「ServerScriptService」をクリック、+を押すと作成できる一覧から「Script」をクリック
  2. 新しく作られた「Script」を「RandomColor」と変更(どのようなプログラムか分からなくなるのですぐ行うこと)
  3. 左画面のファイルの中の「print(“Hello world!”)」はいらないので削除

 

プログラムはこちら
— 3秒ごとランダムでWedgeの色を変える
while true do
game.Workspace.Wedge.BrickColor = BrickColor.random()
wait(3)
end
プログラムの説明をします
「ランダムで色を変える」→「3秒待つ」をずっと繰り返します
BrickColor.random()コードを書き込むだけなのでお手軽ですね

 

参考:住所を何回も書くのはめんどくさい!変数を使おう

ita という名前の住所を指定する方法として以下を書いてきましたが、

「game.Workspace.ita.BrickColor」毎回書くのは面倒だと思いませんか?

game.Workspace.ita.BrickColor = BrickColor.new(1,1,0)

 

その場合、「変数」を設定することで省略することができます

変数とは

何らかの値や文字列を入れておく箱です

難しいことは考えず、変数を作ったら「空き箱ができた」、と思ってください

書式は以下です

local  変数  =  代入したいもの

※local はこのプログラムの中でだけ有効、という意味です

 

変数を使ってみよう

「game.Workspace.ita.BrickColor」を省略するために、「hensuColor」という箱(変数)をつくり、その中に格納します

 

game.Workspace.ita.BrickColor = BrickColor.new(1,1,0)

↓↓↓↓↓

— game.Workspace.itaという住所を hensuColor という変数に入れる
local hensuColor = game.Workspace.ita
hensuColor.BrickColor = BrickColor.new(1,1,0)

変数の命名について

変数の命名は、小文字から始まり、単語が複数つながる場合には次の単語は大文字にします

例)
hensuColor

これで、何度も同じ文字列を書くことなく、hensuColor という変数にまとめることができました

プログラムでパーツの色を変える方法3選まとめ

 

プログラムでパーツの色を変える方法を3つを紹介しました

  • 色を変える方法
  • 色を3秒ごとに変える方法
  • 色をランダムに変える方法

全て作り終わると作ったプログラム(スクリプト)が3つありますね

 

 

色を変えるプログラミングって簡単なのね

プレイボタンを押してみると色が変わって面白いわ!

色々試してみたらいいわね

 

☑ プログラミングをもっと学びたい!子供にやらせてあげたい!でもスクールってどんなのあるの?

関連記事子供向けオンラインプログラミングスクール5選と通信教材

子供向けオンラインプログラミング教室4選+1!送迎なし【2024年最新】
子供がプログラミングに興味を持ち始めたけどどうしたらいい?親にプログラミングの知識はないからどうやって選んでいいかわからないと悩んでいる方に、オンラインプログラミング教室を紹介します
タイトルとURLをコピーしました