• ベストアンサー

RPGつくーる2000で、

RPGツクール2000で、 ものを動かすイベントを作成したのですが、物体を動かし、ある場所に持っていくと扉が開くみたいなものがつりたいのですが可能なのでしょうか? 出来るなら方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Z222
  • ベストアンサー率78% (327/416)
回答No.2

もう一度失礼します。 やり方はANo.1の後者の方が簡単なようですね。 書き直しも含めて再度書かせていただきます。 【1】 まずは動かす物を作ってください。ここでは「岩」とします。 開始条件は、「決定キーが押されたとき」「主人公から触れたとき」お好きな方を選んでください。 実行内容の中身は、「キャラクターの動作指定」で「主人公から逃げる」を選び、 左下の「移動できない場合は無視」これにチェックを入れてください。 さもないと、壁に向けて動かそうとした場合、フリーズしてしまいます。 「キャラクターの動作指定」の下に、「指定動作の全実行」も忘れずに。 これで「岩」の完成です。 【2】 「定期的に並列処理する」のイベントを別に作ってください。 イベント実行内容に「指定位置のイベントIDを取得」を選び、 「直接指定」で物を置くべき場所を指定してください。 「イベントIDを受け取る変数」これで「岩」のイベントIDを取得します。 【3】 その下に、条件分岐で、先ほどの変数を条件に、 「定数」の中に「岩」のイベントIDと同じ数値を、その下を「と同値」に設定してください。 イベントIDは、イベントエディタ左上に表示される 「イベントエディタ - ID:0002」等と書かれた「ID:0002」の数字です。 この数字は、イベントを作った順番に増えていきます。 その条件分岐の中に、扉のスイッチ(「扉スイッチ0001」とします)をONにするように設定してください。 これで特定のイベントがそこに来ると、スイッチがONになる仕組みの完成です。 【4】 さらに条件分岐を増やし、先ほどの変数の「定数」を「0」に設定、 そこにスイッチをOFFにする設定を入れると、 「岩」をどけた時に扉も閉まるようにする事も可能です。 【5】 あとは【3】で使った「扉スイッチ0001」を基に、扉を作るだけです。 1ページに閉まっている扉、2ページに開いている扉を設定し、 2ページの条件にその「扉スイッチ0001」を使うだけです。 たぶんこちらの方が仕組みは簡単かもしれません。 また、【3】の条件分岐を増やすと、「岩」を増やすこともでき、 「定数」を「1 以上」にすると、岩だけでなく他のイベントキャラの 町の人等が乗っかっても起動するという、これはこれで面白いスイッチも出来ます。 ただし注意点があります。 「岩」を置く場所には、イベントは一切作らないようにしてください。 そうしないと、そのイベントのIDを読み取ってしまい、うまく機能しません。 その場所は、マップでタイルを変えるなどで表現するといいでしょう。 もし、扉が開いた時に効果音を鳴らしたいのでしたら、 【3】でONにする「扉スイッチ0001」を「条件分岐:スイッチ[0001:扉スイッチ0001]がOFF」で囲んでください。 そしてその中に効果音を一緒に入れてください。 これを設定せずに、そのまま効果音を入れると音が連続で鳴ってしまいます。 閉まる時は、【4】で同じような事を行い、その時の条件は、 「条件分岐:スイッチ[0001:扉スイッチ0001]がON」にするだけです。

その他の回答 (1)

  • Z222
  • ベストアンサー率78% (327/416)
回答No.1

条件分岐、変数や座標、並列処理の概念を覚えれば、それほど難儀な事ではありません。 押せる岩をボタンの上まで持っていくと、 そのボタンが起動して扉が開くものとして考えましょう。 【1】 まずは岩を作ります。 岩は動作指定で「主人公から逃げる」を使って、押したら動くような仕組みにしてください。 イベント設定ウィンドウの左上に、名前を変更する箇所があるので、 そこに「岩」とでも入れておくと後々わかりやすいでしょう。 【2】 ボタンは形だけのものでも構いません。 調べると「重いものを乗せなければ動かないようだ」 みたいなメッセージを入れてもいいでしょう。 【3】 岩、ボタンとは別に、それぞれの位置を監視するイベントを作ります。 開始条件に「定期的に並列処理する」イベントを作り、 「変数の操作」でその岩イベントのX座標とY座標を読み取る変数を計2つ作ってください。 以降それぞれを[変数 岩 X座標][変数 岩 Y座標]と呼ぶことにします。 「オペランド」は「キャラ」で、先ほどイベントの名前を「岩」に変更したなら、 その「岩」を選んでください。 変更していなければ、「EV0001」等になっています。 これで常に岩の位置を監視するようになりました。 【4】 次にその下に、【3】で取得した岩のX座標とY座標が ボタンの座標と一致した時に起動するイベントを組みます。 今度はボタンのある場所のX座標とY座標を調べてください。 エディタ下の方に「MAP0001(017,013)EV0002」等と表示されています。 ( )内が座標です。(X座標,Y座標)と表示されています。 条件分岐を開き、「条件」→「変数」で[変数 岩 X座標]を設定、 「定数」をそのスイッチのX座標に合わせます。そして「と同値」を選択。 Y座標もその条件分岐の中に、同じように設定してください。 ただし選ぶ岩座標の変数は[変数 岩 Y座標]です。 ボタンの座標もY座標と同じ数値に設定します。 その2重になった条件分岐の中に、扉を開くための「スイッチ」がONになるよう設定すれば、 岩をボタンの上に置くと起動するスイッチの完成です。 条件分岐の下に、「オプション」の「条件に当てはまらない場合の・・・」がありますが、 これにチェックを入れて、その中に扉のスイッチをOFFにする設定をすれば、 岩をどければ扉が閉まるという演出も可能です。XとY両方に設定してください。 あと、扉を作るのですが、これはまぁ深く言わずともわかりますよね。 いちも通りに扉の2ページに、そのスイッチを条件に開いた扉を設定するだけです。 これはほんの1つのやり方です。 もう1つは「指定位置のイベントID取得」を使った方法もあります。 これは岩のイベントIDを読み取ってそれを条件にする方法です。 イベントIDは、イベントエディタを開いて、左上に「イベントエディタ - ID:0002」等と書かれた数値です。 特定の位置の座標を読み取った変数を作り、それを基にイベントIDを読み取り、 IDを読み取った変数を条件に、スイッチをONにする仕組みです。 この方法ならば、さらに少ない変数でも操作が可能です。 ただしこれは、イベントキャラで作ったボタンのグラフィックが使えないという欠点もあります。 そのボタンのイベントIDも読み取ってしまうからです。 この場合は、マップでその箇所だけ違う色のタイルにするという方法を取るとよいでしょう。 これだけのことを、一度に頭に叩き込むのは大変ですので、 実際に読みながらやっていってください。 まずは条件分岐や座標、変数の用途を理解する事ですね。 それからいろいろと改良していってください。 わからない事があれば、また回答します。

関連するQ&A