とりあえずゲームつくってみようかなぁ……。
プログラミングめんどいし、RPGツクールでいっか。その4。
いよいよ本格的なゲーム制作。いや、今回はホントに。
前回の下準備的なデータ、マップ制作の記事は
こちら。
前回でアクターとマップが一応完成したので、いよいよオープニングから作成していく。
頭の中で出来ている人なら良いけど、こんがらがりやすいので流れを先にメモへ書き出しておく。
ちなみにメモは手書きでもいいけど、パソコン上でメモるとテキストコピペとかしやすいので、パソコンで取ってる。エディタはサクラエディタ。
で、そのメモから引用すると流れはこんな感じ。
・ダブル主人公なので、二人分のオープニングを用意し、ソロで少しだけ動かして合流する流れ。
◆セフィリア(魔法役)のオープニング
1.自宅で魔法の試験を受ける
2.姉にダメ出しされる
3.塔に飛ばされる
※戦闘力がソロだとゴミなので戦闘は無し
◆サツキ(物理役)のオープニング
1.どっかの異世界で意味深なことをぶつぶつ言う
2.塔に飛ばされる
3.戦闘チュートリアル
→合流でオープニング終了
セフィリアの「自宅」とサツキの「どっかの異世界」をマップで作ってないので、適当にサンプルから引っ張って作成。どうせ一部しか映らないから、変更も加えずそのまんま。
セフィリア側から作り、姉の顔アイコンとか適当に決めて(性格もこのとき決めた。ノリ重視)
魔法試験風景のアニメーション、効果音、ウェイト等々イベントで表現し、塔に飛んでメニュー開ける自由モードを少し入れて階段登ったらサツキ編へ。
サツキ編では塔に飛ばされた後、戦闘チュートリアルがあるので敵MOBとサツキの戦闘スペックというか戦闘スタイルを決め、作成。
サンプルはこんなかんじ。
オープニングなので、セフィリアの位置をスタート位置、アクターを一人のみ。
適当に岩辺りにイベントを作って、自動実行にしてイベントを作成。
セリフ→【このイベント】設定でアニメーション&SE→セリフ→アニメーション&SE……→セリフ→吹き出し
という流れ。自動実行はほっとくと繰り返し実行してしまうので、セルフスイッチAをONにしてなにもしないイベントに自動で切り替わるようしておく。(BとかDでもいいけどそこらへんはお好みで)
大体こんな感じ。
セリフはRPGツクールのエディタに直入力、内容もその時に考えてそのまま打つ感じ。
顔とか名前の色とかは一応メモで控えているけど、面倒なので基本以前作ったやつからコピー→内容だけ消して再書き込み、という手法。コピペはCTRL+C→CTRL+Vの基本のやつね。
これなら顔グラをいちいち選ばなくて済むし、選んだとしても1番違いとかなので簡単。
あとESC使うと保存せず消しちゃうので要注意。基本入力終えたらCTRL+ENTERで適用保存。これが結構便利。またほとんどのツールは使い方のポップアップが出るので、なんかよくわからんかったらウィンドウにマウスカーソルを合わせてしばし待ってポップアップを読む、これがオススメ。
小説書ける人ならある程度他のエディタで文に起こしてからのほうがやりやすいのかな?
まあ、よくわからん。
で、二人が合流して自由に行動できるまで作ったので、そこでセーブデータを作り、マップでの敵エンカウントのテストおよび戦闘バランスの調整をここらへんでざっくりと。
別にデータベースの敵グループタグから戦闘テストやっても良かったけど、エンカウント率がうざったいかどうかとかも見たかったので実践形式で。
戦闘のスキル周りをコモンイベント使ってこねくり回したので、そのテストもしたかった。
以下「ぼくがかんがえたせんとうしすてむ」のメモと解説。
ややこしいのですっ飛ばして読んでも問題はない。
セフィリア用戦闘システム
◆基本コンセプト
・よわい、でもがんばればややよわい。
魔法の仕組み
火、氷、雷の三属性が基本。二人しかいないので、一応ヒールも覚えておく?→覚えさせる。
火と氷は排他関係。雷と火、雷と氷は増幅関係。
火魔法を唱えると火属性場ができ、氷が唱えられなくなる代わりに上位の火魔法が使える。
氷 同上 。
火→雷、氷→雷の順で唱えると複合属性魔法を撃てる。
威力は強めだが反動で1ターン行動不能になる。
もう一度撃つ場合は同じ手順を踏む必要あり。
全部最初から覚えているとややこしいので、最初は火と氷のみ。
レベルが上がるとサポート系、特殊系のスキルを修得。
イベントで属性魔法を修得。
サツキ用戦闘システム
◆基本コンセプト
・いたい、でもがんばればがまんできる。
呪いの仕組み
呪いを使うことによって不死能力を含む様々な異能を得る。
不死能力を得ている間はHPが0になっても死なない。
呪いを使いすぎると錯乱する。レイプ目。
純粋な攻撃力はセフィリアを上回るが、
セフィリアを活かそうとするとダメージが出せないジレンマ。
レベルが上がると攻撃系のスキルを修得。
イベントで呪い系のスキルを修得。
MMORPG的に言えば、セフィリアがダメージディーラーで、サツキがタンク。
システムっていってもコモンイベントやステートで実装してるだけで、
小難しいスクリプトは一切なし。
これを作ってるときが一番楽しかった。
ここらへんでコモンイベントの万能さに気付く。
コモンイベントってのはプログラミング言語で言えば、関数とかサブルーチンとかメソッドとかクラスとか……
個人的にはJavaを専門でやってたのでJava用語で解説させてもらうと、
「引数と戻り値のないメソッド」
と呼ぶのがしっくりくる。
つまり、処理だけ外に書いた何度でも呼べるプログラム。
個人的に優れていると思ったのは、戦闘処理だろうがフィールド処理だろうが会話だろうがどんな処理でもぶっこめる点。
上のセフィリアの戦闘システムを文で書くと、
1.火魔法を使用するとコモンイベントを呼ぶ。
2.コモンイベントで使用者にステートを付与。氷魔法を忘れる。上位の火魔法を覚える。
3.上位の火魔法を使用するとコモンイベントを呼ぶ。
4.コモンイベントでステートを解除。上位の火魔法を忘れる。氷魔法を覚える。
という処理にしている。
なぜスキルでステートを設定できるのに、いちいちコモンイベントでステートを付与するかというと、
攻撃魔法は対象が相手になり、スキルでステートを設定すると相手についてしまうため。
ってのが理由。
ここらへんの「あーやりたいのはそうじゃないんだよー」っていう部分を吸収してくれるのがコモンイベント。
スキルでコモンイベントをいくつも呼べるので、例えばスキルを使ったときに顔付きで必殺技風に叫ばせたい!ってときもコモンイベントを呼んで普通に会話ウィンドウを表示すればいい。便利。
閑話休題。
で、戦闘バランスというかシステムもまあそれなりに動いたので、とりあえずマップとマップだけつないでキャラを行けるところまで行けるようにテスト。
マップをつなぐのは簡単イベント作成でちゃちゃっと作れるので、モンスターは最初のほうだけ設定してマップ移動を中心に作成。
ここらへんに休憩所作るかなー、とかなんとか考えながら、マップをちまちまいじり、
「そういえば魔法のチュートリアルも必要だな……」とか思いついて最初の休憩所辺りで
魔法戦闘のチュートリアルを作成。
という感じで行き当たりばったりでオープニングから序盤を作成完了。
あとはひたすら作っていくだけなんだけど、まあぼちぼち気づいたところを書こう。
ということで次回は精神的な話。
つまり、終わりが遠いのにどうやってモチベーションを保って作り続けるか。
の話は
こちら。