#author("2026-05-28T14:02:58+09:00","default:admin","admin") #author("2026-05-30T21:23:40+09:00","default:admin","admin") *イベントを作る③ [#me4b50e4] ''前のページに続き崖を渡る仕掛けを作っていきます。'' ''このページでは「並列イベント」という大事な概念も少し解説します。'' **「石のブロック」イベント [#d59282f9] ''老人の力によって動くようになった石のブロックのイベントを作ります。'' ブロックの上にプレイヤーが乗ると、崖の向こう側まで移動してくれます。 ***自由落下をオフにする [#g00fd8c4] ''崖の底の地形を選択して”G”キーを押して、カスタムイベントを作りましょう。'' イベントエディターが開いたら、シートのグラフィック欄をクリックしアセットピッカーを開きます。 「すぐ使える」タブ>3Dスタンプ>reserved>イベントテンプレート用>ストーンブロックを選んで下さい。 ストーンブロックを設定したら、イベントエディターをいったん閉じましょう。 #ref(./イベントを作る3_1.png,40%) #br マップエディタに戻ったら、マップに表示されたストーンブロックをマニュピュレーターを使って崖のフチと同じ高さまで持ち上げましょう。 その際「注意」ダイアログが出ますが、OKボタンを押して閉じます。 #ref(./イベントを作る3_2.png,40%) #br テストプレイをして崖のフチに近づくと、先ほど持ち上げたストーンブロックが崖の下に落ちてしまっています。 #ref(./イベントを作る3_3.png,40%) #br ストーンブロックを右クリックして、コンテキストメニューの「自由落下する」をクリックしてください。 「自由落下をオフにしました」というダイアログが出ますので、OKして閉じましょう。 #ref(./イベントを作る3_4.png,40%) #br テストプレイをしてみましょう。 「自由落下オフ」にしたので、今度はストーンブロックが浮いたままになっています。 #ref(./イベントを作る3_5.png,40%) #br Bakinにおいて、宙に浮かせた「イベント」は物理法則に従って自然落下します。 ただし「自然落下」をオフに設定すれば、宙に浮いたイベントを作ることができるのです。 ***石のブロックを動かす [#j349ca77] ''マップエディターで石のブロックをダブルクリックしてイベントエディターを開きましょう。'' ''1. シートリストの「イベントシート」の名前を「ブロックが動く」に変えます。'' ''2. 「シート条件」欄で追加ボタンを押し、「イベントスイッチ」を選択。'' イベントスイッチ欄をクリックし、「変数ボックスの選択」ダイアログ>「通常」タブで「アイテムを渡した」を選択して、OKボタンをクリック。 それ以外の項目は変更しない。 ''3. 「シート実行時に変化する要素」欄の「向きの制御」を「通常」から「固定」に変更'' ''4. 「コマンドスクリプト」欄で、イベントトリガーを「自動的に開始(並列して繰り返し実行)」に変更'' ''4. 「コマンドスクリプト」欄で、「イベント開始」(イベントトリガー)を「自動的に開始(並列して繰り返し実行)」に変更'' ''5. 「+」ボタンをクリックして、コマンドセレクター>「制御」カテゴリ>「指定した時間待つ」パネルを追加。'' 「待ち時間」は2秒を指定。 #ref(./イベントを作る3_6.png,40%) #br ''6. コマンドセレクター>「イベント」カテゴリ>「イベントの座標を指定して歩かせる」パネルを追加。'' 「マップ先から指定」欄にある「移動先を指定」ボタンをクリック。 ''7. ストーンブロックの移動先をクリック。赤いマーカーがクリックした位置に動きます。'' OKでウィンドウを閉じます。 (もし移動先のXYZ座標がわかるならウィンドウ下部の入力欄に入力してください。) #ref(./イベントを作る3_7.png,40%) #br ''8. 最初に追加した「指定した時間待つ」パネルを右クリックし、コピーをする。'' コピーしたら、一番下にある「+」ボタンを右クリックし、ペーストする。 ''9. 6.で追加した「イベントの座標を指定して歩かせる」パネルを右クリック、コピーをする。'' コピーしたら、一番下にある「+」ボタンを右クリックし、ペーストする。 ''10. 9.で追加した「イベントの座標を指定して歩かせる」パネルをクリックして開く。'' 「マップ先から指定」欄にある「移動先を指定」ボタンをクリック。 開いたウィンドウで、ストーンブロックが元々あった位置をクリック。 #ref(./イベントを作る3_8.png,40%) #br 「ブロックが動く」シートはこのようになります。 #ref(./イベントを作る3_9.png,40%) #br マップエディターに戻って崖を見て、ストーンブロックの移動先を示す黄色いマーカーがガケの淵の高さより低い位置にあったら、マニピュ―レーターを使って高さを合わせておきましょう。 #ref(./イベントを作る3_10.png,40%) #br ''(質問)'' テストプレイを開始した時、このイベント(ストーンブロック)は表示されていません。 プレイ中何をすると表示されるでしょうか。 また、最初からストーンブロックを表示しておくには、このイベントをどう改造したらいいでしょうか。 #br ''テストプレイをしてみましょう。'' プレイを進めていくとストーンブロックが現れて移動をし始めます。 タイミングを見計らって石の上に乗り、ガケの向こう側へ渡りましょう。 ***イベントの設定を変えてみる [#e39701f7] ''先ほど設定したストーンブロックのイベントの設定を少し変えてみましょう。'' ストーンブロックをダブルクリックして、イベントエディターを開きます。 まず、「シート実行時に変化する要素」欄の「向きの制御」を「固定」から「通常」にして、テストプレイしてみてください。 #ref(./イベントを作る3_11.png,40%) #br ストーンブロックが移動する際、くるっと回ってから移動するようになりました。 「向きの制御」を「通常」にすると進行方向を向いてから移動します。 ストーンブロックをダブルクリックして、先ほど変更した点を元に戻しましょう。 そのうえで、今度はイベントトリガーを「自動的に開始(繰り返し実行)」に変えてみましょう。 そのうえで、今度は「イベント開始」(イベントトリガー)を「自動的に開始(繰り返し実行)」に変えてみましょう。 #ref(./イベントを作る3_12.png,40%) #br テストプレイをすると、おじいさんにアイテムを渡した後、ストーンブロックは動き出します。 しかしプレイヤーは操作できなくなってしまいます。 ***並列して実行 [#d6decc23] ''自動的に開始(並列して繰り返し実行)」のように「並列」という言葉が入ったイベントトリガーを設定したり、イベントシートにある「並列シート」を使っているイベントのことを''&size(18){「並列イベント」};といいます。'' #ref(./イベントを作る3_14.png,40%) #br 通常のイベントは、イベントシートが開始されるとそのシートが終わるまで、ゲーム全体をホールドします。 そのため、イベントが動いている最中はプレイヤーの入力も受け付けなくなります。 それに対して並列して実行されるイベントは、起動してもゲームをホールドせず、他のイベントと並列して動作します。 そのためイベントが起動してもプレイヤーの動作は阻害されません。 このことを念頭に通常/並列をうまく使いわけていきましょう。 #ref(./イベントを作る3_13.png,40%) #br つまり、先ほど「並列」ではないイベントトリガーを指定したため、ストーンブロックのイベントがゲーム全体をホールドしてしまい、プレイヤーの操作も受け付けなくなったということです。 [[並列イベント]]のページでもう少し詳しく解説しているので、後ほどご覧ください。 **洞窟に入るイベント [#t36dab6a] ''崖の向こう側に渡れるようになったので、洞窟に入るイベントを作りましょう。'' まずは[[マップリストパレット]]で洞窟用の新しいマップ「Map_3」を追加してからMap_2に戻り、イベントテンプレートの「洞窟の出入り口」を洞窟の入り口に配置します。 移動先は新しく追加した洞窟用のマップ(Map_3)内(X座標:12.5、Z座標:23.5)に指定してください。 そして「当たり判定の大きさ」欄の横にある「設定」ボタンを押してください。 開いたダイアログで「X」に"3"を入力します。 #ref(./イベントを作る3_15.png,40%) #br イベントテンプレートを閉じると、マップ上に置かれたイベントの周りの白いボックスが大きくなっています。 (このボックスが出ていない方は、マップエディタ右下のコリジョン表示ボタンをオンにしてください。) #ref(./イベントを作る3_16.png,40%) #br このボックスがこのイベントの「当たり判定」(コリジョン)を表します。 このサイズが小さいままだと、イベントとプレイヤーが接触しづらくなり、入り口の端のほうからは洞窟に入れなくなってしまいます。 ---- ''これで崖を越えて洞窟に入れるようになりました。'' ''このイベントに少し手を入れてみることで、よりイベント作りのイメージがつかめるようになると思います。'' --鍵を持たずに宝箱を調べた際、メッセージを出してみる --精霊の球を渡したイベントの最後、おじいさんがその場から立ち去るようにしてみる --精霊の球を渡した後、持っているアイテムから精霊の球を減らしてみる ''また、おじいさんと宝箱の位置、敵の出現率や、敵が出てくる範囲を調整して、このマップをクリアする難しさを変えてみるのも面白いでしょう。'' #br ''さてここまで何度もテストプレイをして、そのたびに同じ操作を繰り返してきたと思います。'' ''これを少し楽にしたくありませんか?'' ''デバッグ機能の使い方を次のページでご紹介します。'' ---- ''&size(16){次ページ: [[test_13]] };'' ''&size(16){前ページ: [[test_11]] };'' ---- ''&size(16){イベントの種類: [[イベント概要]] };'' ''&size(16){イベントスイッチ: [[test_18]] };'' ''&size(16){コモンイベント: [[test_19]] };'' ---- ''&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]]};''