1-2 オブジェクトとプロパティ

オブジェクトとは?

オブジェクトとは「物体」のことです。Robloxで一番分かりやすいのが「パーツ(Part)」ですね。「火(Fire)」もオブジェクトです。エクスプローラーをご覧ください。「Workspace」とありますが、これもオブジェクトです。その中にある「Camera」も「Terrain」も、「Players」もみんなオブジェクトです。つまり、Robloxのすべての物はオブジェクトで構成されているということになります。

プロパティとは?

プロパティとは「属性」のことです。例えば「パーツ(Part)」では、位置や大きさ、色や素材などが設定できますが、これらが属性です。ゲームを作ろうを実践された方はすでに経験済みだと思いますが、プロパティウィンドウを開いて、パーツの色などを変えました。この場合、『パーツ(Part)というオブジェクトの、色(Color)というプロパティを変えた』ということになります。プロパティを変えるとパーツの外観などが変わるということですね。

プロパティ・ウィンドウ

プロパティ・ウィンドウには、オブジェクトにある多くのプロパティが表示されます。(表示されているものがすべてではない)

  1. パーツを選択します。
  1. 右下のプロパティウィンドウをスクロールします。ウィンドウが表示されない場合は、[表示] タブに移動し、[プロパティ] ボタンをクリックします。

プロパティの変更

プログラムを使って、ゲーム開始時にパーツの色を変更してみましょう。

パーツとスクリプトの設定

テンプレート「Baseplate」もしくは「Classic Baseplate」を使用します。

  1. 新しいパーツを1つ作成します。パーツの名前をPracticePartに変更します。
  1. ServerScriptServiceで、ChangePartColorという名前の新しいスクリプトを作成します。
  1. ChangePartColorを開き、1行目の「print(“Hello World”)」を削除します。次に、何をするプログラムなのかが分かるようにコメントを入れておきます。
-- パーツの色を変更する

部品の配置

プログラムを使用して任意の部分に変更を加えるには、最初にどの部分を操作するのかを知る必要があります。エクスプローラーを使用してパーツの場所を見つけます。この場合、PracticePart は Workspace の下にあります。

「Workspaceの中にあるPracticePart」など、このパーツを見つけるためには、プログラムが理解できるものに変換しなくてはなりません。

  1. コメントの下に「game」と入力します。これにより、Workspaceにアクセスすることができます。
    「game」も1つのオブジェクトです。これは「ゲーム本体」のオブジェクトで、全オブジェクトの始祖ということになります。
game
  1. 続けてドットを入力し、「Workspace」と続きます。パーツが入っている場所であるWorkspaceを指定するわけです。この記述で『gameの中にあるWorkspace』という意味になります。
game.Workspace
  1. パーツ「PracticePart」はWorkspaceの中になりますので、Workspaceに続けて、ドットを入力し、「PracticePart」とします。ここまでの記述で『gameの中にあるWorkspaceの中にあるPracticePart』という意味になります。
game.Workspace.PracticePart
「game.」と入力した時、メニューが表示され、その中にWorkspaceがあったと思います。もちろん、それを選択してEnterを押しても構いません。つまり、指定可能なものがオートコンプリートとしてリスト表示されるのです。

プログラムによるプロパティの変更

パーツの色を変更するには、RGBの値を使用します。コンピュータは、光の三原色である赤(R)、緑(G)、青(B)の組み合わせで画面上のすべての色を構成しています。それぞれの値は0から255までの範囲で指定でき、0が光を全く出さない、255が最大の光を出すということになります。この数値をコントロールすることにより、フルカラー(256x256x256=16777216色)を表現しているわけです。例えば、黒は(0, 0, 0)、白は(255, 255, 255)ということになります。
パーツの場合、プログラムはそのColorプロパティに値を設定することで色を変えられるということになります。

  1. PracticePartの後にドットを入力し「Color」とします。ここまでの記述で『gameの中にあるWorkspaceの中にあるPracticePartのプロパティColor』という意味になります。
game.Workspace.PracticePart.Color
  1. 続けて「=」 と入力することで、Colorに値を入れることができるようになります。これは前に行った、文字列を代入するということと同じです。
game.Workspace.PracticePart.Color =

このColorというプロパティに値を代入する場合、RGBの3つの値を同時に入れなくてはなりません。1つの数値を代入する場合は、「=1」などとシンプルに指定できるのですが、今回はRGBという特殊な数値を代入することになります。そうような場合はクラスを使用します。

クラスとは?

クラスとは「設計図」です。Robloxには実に様々なクラスがあります。今回使用するのは、色を作る設計図です。名称は「Color3」というものになります。実は、RGBの数値を0から255の範囲で指定すると言いましたが、それ以外にも0から1の範囲(小数使用)で指定する方法や、「HSV色空間」と呼ばれる、色相、彩度、明度で指定する方法もあります。Color3というクラスはこれらのいずれかの方法で色が作れるように設計されたものです。
Color3のクラスの中に、RGBで色が指定できるコンストラクターがあります。

コンストラクターとは?

コンストラクターとは「初期化などを行なう機能」です。Color3では上記のように何種類かの指定方法がありますが、どの指定方法で色を作成するのかを指定しなくてはなりません。その際にコンストラクターを使用します。

  1. RGB値で色を作るには、「fromRGB」というコンストラクター(機能)を使います。「Color3」に続けてドットを入力し、「fromRGB()」とします。コンストラクターを指定する場合は、丸カッコを使用します。
game.Workspace.PracticePart.Color = Color3.fromRGB()
  1. カッコ内に色を手動で入力することもできますが、カラーピッカーを使用する方がより簡単です。カッコ内をクリックし、カラーホイールをクリックします。ポップアップ・ウィンドウを使って色を作成します。

指定した色により、カッコ内の数値は変わります。

game.Workspace.PracticePart.Color = Color3.fromRGB(255, 230, 50)
RGB 値を手動で入力する場合は、各数値が 0~255 で、(10,50,10) のようにカンマで区切られている必要があります。
  1. 「Run(再生)」をクリックして実行すると色が変わるはずです。確かめてみましょう。

トラブルシューティング

パーツの色が変わらない場合は、次の項目をチェックしてください。

  • RGB値の3つの値が半角数字で、数字と数字はカンマで区切られていますか?
  • カンマは半角文字になっていますか?
  • RGB値は0から255の間の数値ですか?
  • 大文字と小文字に間違いはないですか?

返信を残す