コーディングにおいて、変数はゲーム内のさまざまな情報のためのプレースホルダーの言葉です。たとえば、プレイヤーの名前、チームのスコア、またはストーリーゲームのための言葉などです。この章では、コアゲームプレイのためのメインスクリプトを開き、プレイヤーに質問をしてその回答をストーリーに使用するためのコードを追加する方法を探ります。
スクリプトを開く
Robloxのクリエイターは、スクリプトの中にコードを書き、Studioにゲームにカスタムの動作を追加する方法やタイミングを指示します。たとえば、さまざまなタイプのイベントをトリガーしたり、プレイヤー情報を保存したり、敵をスポーンさせたりします。RobloxのスクリプトはLuauプログラミング言語を使用しており、これは後でコーディングの基本シリーズで詳しく学ぶことができます。
ストーリーゲームのテンプレートは、ゲームのコアゲームプレイを制御するためにStoryManagerという単一のスクリプトを使用しています。このスクリプトには、プレイヤーに完全なストーリーを表示するために必要なコードがすでに含まれていますが、インタラクティブなストーリーを表示するためにさらにコードを追加します。
StoryManagerスクリプトを開くには:
Explorerウィンドウで、StarterGuiの横にある矢印をクリックして、その中に含まれているすべてを表示します。GameGuiが表示されます。
GameGuiの横にある矢印をクリックして、その中に含まれているすべてを表示します。StoryManagerスクリプトが上部に表示され、他のいくつかの重要でないものと一緒に表示されます。

StoryManagerスクリプトをダブルクリックします。スクリプトのコードが表示されます。
-- GLOBAL VARIABLES
local storyMaker = require(script:WaitForChild("StoryMaker"))
-- ゲームを制御するコード
local playing = true
while playing do
storyMaker:Reset()
-- ダッシュの間のストーリーコード
-- =============================================
-- =============================================
-- 下の括弧の間にストーリー変数を追加します
storyMaker:Write()
-- 再度プレイしますか?
playing = storyMaker:PlayAgain()
endコードの大部分が--記号を使用していることに注意してください。これはコメントと呼ばれます。コーダーはコメントを使用してメモを残し、スクリプトの実行方法を変更しません。このレッスンでは、ダッシュの間のコメントの間にコードを作成し、インタラクティブなストーリーを一箇所で作成することに集中します。
プレイヤーに質問する
ベストプラクティスとして、コーダーは保存する情報のタイプを説明する名前の変数を作成します。たとえば、プレイヤーがチームに分かれるゲームを作成している場合:
- team変数はプレイヤーのチームに関する情報を保存します。
- teamColor変数はプレイヤーのチームカラーに関する情報を保存します。
- teamScore変数はプレイヤーのチームスコアに関する情報を保存します。
変数は、小さな数値、真偽値、文字列など、さまざまな情報を保存できます。文字列型の変数は特別で、プレイヤーに尋ねたい質問を含む完全な文を保存できます。
前の章からのプレースホルダーの言葉を使用して、プレイヤーに尋ねる言葉のタイプを説明する同じプレースホルダー名を持つ文字列型の変数を作成できます。
プレイヤーの質問用の変数を作成するには:
ダッシュの間のコメントの下にクリックし、プレイヤーが自分の回答で置き換えたい最初の言葉のためのローカル変数を作成します。たとえば:
-- =============================================local name1-- =============================================変数を=記号を使用して、質問を表示するためのstoryMaker:GetInput()メソッドに設定します。このメソッドは、コードが機能するために特定の大文字小文字を正確に入力する必要があります。たとえば:
-- =============================================local name1 = storyMaker:GetInput()-- =============================================括弧の間にプレイヤーに尋ねたい質問の文字列を作成します。文字列は常に引用符で囲むことを忘れないでください!
-- =============================================local name1 = storyMaker:GetInput("あなたの好きな名前は何ですか?")-- =============================================
彼らの回答を使用する
プレイヤーが回答できる質問ができたので、ストーリーをコーディングし、プレースホルダーの言葉を彼らの回答で置き換える動作を追加する時が来ました。
ストーリー用の変数を作成し、プレイヤーの回答を使用するには:
質問の下に、新しい変数名storyを作成します。変数は小文字であることを忘れないでください!
-- =============================================local name1 = storyMaker:GetInput("あなたの好きな名前は何ですか?")local story-- =============================================最初のプレースホルダーの前にストーリーの最初の文を設定し、最後の単語の後と引用符の前にスペースを残します。プレースホルダーの言葉が文の中間にある場合は、チュートリアルの後の章で文の残りを追加できます。
-- =============================================local name1 = storyMaker:GetInput("あなたの好きな名前は何ですか?")local story = ("丘の上の木に住む偉大な魔法使い ")-- =============================================..を使用してストーリーの最初の文字列とプレイヤーの回答を結合します。結合することは連結と呼ばれます。
- story変数と同じ行に、2つのピリオドを追加します。
- スペースを追加し、プレイヤーの最初の回答を保存する変数の名前を入力します。
-- =============================================local name1 = storyMaker:GetInput("あなたの好きな名前は何ですか?")local story = ("丘の上の木に住む偉大な魔法使い " .. name1)-- =============================================提供されたstoryMaker:Write()メソッドを使用して、ストーリー変数を呼び出し、プレイヤーにこのストーリーの最初の部分を表示します。
-- =============================================local name1 = storyMaker:GetInput("あなたの好きな名前は何ですか?")local story = ("丘の上の木に住む偉大な魔法使い " .. name1)-- =============================================-- =============================================storyMaker:Write(story)
ここで一時停止し、次の章でゲームをプレイテストして、ストーリーが機能していることを確認するのが良いポイントです!