投稿

ウディタで「次イベントの予約」をする場合、一つずつしか実行できないので注意

イメージ
並列処理を複数動かしたりしていると、↑のような「次イベントの予約」が、おなじ処理フレームで複数実行されたりする。

ところが、ウディタでは、最後の「次イベントの予約」しか実行されない。

例えば・・・
並列コモンAで「次イベントの予約A」、立て続けに、並列コモンBで「次イベントの予約B」が実行されていると、「次イベントの予約A」が、「次イベントの予約B」に上書きされて、「次イベントの予約B」しか実行されない。

どっちかの「次イベントの予約」の前に、1フレームのウェイトを仕掛けることで 、こうした競合は回避できた。


状態異常の管理

イメージ
基本システムのデータ管理は厄介。
キャラデータが、戦闘中のデータベースと、移動中のデータベースで分けられている。
それがさらに、計算前のデータと、装備やバフ・デバフなどを計算した後のデータに分かれ、
合計4つを管理しなければならない。

状態異常について。
SRPGモード中は、移動中のデータのみを使うつもりだったが、
戦闘中のデータにしか格納できない情報もあって、混在する形で保留してた。
もちろん、こんなデータ管理してたらろくなことがない。
案の定、その仮設状態だった箇所から、状態異常関係のバグが噴出。

仕方なく修復したのは次の3つ。

・状態発生時の演出 ・ステータス画面などへの表示 ・ターン数による状態自然回復
まだ気に入らない部分はあるが、一応、「見た目上は」まともに動くようになった模様。

AIで団体行動

イメージ
ある本によると、式でワケが分からなくなったら、具体例を当てはめて考えればいいという。
コードにもそれがいえるのかなと思ってデバッグエイドを強化しまくったら、
なんとかAI面の欠陥は解消された。
これで、ピンチのときは自己回復、回復後に再出撃、というAIが完成したことになる。

画像は、隊長機にほかの隊員が密集してついていく様子。
敵対ユニットが射程内に来ると攻撃に移る。
来なければ、隊長についていく。

以前は、この処理すらもうまくいってなかった。
最小射程より先に踏み込ませない仕組みのところでミスがあったのを見つけ出したおかげで、ここまで来れた。

今回は、新たにデバッグエイドを導入した。
それは、AI演算の途中で、決定キーを押した状態だった場合に、処理を途中で止めて、データを表示する、というもの。
これにより、目的の場所でだけ処理を中断することが可能になって、格段にデバッグしやすくなった。

AI面の問題はこれでひと段落しそうです。


数ヶ月のブランクの間、じつは某所に入り浸って、システムを組む練習ばかりしてたのですが、なんとか実を結んだのが今回の成果。
この調子で、イベントやキャラクターの作成も進めていきたいものです。

AIの深刻な欠陥

やりたいこと:
回復アイテムを持った敵AIは、損傷度が一定に達すると、ほかの敵AIユニットに合流しつつ、そのAI自身に回復行動を実行する。

いまの状態:
回復アイテムを持った敵AIは、損傷度が一定に達すると、ほかの敵AIユニットに合流。そこまではいいが、回復行動は、合流した敵AIに対して実行されてしまう。

まずAIのシステム自体がかなりの規模になってて手に負えない。
とりあえず可読性をよくする改造をところどころに施してみるも、いまだに原因すら特定できてない。
おまけに、そのAIシステムが手抜き工事すぎてバグだらけ。途中で見つけたバグを退治してるうちに、力尽きたり、その日が終わったり・・・


そんなこんなで数ヶ月。
これ、完成するのか・・・???

ダメージ床

イメージ
先延ばしにしてたシステム部分。
画像は、地形によるHPダメージとSP回復が同時に起こっている様子。
状態のターン処理の、HPSPスリップ値を計算してる部分に、地形効果ぶんを上乗せして実装した。
状態異常のIDを地形にもたせるところまでは設計できてたけど、そこで頭がパンクして進めてなかった模様。

このほかにも、ユニット画像の一時変形もできるようになりつつある。
これでキャノン撃つときだけ、キャノン展開した機体画像になったりできる。


最後に、全体の進み具合を振り返ってみる。
・マップの敵配置がほぼ完成
・シナリオ進行とパラ設定については、欠陥をきにせずたたき台をつくって、それをベースに改造しまくる作戦で製作中。
・ユニット、アイテムについて、パラメータのベースを作成。全ステージ分のたたき台がそろった。
・味方機体強化、店舗などアイテム入手のルールづくり
・使用素材の整頓、連絡先確認
・バグ修正

戦闘マップ数3、ステージ数7を予定。今年じゅうに完成するといいな。

バランス調整中

イメージ
あけおめことよろ。
2014年もマイペースでいきます。


本題。ステージ製作をやってはみたが・・・
敵AI全員に突撃を命じた結果↓

右方向の広範囲に散開してた敵たちが、一挙になだれ込んできた。

ユニット数=ターンあたりの行動可能回数。なので敵7がアクティブなら、1ユニットが7回攻撃を受けることになる。そのため数で劣るプレイヤー側はジリ貧に。
そのほか、敵フェイズの時間もムダに増大し、マップも広く使えなくなる。

ただのガン攻めではあまりおもしろくなさそう。

仕様策定中

・格闘攻撃手段にレーザーソードなるものがあったが、そこにEN消費しない通常攻撃、ENを消費する必殺技の両方を実装した。
・射撃武器で、砲弾を持ち歩かなくても全種類撃てるようにした。
・装備時のパラ変化に加え、攻撃使用時にも個別にパラ変化するようになった。こうすることで、どの武器からでも、共通の技能を使えるようになったし、サンプルのミニブレイドみたいな火力過多を心配した配慮も気にしなくてよくなった。

この辺は作ってから変えたりすると、設定したアイテムパラメータすべてに影響してしまう。かといって慎重になりすぎると、次のウディフェスに間に合うかどうかわからない。

悩む・・・