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

StoryManagerスクリプトをダブルクリックします。スクリプトのコードが表示されます。
-- グローバル変数local storyMaker = require(script:WaitForChild("StoryMaker"))-- ゲームを制御するコードlocal playing = truewhile playing dostoryMaker:Reset()-- ダッシュで囲まれたコードストーリー-- =============================================-- =============================================-- 以下の括弧の間にストーリー変数を追加しますstoryMaker:Write()-- もう一度プレイしますか?playing = storyMaker:PlayAgain()end
大部分のコードが -- 記号を使用しているのが確認できます。これはコメントと呼ばれています。コーダーはコメントを使用してメモを残し、スクリプトの実行方法には影響しません。このレッスンでは、インタラクティブなストーリーを作成するために、ダッシュで囲まれたコメントの間にコードを作成します。
プレイヤーに質問をする
ベストプラクティスとして、コーダーは格納する情報の種類を説明する名前で変数を作成します。たとえば、プレイヤーがチームに分かれるゲームを作る場合:
- team 変数はプレイヤーの チーム に関する情報を保存します。
- teamColor 変数はプレイヤーの チームカラー に関する情報を保存します。
- teamScore 変数はプレイヤーの チームスコア に関する情報を保存します。
変数は、小さな数値、真または偽の回答、文字列など、さまざまな情報を保存できます。文字列型の変数は特別で、プレイヤーに尋ねたい質問を含む完全な文を保存できます。
前の章からのプレースホルダー言葉を使用して、プレイヤーに尋ねる言葉のタイプを説明する同じプレースホルダー名の文字列型変数を作成できます。
プレイヤーの質問用の変数を作成するには:
ダッシュで囲まれたコメントの下にクリックし、プレイヤーが自分の回答に置き換える最初の単語のためのローカル変数を作成します。たとえば:
-- =============================================local name1-- =============================================変数を = 記号を使って提供されている storyMaker:GetInput() メソッドに設定し、質問を大きな本に表示します。このメソッドは、大文字と小文字を正確に維持する必要がありますので、コードが機能します。たとえば:
-- =============================================local name1 = storyMaker:GetInput()-- =============================================括弧の間に、プレイヤーに尋ねたい質問を含む文字列を作成します。文字列は常に引用符で囲むことを忘れないでください!
-- =============================================local name1 = storyMaker:GetInput("あなたの好きな名前は何ですか?")-- =============================================
彼らの回答を使う
プレイヤーが回答できる質問ができたので、ストーリーをコーディングし、プレースホルダー言葉を彼らの回答で置き換える振る舞いを追加する時が来ました。
ストーリー用の変数を作成し、プレイヤーの回答を使用するには:
質問の下に、ストーリーという名前の新しい変数を作成します。変数は小文字であることを忘れないでください!
-- =============================================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)
ここで一時的に立ち止まり、次の章で体験をプレイテストし、ストーリーが機能していることを確認します!