進捗 メッセージシステム編 #01

 obake   character   progress 

バージョンを0069へアップ

これからメッセージシステムを組み込む。

内部バージョンは 0067 をベースに実装を行う。0066 以前は最新版のアップデータを適用した GMS1.4 では廃止された関数を使っているため、これより前のバージョンを修正無しでベースにすることはできない。

0067 も現在のメッセージシステムを組み込む前段階で作成したプロトタイプを組み込んであるので、それらを削除してからじゃないと利用できないためちょっとややこしいから本来はベースにしたくなかった。しかし 0067 は廃止された関数を使っていない。

メッセージシステムの機能は大まかすでに完成していて、紙芝居程度だったら実現できている。そこから更に必要な機能を足していくのだけど、何が必要なのかよく忘れるのでメモっておく。

HTML5 での動作改善

ここへきて原因がわかってきたので、なんとか互換性を維持してメッセージシステムを作れそう。HTML5 動作できるかも。少なくとも GMS1.4 の最新版で file_text 関数系はやはり従来から確認されていた不具合も直っていたようだ。しかしその他の部分で微妙に非互換性があった。

JavaScript で文字数をカウントする際に、制御文字を一文字としてカウントするしないの違いがあるっぽい。

PC とか Android では制御文字の分を考慮して +2 値を足していた部分があって、ここは HTML5 環境だと +0 で良くなるっぽい。微妙な違いなのだけど結構重要で、文字列処理する際にはこの糞仕様っぽいものを考慮して作らないと非互換性バグが出ることが分かってきた。

メッセージシステムを組み込んで HTML5 動作できるのなら、パズルのゲームエンジンはすでに HTML5 動作が実現できているから HTML5 での動作に障害は無くなる。HTML5 で動かせる!

追加する予定の機能

  • キャラクタのアニメーションを切り替える機能

追加しない機能

  • バックログ

  • 早送り/巻き戻し

いわゆるノベルゲームだと快適に遊ぶための定型的機能として必須になるのだろうけれど?、今回は必然性を感じないので実装はしない。

インポート時の注意点

メッセージシステムをゲームエンジンへインポートする際の注意点。

  • マクロ → いわゆる定数だが、名前の重複注意

  • ユーザ定義関数とイベント用オブジェクト

ユーザ定義関数は最初からインポート用に作ってあるから関数およびインスタンス変数まですべて固有の識別子を利用してある。どこかで重複した識別子があった場合は実行中にエラーが出る。

フォント名やスプライト名・背景画像の識別子はメッセージ表示用のインクルードファイルに記述されているので、エラーが出てもインクルードファイルのソース側を変更すれば良い。

インポート成功

比較的簡単にインポートは完了した。0069 は動作テストも完了。ここで内部バージョンを 0070 へアップ。

今度は 0070 をベースに追加機能実装を行う。

メモ

ユーザ定義関数、Check_ScreenAspectS の処理に不具合、ウィンドウサイズの求め方に問題あり、暫定的な回避処理を施したけれど計算式を見直す必要がある。

Line 69 ~ 72 あたり

キャラクタのサイズについて

縦 1200 px 程度にするべきという意見。

縦1200pixelのサンプル

去年設計していた時は 1200 px だとキャラクタ小さい気がしたのだけど、実際に文字とか入れるスペース考えると 1200 px 以下が都合良さそう。テクスチャサイズを考えると 1024 px の正方形に収めるのが効率良いのだけど、spine でまとめるにしてもうまく収まるかどうか。でもやってみる価値はありそう。

全スプライトの Spine 素材を 1024px に収める仕様で作れば作業しやすいかもしれない。




次へ

前へ