RPGツクール2000/自作戦闘【サイトトップへ戻る】
■自作戦闘とは?
(更新:2022/06/01)


自作戦闘に関する基本情報が書かれたページです。

RPGツクール2000で自作戦闘を作ろうと考えている方で、
特にYADOTで紹介している自作戦闘を作ろうとしている方は、必ずご覧ください。

ショートカット
■自作戦闘とは?
■制作に関するアドバイス
■様々な物を自作する必要がある!
■自作戦闘の制作前の準備
■雑記


  
■自作戦闘とは?

RPGツクールには初めから戦闘システムが用意されています。

RPGツクール2000にはフロントビュータイプの戦闘システム、
RPGツクール2003にはサイドビュータイプの戦闘システムが用意されています。

RPGツクール2000の戦闘画面 RPGツクール2003の戦闘画面

この初めから用意されている戦闘システムの事を「デフォルト戦闘」と呼んでいます。

それに対し、デフォルト戦闘を使わずに、
イベントコマンドの設定で独自の戦闘システムを作る事を「自作戦闘」と呼んでいます。

▼YADOTで作り方を紹介している自作戦闘
自作フロントビュー(上級) アクションRPG

自作戦闘の場合、制作者が考えている理想の戦闘システムを作る事ができる反面、
その理想の戦闘システムの作り方を一から全て制作者が考える必要があります。

バグや処理落ちなどの問題が発生しても、自力で原因元や修復方法などを見つけ出す必要があり、
制作ハードルはかなり高いです。

基本的に質問掲示板は「使えない」と考えた方が良いでしょう。


▲トップへ戻る▲


  
■制作に関するアドバイス

自作戦闘の制作に関するアドバイスです。



■制作意欲は重要!

まず大事なのは「自力で完成させる!」と言った制作意欲です。

「問題があったら誰かに聞けばいいや〜」などの甘い考え方では、
最後まで完成させるのは難しくなるでしょう。

「全く人に頼ってはいけない」とは言いませんが、
「出来る限り自力で問題を乗り越える!」と言う制作意欲が無いと、
最後まで完成させるのは難しいでしょう。



■時間がかかる!

自作戦闘はとにかく制作に時間がかかります。

簡単な物なら1日で出来る物もありますが、
デフォルト戦闘と同じレベルの戦闘システムを作る場合は、
1年以上かけても理想通りの戦闘システムが完成しない可能性があります。



■まずはメモから

自作戦闘の制作は、まずはメモ書きから始めると良いでしょう。

このメモ書きには詳細なイベント設定などは書かずに、
大まかな情報(こうなって欲しいと言った理想の形)を書き出します。

必要なイベントの設定タイトルと設定内容
簡単な戦闘画面のレイアウト(HPや自作メニューの表示位置)
主人公や敵の行動内容(特殊技能やアイテムの数と効力)
操作方法(自作メニューのカーソルの動き・Shiftの使い道など)
ゲームルール(シミュレーションやカードバトルの戦闘の場合)
必要な素材(自身で描かなければいけない画像の内容)

必要なイベントの設定タイトルと設定内容では、
自作戦闘を動かすのに必要なイベントの情報を書き出します。

例えばフロントビュー形式の自作戦闘を作る場合は、以下のように書き出します。

設定タイトル 設定内容
戦闘開始時の処理 フィールドマップから戦闘用のマップへ移動して来た時に、
最初に実行するイベント。
出現させる敵グループを決定し、画面上に敵の画像を表示。
主人公の画像や主人公のステータス画面を表示。
主人公の行動選択 「攻撃」や「特殊技能」などの行動内容を決定する。
特殊技能やアイテムでは「何を誰に使うのか」を選択する。
敵の行動選択 どんな行動内容にするのかを決定する。
敵の種類によっては「逃走」なども実行させる。
主人公や敵の行動実行 「攻撃」や「特殊技能」などを敏捷性順に実行する。
行動内容を文章で表示し、
戦闘アニメや効果音などの演出を実行する。
ダメージ処理 攻撃力や防御力などからダメージ量や回復量を算出する。
ダメージ量や回復量を画面上に表示する。
残りHPを調べて戦闘不能などを判断する。
主人公側の全滅で「ゲームオーバー」を実行し、
敵側の全滅で「戦闘勝利」を実行する。
戦闘終了時の処理 「勝利した」「逃走した」「全滅した」などの文章を表示。
戦闘勝利時には、戦利品の内訳を表示し、
レベルアップ時には、能力値の増加量を画面上に表示。
戦闘開始時にいたフィールドマップへ戻る。

このように自作戦闘に必要なものを書き出しておけば、
どのようなイベントを用意する必要があるのかを確認する事ができ、
イベント設定や変数の使い方などを計画的に行う事ができます。



■自作戦闘は複数のイベントの集まりから出来ている!?

自作戦闘は基本的に複数のイベント処理を繋ぎ合わせて1つの戦闘システムを作ります。

例えばYADOTにある自作フロントビューを作る(初級)の場合は、
以下の4つのイベントが設定されています。

イベント名 説明
メインイベント 戦闘システム全体を動かす。
主人公の行動決定 「攻撃」や「特殊技能」などを選択する。
主人公の行動実行 選択した行動を実行する。
敵の行動選択&実行 「攻撃」や「逃走」などの処理を実行する。

戦闘中はメインイベント(1つの自動的に始まる)で全体を動かし、
必要に応じてサブイベントを呼び出して実行します。

自作フロントビューを作る(初級)の処理の流れ


このように処理を分ける事で…
主人公が敵に攻撃する主人公が敵に攻撃するイベント処理を呼び出す
主人公のHPが減った主人公のHPを表示するイベント処理を呼び出す
と言った感じに、必要なイベントを呼び出して実行する事ができ、万が一バグが発生しても…
主人公の攻撃がうまく処理されない主人公の攻撃処理の所を確認する
と言ったように、問題が発生している場所も分かりやすくなります。

さらにイベントを追加する事で、
主人公が睡眠状態の時には主人公の処理を呼び出さないようにしたり、
敵ごとに独自のイベント処理を用意して、敵ごとに行動内容が変わるようにする事もできます。



このように複数のイベント処理を繋ぎ合わせて、1つの戦闘システムを作り上げます。



■試作品から作り始めよう!

いきなり本格的な戦闘システムを作ろうとすると、
バグが多発したり、処理落ちが発生したりして、制作中断になる可能性が高くなります。

そのため、まずは試作品(最低限動く戦闘システム)を作った方が良いでしょう。

以下は自作フロントビューの試作品を作る場合の一例です。

処理内容 試作品の設定
主人公の行動 「攻撃」「逃走」「特殊技能(1〜2個)」と最低限の処理を設定する。
自作メニューで行動内容の選択する場合でも、
試作段階では選択肢の表示を使って行動を選択したり、
方向キーで「上=攻撃」「左=逃走」「右=特殊技能」と選択するなど、
簡易的な行動決定処理を用意する。
敵キャラ 敵の種類は1〜2種類のみで、「攻撃」「逃走」くらいの行動のみとする。
人数 最終的に「主人公4人:敵4体」にする場合でも、
最初は「主人公1人:敵1体」で設定する。
「主人公1人:敵1体」が完璧にできたら、多人数に対応できるように、
「攻撃や回復を行うキャラを選択する処理」「全体攻撃(全体回復)の処理」
「1人が戦闘不能になっても戦闘が継続させる」などを設定する。
初めから「主人公4人:敵4体」で設定すると、
1ターンの処理が長くなって動作テストに時間がかかる上、
バグが発生すると原因元の特定に時間がかかる事もあるので、
試作品では「主人公2人:敵2体」程度の人数にした方が良い。
画像 敵の画像はRTPの物や四角形の中に[敵]と書いたベタな画像を用意する。
自作メニューも表示位置や表示サイズが分かるベタな画像を用意する。
戦闘画面のレイアウトがまだ決まっていない段階では、
何度も画像サイズの修正を行う事があるので、
最初から完璧な画像に仕上げるのはお勧めできない。
HPの表示 主人公のHPやMPを画面上に表示する処理は、
プレイヤーにとっては重要な処理になりますが、
HPの表示があっても無くてもHPの増減処理は実行できるので、
まだHPの表示方法などが決まっていない場合は、
取りあえず1人分のみの表示設定を行うと良いでしょう。
スイッチ
変数
ピクチャー
試作段階では「主人公2人:敵2体」でも、
最終的に「主人公4人:敵4体」にする場合は、
最終的な人数分のスイッチ、変数、ピクチャーを確保した方が良いでしょう。

試作品はとにかく「早く仕上げる事」が重要になります。

早く仕上げて実際に動かしてみて、操作性や画面表示などに問題が無いかどうかを確認し、
このまま制作を続けていくかどうか」を確認します。

試作品の動作確認が終わって特に問題が無ければ、
そのまま試作品を使って本格的な制作に移行する事ができます。

あまりに改良点が多い場合は、戦闘処理を一から作り直す必要もありますが、
それでも試作品の制作自体が「無駄になる」と言う事は無いでしょう。

ちなみにYADOT自作フロントビューには「初級」と「上級」があり、
初級の方は試作品に近い形になっています。

初級 上級

実際に初級のような簡易的な処理を作り、戦闘処理の制作経験を積まないと、
上級のような複雑な処理を作り上げるのは難しいと言えます。



■理想と妥協

自作戦闘の制作に限らず、
ゲーム制作では常に「理想を追求するか、妥協するか」の選択が必要になります。

例えば、RPGの自作戦闘を作る時に、
1人の主人公で10個の特殊技能が使えるようにする」とした場合、
主人公が1人だけでしたら10個の特殊技能を準備し、
主人公が8人登場する場合は、最大で80個の特殊技能を準備する事になります。

仮に1個の特殊技能の設定に30分かかるとしたら、
80個の特殊技能を設定だけで40時間以上はかかり、
1日1時間の作業で1か月以上はかかります。

さらにオリジナルの戦闘アニメを表示する場合は、
グラフィックの作成や戦闘アニメのアニメーションの設定などが必要になるため、
80個の特殊技能を準備だけで数か月単位の時間がかかるかもしれません。

もしも制作時間を減らす場合は、以下のような妥協が必要になるでしょう。
●全体の特殊技能の数を減らす。
●同じ特殊技能を複数の主人公で使用する。
●同じ戦闘アニメを複数の特殊技能で使用する。
●主人公に対して使用する特殊技能の場合は画面のフラッシュ効果音の演奏のみにする。
●特殊技能が使えない主人公を作る。

理想を追求する事は悪い事ではありませんが、
最終的に作品が完成しなければ理想を追求する意味がありません。

作品を完成させる事を第一に考えた場合、
時には妥協する事も必要」と言った事は忘れないでください。



■作り直しもアリ!?

自作戦闘の制作に慣れていない場合、制作の過程で原因不明のバグが発生したり、
スイッチや変数の使い方が悪くて作業効率が悪くなったり、
ピクチャーやループ処理の設定方法が悪くて処理落ちが発生したりと、
様々な問題が発生する事があります。

このような場合、
せっかくここまで作ったのだから、何とかしたい」と考えて無理に制作を進める事があります。

最終的に何とかなれば良いのですが、原因不明なバグが直らないなどの改善が見られない場合は、
戦闘システムを一から作り直す事も考えた方が良いでしょう。

これは「30時間かけて改善を目指すなら、その30時間で作り直そう」と言った考え方です。

このような大きな決断を下すのは中々難しいかもしれませんが、
実際に作り直す事でバグが直るだけでなく、イベント設定や変数の使い方が見直されて、
作業効率も処理効率も良くなる事があり、最終的に作品の完成が早くなる事もあります。


▲トップへ戻る▲


  
■様々な物を自作する必要がある!

自作戦闘では、主人公の行動選択、主人公や敵の行動処理、特殊技能やアイテムの使用処理、
ダメージ量や回復量の計算処理&HP増減量の画面表示、主人公のステータスの表示など、
戦闘に関わる様々な物が自作になります。

またデータベースにある特殊技能、アイテム、敵キャラ(敵グループ)、用語などの設定は、
データベースから直接設定内容を読み取る事ができないので、
全てイベント設定でデータベースの内容を設定する必要があります。

主人公の能力値などの情報は、データベースから変数へ取得する事ができますが、
必殺率やオプションなどの設定は、イベントで設定する必要があります。

AI行動(自動戦闘)を導入したい場合は、そのAI行動の処理も自作する必要があります。

戦闘用の素材(敵の画像など)は、
ある程度はRTPにある素材やネット上で公開されている素材などで対応する事ができますが、
自作戦闘で使うメニュー画面の画像などは、自作する必要があります。

画像に関しては、一応「誰かに描いてもらう」と言った手段もありますが、
代表作の無い無名なツクラーに対して、無償で画像を描いてくれる絵描きさんは殆どおらず、
仮に居たとしても、せいぜい数枚の画像を描いてくれる程度になるでしょう。

自作戦闘の制作では、少なからず自力で画像を描く必要性が出てきます。


▲トップへ戻る▲


  
■自作戦闘の制作前の準備

◆ツクールは常に最新バージョンに!

2020年8月現在、RPGツクール2000の最新バージョンは「1.52」になります。

現在お使いのツクールのバージョンの確認は、
マップ作成画面の上部メニュー「ヘルプ」→「バージョン情報」から確認できます。

バージョンアップをしていない場合は、
RPG Maker Official(ツクール公式サイト)からアップデータをダウンロードしてください。
トップページ→「サポート」→「アップデート」→「RPGツクール2000」

なお、RPGツクール2003のアップデータの配信は終了しており、現在はダウンロードできません。



◆ツクールの知識を身に付けよう!

ツクールに関する知識が多ければ多いほど、制作できる幅が広がります。

一応全てのイベントコマンドの使い方は知っておいた方が良いでしょう。

YADOT内にあるツクールの仕様処理落ちに関するページも見た方が良いでしょう。
【ツクールの仕様に関するページを開く】
【処理落ちに関するページを開く】

その他YADOT内で気になるページがありましたらチェックしてみてください。


▲トップへ戻る▲


  
■雑記

お時間があるようでしたら、ご覧ください。



■質問掲示板で自作戦闘の作り方を聞いても良い返事が来ない理由

質問掲示板には時々「サイドビューの作り方を一から教えてください」などと、
自作戦闘の作り方を聞いてくる方がいます。

このような場合は、多少のアドバイスを書く事はあっても、
全ての作り方を説明する事はまずありません。

これは不親切とかではなく、単に説明が不可能に近いからです。
説明が不可能に近い理由は以下の通りです。



◆回答者はサンプルデータを作る必要がある

詳しい作り方を回答するためには、回答者はサンプルデータを作る必要があります。
この「サンプルデータを作る」と言った手間を考えた時点で、殆どの回答者は回答を諦めます。

頑張ってサンプルデータを作ったとしても、質問者が求めている内容とは違っていた時には、
サンプルデータを作り直す必要があり、サンプルデータを作るだけでもかなりの負担になります。



◆質問者は「理解力」が必要である

サンプルデータを作り、頑張って作り方を説明しても、
質問者に説明を理解する力が無いと作り方を伝える事ができません。

特に変数の使い方が分からない方に自作戦闘の作り方を説明するのは、
小学校1年生に中学・高校レベルの数学を教えるくらいに難しく、
自作戦闘の内容によっては「説明は不可能」と言っても良いくらいです。

例えサンプルデータを渡したとしても、他人が作ったイベント内容を理解するのは難しく、
場合によっては、自力で自作戦闘が作れるくらいのレベルが無いと、
サンプルデータの中身を理解する事ができない事もあります。

なお、質問掲示板に「初心者です」などと書いてある場合は、
初心者には理解するのは無理」と判断して、何も回答しない事もあります。



◆理想と現実とのギャップ

質問者の中には、
「ちょっと説明を受ければすぐに出来るだろう」
「サンプルデータがあれば簡単に出来るだろう」

などと自作戦闘が簡単にできる物と考えている方がいます。

しかし実際には数十時間、場合によっては数カ月もの時間をかけて、
徐々に作り上げていくものです。

「意外と制作に時間がかかる」
「作るのはかなり面倒である」

などと制作の面倒臭さ(制作の現実)を知った時に、
質問者が途中で制作をやめてしまう事があります。

過去に何日もかけて質問掲示板で自作戦闘の作り方を説明していた所、
「制作が大変なのでやめたいと思います」
の一言で今までの回答が無駄になった事がありました。

このような制作中断のリスクを背負ってまで、
自作戦闘の作り方を回答する方は少ないでしょう。



◆「作れる=説明できる」ではない!

質問者の中には「自作戦闘が作れる者なら自作戦闘の作り方が説明できる」と考える者がいます。
しかし実際には「作れる」と「説明できる」はかなり異なります。

自分で使う自作戦闘の場合、イベント設定や変数の使い方を誰かに説明する必要がありません。

しかし他人に作り方を説明する場合は、
●1つ1つのイベントコマンドや変数の役割は何なのか?
●ピクチャーのサイズが変わった時にはどこを直せば良いのか?
●もっと簡単な設定に出来るのではないか?(実際には処理落ち対策でそのように設定している)

などと、イベント設定に関する細かい補足説明が必要になります。

YADOT自作フロントビュー(上級)で言えば、
自作戦闘のイベント制作に1ヶ月かかり、説明書の制作に1ヶ月半かかっています。
もしも自分で使う自作戦闘の場合は、説明書の制作に1ヶ月半は必要無くなります。

またイベント設定の内容やスイッチ・変数の使い方を分かりやすくするために、
イベント設定内に注釈を入れたり、スイッチ・変数の番号を並び替えたりする事があり、
自分で使う自作戦闘を作るよりもはるかに手間と時間がかかります。

そのため、自作戦闘が作れる者が必ずしも「作り方が説明できる」とはなりません。



◆時には無理難題な質問がやってくる

時には無理難題な質問がやってくる事があり、回答できない事があります。

例えば、
「変数が使えませんが、どうしても自作戦闘を作りたい」や、
「シミュレーションRPGが作りたい」などです。
このような無理難題な質問は、基本的に無視されます。

また、
「デフォルト戦闘並みの高度な自作戦闘の作り方を一から教えて欲しい」
と言った質問も無理難題に近いと言えます。

デフォルト戦闘に近いものですとYADOT自作フロントビュー(上級)がありますが、
この自作フロントビュー(上級)のイベントコマンドをテキスト化すると、
文字数が40万文字以上になります。
つまり「高度な自作戦闘の作り方を教えて♪」と言った質問は、
私のために40万文字の回答文を書いてね♪」と言っているようなものです。
これは「ほぼ回答は不可能」と言っても良いでしょう。

なお、多くの質問掲示板には全角2000文字までなどと言った入力文字数の制限があります。
そのため、実際に細かいイベント設定を書きたいと思っても、
質問掲示板には書けない事が多くあります。



◆イベント内容が分からなければバグの原因は回答できません!

自作戦闘を作っている質問者から、
「アクションRPGを作っていますが、敵に攻撃してもダメージが減りません」
と言った質問がやってくる事があります。
このような質問は、かなり詳しいイベント設定を質問掲示板に書かないと、
バグの直し方などを回答する事ができません。

一言に「アクションRPGを作っている」と言っても、
100人が自作戦闘を作れば100通りの自作戦闘が出来上がります。

例えYADOTの自作戦闘を基に作っても、
たった1個のイベントコマンドの設定ミスにより、自作戦闘が動かなくなる事があります。

過去にYADO制作のサンプルが「バグッている」と言った問い合わせがありました。
その質問者は、
イベントコマンドを5個追加したが、自分の設定は完璧だからサンプルの方がバグっている!
と言ってきました。
そこでそのバグが発生している作品データを受け取り、追加したイベント設定を確認してみた所、
1つの【変数の操作】の設定が「加算1」ではなく「代入1」になっており、
それが原因でサンプルが正常に動いてなかった事がありました。

もしも自作戦闘のバグの原因や解決方法を回答して欲しい時には、
●質問掲示板に詳細なイベント設定を書き出す。
●戦闘システムが見れる最低限の作品データを質問掲示板に公開する。
●メールでデバッグを受け付けているツクラーに作品を送って見てもらう。

などの対応が必要です。

質問者の中には「作品の一部でも公開したくない」と言う方がいますが、
このような方は自力で問題を解決して頂くしかありません。



以上の理由から「自作戦闘の作り方を教えて」の質問は基本的に無視される傾向があります。

自作戦闘の制作はまずイベントコマンドの使い方などの基礎を学び、
さらに自作メニューの制作などでイベント設定の経験値を積んだ上で自作戦闘の制作を行います。

基本的に自作戦闘は、ツクールを買ってすぐに作れるようなものではありません。



■ちょっとした設定ミスに気をつけろ!

自作戦闘の制作ではバグの発生が頻繁に発生しますが、
そのバグの大半はちょっとした設定ミスによるものが多いです。

例えば、変数の操作で「代入」と「加算」の設定を間違えていたり、
ピクチャーの表示の設定でピクチャーの番号を間違えて設定していたり。

イベント設定をコピー&貼り付けで設定した時に、
貼り付け後に変更しなければならない設定をそのままにして、バグが発生する事があります。

例えば、敵1のマップイベントをコピーして、敵2のマップイベントを設定する時に、
貼り付け後に敵2の「イベント出現条件」を敵1のままにしてしまい、
結果的に「敵1を倒したら敵2も一緒に消えた」と言ったバグが発生する事があります。

このようなちょっとしたミスに気付くためには、こまめにテストプレーを行う事が大事です。


▲トップへ戻る▲



◎関連ページ

●自作フロントビューを作る
●アクションRPGの戦闘システムを作る
●ピクチャー弾丸を飛ばす
●ピクチャー放物線移動処理

●バグ対策(デバッグテクニック)

YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール