2016年10月31日月曜日

【ウディタ】ARPGの戦闘システムをつくる(1)基本的な処理

講座でもなんでもねえ、ただの制作日記です。
ちょっと前置きが続きます。

まえおき
現在公開中のRPG「Moebirin Adventure」を公開してからは、「作るのは大変だったけど、経験が生かせるように次の作品もRPGにしよう」と思っていたのですが、
「RPGを作るといっても前作の戦闘や育成システムはそのまま流用するのではなく、強化していかないとやっぱ面白くないよなー」と考えるのは、ゲ制以外の創作をやっていても当然のことながら似たようなことはあるわけで、
その当然の流れから、ほしい機能でウディタ公式にないものをなんとか自作しようと奮闘することになったのでした。

しかし、基本システムの改造は場所によってその難易度が大きく異なり、単体である程度独立しているコモン(例えばコモン164番の単体処理とかね)はわりと容易に改造できてしまいますが、一方万能ウィンドウが絡んでくる描画系コモンなんかは結構めんどくさくて、ものによっては大量の「一時変数」が飛び交う魔境だったりして、処理を理解するところまでで気力を使い果たすレベルでした。

あと、やろうとしていたゲームのシナリオ的にも、フロントビューのコマンド式バトルよりも、アクションRPG的な、プレイヤーの操作がよく反映されるゲームのほうが合っていそうだったので、システムの流用&改造は少しやったところで取りやめて、ARPGで作ることにしたのでした。

本題
ここから本題。

じゃあ、ARPGにするとして、どういう処理が必要で、どういう情報をデータベースに入れておく必要があるかという知識は、考えればある程度は出てきますが、前提としてARPGのプレイ経験がさほどでもないので、とりあえずネット上にあるARPGの制作講座を探しました。
でまあ、参考になったのがこれ。ニコニコ動画に上がっていた実況講座。変数の概念がある程度わかっていればかなりわかりやすい講座なので、個人的にはかなりおすすめ。
アクションRPG編の1~4を順番にやっていくことで、アクションRPGの戦闘処理の土台である

・対応するキーを押すと攻撃エフェクトが出る
・敵に当たるとダメージを与えることができる

この二つと、それに関連した処理をある程度揃えることができます。ここまでのハードルがめちゃめちゃ下がるのは自分みたいなへっぽこにとってはすごくありがたいですね。
ただ、最低限の機能のみなので、ある程度は自力で工夫する必要があります。また、不便な仕様や不具合もまったく無いわけではないので、こちらも自力でなんとかする必要があります。ただ、そういう自力での工夫という工程は動画見ながらサッサと作ってしまったので、対応する処理の案なんかを取り上げることは残念ながらできません。
工夫のコツは、システムは違うものの基本システムの戦闘処理の流れを理解すれば掴めると思います。コモン188番の「X◆戦闘処理」なんかが特に参考になるはず…。ダメージを与える処理はコモン164番の「単体処理」が参考になります。
基本システムの描画や一部の内部処理は難解なのであんまり参考にできないのですが、コモン単体で処理がある程度まとまっているものは大いに参考になります。

それで、結局講座とその関連で組んだコモンやDBの内訳がこんな感じ。
主人公操作:攻撃キーの受付をするコモン。
NPC:敵キャラの動作を指定するコモン。まだ主人公に近づいて、一定時間ごとに攻撃してくるだけ。AIはこれから組んでいく予定…。
攻撃:発動者と技能に応じたエフェクトを表示するコモン。
向き→角度:指定キャラの向いている方向から角度を算出するコモン。動画のまんま。
当たり判定:技能の性質(相手に当てる技か自分に使う技か)を見てから当たり判定を発生させるコモン。当たればダメージ処理とリアクションを発生させる。
ダメージ計算:ダメージ計算をして、対象にダメージを与えるコモン。
状態判定:とりあえずダメージ計算のあとに呼び出して、対象のHPが0以下なら死んだとみなす処理をしているコモン。
主人公DB→戦闘DB:主人公のデータを戦闘用DBにコピペするコモン。
敵DB→戦闘DB:敵のデータを戦闘用DBにコピペするコモン。

DBは基本システムのものを削ったり増やしたりしただけ。
主人公データ:項目名の変更だけ。
戦闘用DB:主人公と敵のステータスを一時保存しておくDB。
敵キャラ:敵キャラのステータスを入れとくDB。
技能:大量に項目をいじったので基本システムとは別物に近いかも。ただ、RPGなのでベースは共通(コストや威力)
アニメーション:ほぼ基本システムのまんま。効果音をシステムDB管理に変更したくらい。

まあ、なんていうか、講座以外で新しく自分で作った部分はまだ他人さまに見せられるような中身でもないので、こんな感じで…。

2016年10月2日日曜日

【ウディタ】Moebirin Adventure を公開しました


このページの最終更新:2016/11/18

こちらのページの更新予定はありません。最新の情報は別ページに掲載しています。

最新バージョン:2016/11/18 ver1.04に更新しました。

こういうゲームです
・ジャンル:RPG
・プレイ時間:3~4時間程度
・プレイヤーがキャラクターを作って遊びます[ギルド名、名前、外見]。外見は30種のなかから1つ選ぶ
・近所の森に薬草取りに行って帰ってくるゲーム並みのストーリー要素
・周回要素はないです
・最終目標は街の近くに出現したあるモンスターを倒すことです
・戦闘難易度は全体を通してみるとやや低め。スキル使用が前提のバランスです。ウディタ製でみかけたかもしれないフロントビューのターン制バトルです
・職業は11職業あります。新規登録時は基本職のみに就けて、条件を満たすと転職ができます。
・レベルアップでもらえるポイントを割り振って戦闘に使用するスキルを習得したりステータスを成長させたりできる
・クエストは約30個
・装備は武器と防具2つ
・街は歩けません
・戦闘やメニュー処理などはウディタv2.02aの基本システムにいくらかカイゾウを加えたものに自作のシステムをいくつか乗っけています

ゲームの要素】
<キャラ育成>
・スキル(特殊技能)の習得は、レベルアップによって獲得できるポイントを使用することで行えます。
・取得できるスキルには、全員が取得できるコモンスキル、そして戦闘中に使用することができるスキルが、基本職は3~4個、上級職は7~10個程度存在します。
・転職は、条件となるステータスを満たすことで可能となります。早く転職したい場合は、コモンスキルを活用しましょう。
・基本職4職と上級職11職があり、基本職と上級職の組み合わせ次第でより強くなる職業もあります。上級職のなかには、基本職と同じ名称の職業が含まれます。
・装備箇所は武器1つと防具2つです。

<戦闘>
・よくあるターン制フロントビューバトルです(ウディタ基本システムver2.02aベース)。
・強力な補助効果を発揮する「場効果」が存在します。
・戦闘難易度はスキルの使用を前提としています。

<探索>
・よくある2Dのダンジョンです。森マップが多いですが、これは制作者の趣味です
・ダンジョンレベルという概念があり、ダンジョン内で戦闘を繰り返すことで上昇し、より強い編成が出現するようになります。

<その他>
・時間の概念が存在します。0~5時までを深夜、5~6時を早朝、6~8時を朝、8~18時を日中、18時~24時までを夜と区分しています。

配布はふりーむ(http://www.freem.ne.jp/win/game/13059)や
Googleドライブ上で行っています
https://drive.google.com/open?id=0BxNOdMNeFHcoWEdLZHVhRl92TGs)。
バグ修正の反映はGoogleドライブが最もはやいです。