討伐に行った剣士のお姉ちゃんが帰ってこない。
大丈夫、きっと寄り道でもしているだけさ。
ゴブリンなんかに負けるわけがないんだ。もうすぐ帰って来るよ
===================================
こんにちわん。
そんな感じで今日も制作進捗のお時間です。
しばらくは引き続きプログラムの内部実装、修正やリファクタ作業、Spineの機能作成をしながらバグと戦ってる感じです💪('ω'💪)
■BattleイベントとBattleManager周りの改修
ここで閉鎖空間戦が発生したから障壁を出して、
バトルイベント中はダメージ計算を止めて、
全滅判定はいつ入れて…
終了時の敵消滅のタイミングはイベント後かイベント前か…あっバグってる。
H攻撃死亡とHPゼロ死亡はパターンが違って……
んおー、わからん!
といった感じで条件分岐が入り乱れて、コード上で破綻なく設計するのがちょっと難しくなってきました。
コードベースだと実行時にどの処理をやっているのかわからなくなってしまうのでデバッグも複雑になってしまいます
なので戦闘処理の分岐判定とフローもBehaviourTreeに移行しました。
やはりノードを使ってコードの流れを可視化・整理できるのは大きいです。
BehaviourTreeだいしゅき…!
戦闘中や敗北イベントの演出分岐、リトライなどのフロー作成も合わせて進めています。回想でも同じ場所でイベント再開できるように予め設計を詰めておきたいですね
■加算トラック表現とゴムゴムのバグ
……?!
こいつ…伸びるぞ…?!
Spineの加算トラックを使うには下位トラックにキーがないとおかしくなってしまうのですが、Spineエディタ上でバグを確認できないため、破綻なく息遣いみたいな汎用アニメを適用するのがちょっと難しいですね。
加算アニメ作成の度に下位トラックアニメのボーンチェックを都度全て行うのは現実的ではなく、どうしたものかと悩んでいたんですが、SetToSetUpPose命令を挟むことでなんとか解決できました。
Spineフォーラムにはいつも助けられてますね…🙏
■2バイト文字バグ
Unityで使用しているカメラ処理がいつの間にかエラーを吐くようになっていたんですが、プロジェクトの一番上のフォルダに日本語文字が入っているのが原因でした。
2バイト文字でプログラムがエラー吐くケースは実際に遭遇したのは初めてだったのでやっぱり半角英数がセオリーなんだなと実感。
なんとか原因を特定できたので、冒頭の敗北イベント動画のカメラ処理ができました💪('ω'💪)
■リファクタ周り
過去の実装がだいぶ密結合していてテストやバグが発生しやすくなっているので、徐々に疎結合に改修しています。MasterやStore等、まだ知らない概念をドクトルさんに教えてもらいながら未実装の機能を作っていきたいと思います
他に文字列指定せずに現在のスキンを服ビリできるように改修したり
アニメのイントロとループ処理をするためのFlameLoopメソッドを作ったりなどなど。
いつも応援してくれてありがとうございます🙏
プログラム部分の地道な作業が続きますが、引き続き頑張っていきます!