プロジェクト4進行中(2)

今回は本題のみ、タイトルの通りプロジェクト4は未だ進行中。
17日までに終える予定と前回書いたけど……予定変更、12/8まで当面進めるということで。

延ばした理由はやりたいことを前回増やしたのもあるけど、
何よりジョーカースクリプトの取り回しが色々と難しくもうちょっと時間が必要なため。
ミニゲームにADVパートを重ねるだけでも、最悪12/8までですら終わらないかもしれない。

<この1週間でやったこと>
・WebGL対応
・jumpタグ等でScene遷移する際の遷移先シーン名をプロパティ化
 ⇒これによりSceneのbranch化が可能に
・バックログのテキスト表示が正しく行われていなかった問題を修正

……これだけである。
ジョーカースクリプト、というかUnityの画面デザインにめっちゃ手こずってるのが原因。
普通にドットバイドットでデザインさせてくれてあとは解像度毎に拡縮してくれればいいのに、
UnityはどうにもuGUIで自動レイアウト推しみたいでその概念がなかなか理解できなくて難航中。
まあ、そんな感じで難航しつつも諦めずにプロジェクト完了に向けてプログラミングを進めていくよ!

以下、ジョーカースクリプトを二週間ばかり弄り倒しての感想
<良い点>
・とりあえずUnityでADVパートを実装したいならこれが一番手っ取り早い。
 やりたいことの八割方は実現できると思う。
・(プログラマから見て)スクリプトが非常に書き易い、分かりやすい文法体系。
・オープンソースなので改造し易い。
・無料、チーム開発において1Unityに1ライセンス要らないのは素晴らしいと思う。

<悪い点>
・最終更新から二年近く経過しており作者がどうやら放置してるくさい。
 ⇒AbyssLibを放置してる僕の言えたことではないが。
・利用している開発者が少ないためかバグが目立つ。
 しかもサンプルを実行するだけで明らかに分かるバグ。1件見つけて直したよ!
 なんでバグ発生時に例外から解析するプログラマが最低1名はいないと使えない。
 多分そこがネックであまり使われない結果バグが目立つという負の連鎖なんだろう多分。
・ソースコードのコメントアウトが目立ちコードが汚い。
 バージョン管理されているのか?と疑問に思う。実行されないコードとか普通にあるんだが?
・バックログが壊滅的にいけてない、UIもADVパートが完全に独立していることが前提の設計。
 ⇒バックログを開く度にバックログに既読テキスト全部が書かれるというバグあり。
  なんでバックログを開いた回数だけ同じ文章が重複するという……。
  あとUIが画面占有する前提なので画面の一部にADVパート出すとなるとかなりの修正が必要。

……なんだか悪い点ばっかり多く書いてる気がするけど、まあその悪い点に今直面して対処してるんだから仕方ないね。
で、使うべきかと聞かれれば……ノベルエンジンを一から作るよりはずっといいんじゃないかな、うん。
少なくともプログラマがおらずノベルゲームを作るのには向いてない、そのためにUnityを勉強するのも馬鹿らしいし。
既存のツール(同作者のティラノスクリプト、NScripterや吉里吉里)を使うのがノベルゲーム作るには良いと思う。
バグが出ても対処できて、かつノベルゲームでなく一部ADVパートのあるゲームになら需要はあるんじゃないかなと。

Unityの有料アセットに「宴」ってのがあって、あっちは有料だけにより性能がいいみたいだけど、
シナリオ作成にExcelをコンパイルする、って仕様だったんであっちは使わない。Excelをコンパイルっておま……。

<これからやろうと思うこと>
・ジョーカースクリプトのUI改善、具体的には以下↓
 ⇒現行設計だとメッセージウインドウとメッセージ枠のみuGUIになってる。
  これに加えて発言者名もuGUI化する、というかこの辺はUnityでデザインできなきゃ駄目でしょ。
  各種ボタン(セーブ/ロード/オート/スキップ等)についても同じこと言えるかもしれないけどそっちは一旦保留。
・バックログの修正
 ⇒画面解像度に対応してリサイズされない問題を修正する。
・ADVパートを画面の一部として使用できるよう変更
 Panel使ったりSpriteRendererでの表示座標や拡縮弄ったりして何とかするんだと思う多分。
・バグ修正
 少なくともオート/スキップボタンを使用すると配列外アクセス例外が発生するのは間違いないんで直したい。
・あとは前回にも書いたマルチシーンとかxLua連携とかプラグインとか

そんな感じであと一ヶ月ぐらいかかるんじゃないかなぁ、あとぽえ動画も作らにゃ……。