#author("2026-06-13T18:31:23+09:00","default:admin","admin") #author("2026-06-13T18:43:49+09:00","default:admin","admin") *変数を使う [#rf60a31c] ジャンプをして高いところに置かれた宝箱からアイテムをゲットし、ボスの間まで進むマップを作りましょう。 ジャンプは入れると楽しい要素ですが、一方でゲーム作りを難しくする要素でもあります。 ここでは洞窟内にある5つの宝箱を全て開けると、ボスの間との間にある迷宮の扉が開く仕掛けを作っていきます。 **洞窟内マップを作る [#k8660bb5] 先ほど[[マップリストパレット]]に追加した洞窟内用のマップを下記の画像のように改造してください。 ポイントは4つ。 + 外周は4段分盛り上げる(Y座標で"1"増やす)。 + 洞窟の奥の壁の3マス分は盛り上げない。 + その盛り上げなかった場所に[[スタンプパレット]]の物体タブ>reserved>イベントテンプレート用>「迷宮の壁」を置く。 + 2マスx2マスの広さで、高さが4段分盛り上がった地形を、マップ中の5か所に作る。 4で盛り上げた地形のうち1か所に、物体タブ>reserved>イベントテンプレート用>宝箱を置きます。 中身がランダムに変わる宝箱を「変数」を使って作ってみましょう。 #ref(./ランダム宝箱_1.png,40%) #br **変数 [#mb223874] ''「変数」はゲーム作りで多用されるとても大事な概念です。'' 例えると「変数」とは「箱」です。 数値やテキストといったデータを入れることができる、名前が付けられる「箱」です。 「箱」の名前をゲーム内の各所で指定して、「箱」の中に入った値を使うことができます。 '''※変数にデータを入れることを''「代入」''といいます。''' より詳しくは[[変数とは]]のページをご覧いただくとして、ここでは実際に使いながら「変数」がどのようなものか体感してみましょう。 ***変数を作る [#cbe3b9e7] ''まず開いた宝箱の数を記録するための「変数」を作ってみましょう。'' マップエディタ左側のマスターメニューから[[変数一覧]]を開きます。 「通常」タブのまま追加ボタンを押して変数を追加します。 変数名をクリックして名前を「開いた宝箱の数」に変えましょう。 #ref(./ランダム宝箱_3.png,40%) #br これで変数を1つ作ることができました。 ***中身がランダムに変わる宝箱 [#idb919b9] ''では宝箱を作っていきましょう。'' まず盛り上がった地形を選択して"G"を押してイベントエディターを開きます。 イベント名は「ランダム宝箱」、イベントシート名は「宝箱を調べる」。 イベントのグラフィックには3Dスタンプのreservedフォルダから宝箱を選び、モーションは"close_keep"を設定します。 向きの制御は"固定"にします。 #ref(./ランダム宝箱_4.png,40%) #br イベントの流れは下記のようになります。 ''&size(16){「「宝箱を開く演出」>「乱数を変数に代入」>「変数の中身を確認して、分岐する」>「分岐した先でそれぞれもらえるアイテムを変える」};'' #br ''1. イベントトリガーは「話しかけたとき」のままとします。'' ''2. 「サウンド」カテゴリ>「効果音の再生」パネルを追加し、「効果音」をクリックしてアセットピッカーからSE>reservd>SE>イベントテンプレート用>「SE_Treasure_Open_01」を指定する。'' ''3.「イベント」カテゴリ>「イベントのグラフィックを変更」パネルを追加し、3Dスタンプ>reservedフォルダ>宝箱の"Open"モーションを選択。'' ここまでが宝箱が開く際の演出です。 ''4.「変数ボックス」カテゴリ>「複雑な変数ボックスの操作」パネルを追加する。'' 「何に」にをクリックします。 「変数ボックスの選択」というダイアログが表示されるので、「ローカル」タブを選択し、追加ボタンをクリックします。 「Local0」という変数の名前を「ランダム値」に変更します 。これで新しい変数「ランダム値」ができました。 「何を」に、乱数を指定し「最小:0」「最大:2」を設定。 「どうする」は、「代入」を設定します。 これで「ランダム値」の中身が、"0""1""2"のどれかの値に書き換えられます。 #ref(./ランダム宝箱_5.png,40%) #br ''5.「条件判断」カテゴリ>「変数値で多分岐」パネルを追加する。'' 「変数ボックスの番号」に、「ランダム値」を設定。 パネル内の追加ボタンを押して、「条件値2」「条件値3」を作成。 「条件値1」に"0"、「条件値2」に"1"、「条件値3」に"2"をそれぞれ設定。 これで"0~2"の間で変わる「ランダム値」の中身に応じた分岐を作ることができました。 #ref(./ランダム宝箱_6.png,40%) #br ''6.「ランダム値」の中身による3つの分岐それぞれに、取得できるアイテムを設定します。'' まず「ランダム値」が"0"の時の分岐に「ステータス」カテゴリ>「アイテムを増やす/減らす」パネルを追加。 「アイテム」に「薬草」、「個数」は1つを設定。 これで「ランダム値」の中身が"0"の時は「薬草」が手に入ります。 ''7.「アイテムを増やす/減らす」パネルの下に、アイテムをゲットした際の演出のために3つのパネルを追加します。'' 「制御」カテゴリ>「指定した時間を待つ」パネルを追加し、2秒を設定。 「サウンド」カテゴリ>「効果音の再生」パネルを追加し、「SE_Decide_01」を設定。 「会話」カテゴリ>「メッセージを表示」パネルを追加し、「薬草を手に入れた!」を入力。 #ref(./ランダム宝箱_7.png,40%) #br ''8. 同様に「ランダム値」が"1"、"2"の時にそれぞれアイテムをゲットする流れを設定しましょう。'' "1"なら"ポーション"、"2"なら"フルポーション"をゲットできるように設定してみてください。 #ref(./ランダム宝箱_8.png,40%) #br ''9. アイテムをゲットしたので、先ほど作った変数「開いた宝箱の数」に記録しましょう。'' 「分岐終了」の下に、「変数ボックス」カテゴリ>「変数ボックスへの代入と計算」パネルを追加する。 「開いた宝箱の数」変数に"1"を足すように設定する。 #ref(./ランダム宝箱_9.png,40%) #br ''10. 最後にこの宝箱が開封済みであることを示すために、イベントスイッチを設定し、開封済みの状態を表すイベントシートを設定します。'' [[イベントを作る①]]のページを参照してください。 「スイッチ」カテゴリ>「イベントスイッチのON/OFF」パネルを追加する。 イベントスイッチの番号からローカルタブに「開封済み」というイベントスイッチを設定し、スイッチをオンにする。 #ref(./ランダム宝箱_10.png,40%) #br イベントシートを追加し、シート名を「開封済み」とする。 ''11.イベントシートを追加し、シート名を「開封済み」とする。'' 「開封済み」シートの条件を「開封済み」スイッチがオンであること、に設定する。 #ref(./ランダム宝箱_11.png,40%) #br これで中身がランダムに変わる宝箱を作ることができました。 ***宝箱を配置する [#q56d5839] ''今作った宝箱をマップエディター上で選択し、''Ctrl+C''でコピーしたら、残り4つの盛り上げた場所にペーストしていきましょう。'' #ref(./ランダム宝箱_12.png,40%) #br ---- ''「変数」に値を代入し、その値によって分岐を作る処理は多くのシーンで活用できます。'' ''今回は乱数を代入しましたが、キャストのステータスのような数値や、パスワードような文字列を代入して活用することもできます。'' ''「変数」にはいくつかの種類があり、それぞれにさまざまな活用法があるので、[[変数]]のページも参考にしつつ、さまざまな活用法を試してみてください。'' ''宝箱を高い場所に置いたので、このままでは宝箱を開けることができません。'' ''そこで高い場所にジャンプできるようにしてみましょう。'' ---- ''&size(16){次ページ: [[test_15]] };'' ''&size(16){前ページ: [[test_13]] };'' ---- ''&size(16){はじめに [[test_1]], プロジェクトを作る [[test_2]], マップを作る 1 [[test_3]], マップを作る 2 [[test_4]], テストプレイ [[test_5]]};'' ''&size(16){マップを増やす [[test_6]], イベントテンプレート [[test_7]], エンカウントバトル [[test_8]], 敵の設定 [[test_9]], イベントを作る① [[test_10]]};'' ''&size(16){イベントを作る② [[test_11]], イベントを作る③ [[test_12]], デバッグ機能 [[test_13]], 変数を使う [[test_14]], "ジャンプ"する [[test_15]]};'' ''&size(16){カメラを変える [[test_16]], イベントバトル [[test_17]], イベントスイッチ [[test_18]], コモンイベント [[test_19]], バトルBGMやバトルに遷移する演出の変更(システムリソース) [[test_20]]};''