投稿記事

ずんだ餅の記事 (10)

satofumi 2021/02/19 20:00

ハッピーずんだ餅 Factory の WebGL 版を作る(その2)

前回は PC 向けにつくったものを WebGL でコンパイルしたら、なんか動作がおかしいところまでを確認しました。今回はエラーメッセージを確認して問題を修正していきます。

やったこと

SRDebugger の適用

まずは、エラーメッセージを表示するために SRDebugger を適用します。実機(今回は Web ブラウザ)実行においてもエラーメッセージを確認できて助かります。

修正し忘れによるエラーの修正

SRDebugger で確認したところ、「Resources.Load() を使うべきなのに実ファイルアクセスのままだった」とか Resources.Load() で読み込むリソースに拡張子がついていたままだったとか、の問題でした。


多言語用のデータとかステージデータの読み込みが動作しました。良いです。

Ordin によるシリアライズ問題の修正

Odin による Dictionary をシリアライズしたので、この問題が起きていました。
https://docs.unity3d.com/ja/2018.4/Manual/ScriptingRestrictions.html
Ordin サイトのドキュメントを見て修正しました。
https://odininspector.com/tutorials/serialize-anything/aot-serialization


イベントシーンも動きました。良いです。

UI の位置ずれ


こういう微妙な位置ずれが起きていたので修正しました。
ただ、修正したのですがアスペクト比が想定と違うスクリーンで最大化したときに、UI が中央に寄ってしまう問題が確認できました。

↑おかしいとき、と正常なとき。
修正できなくはないんですが、とりあえず気にしないことにします。

今後の予定

そして、ここまでの実装でエラーが修正できて UnityRoom でも公開できました。良いです。やったぜ!
で、公開したら満足したので、このプロジェクトはおしまいです。次回は別プロジェクトの続きをやります。

次回の更新: 月曜日の 20時

satofumi 2021/02/17 20:00

ハッピーずんだ餅 Factory の WebGL 版を作る(その1)

1月くらいに作った「ハッピーずんだ餅 Factory」というゲームですが、WebGL 対応をして UnityRoom に置くことを目標に作業していきます。

やること

「ハッピーずんだ餅 Factory」というゲームはコンベアを配置して 2D 物理演算で移動する材料をゴールまで運ぶゲームです。


ちなみに、ダウンロード数はこんな感じです。

この 12回のダウンロード数のうち、8回くらいは私自身がダウンロードしたものです。まぁ、個人開発ゲーのダウンロード数とかこんなもんです。

で、このゲームを UnityRoom に置くために WebGL 対応するのが今回の目標です。

やったこと

UnityRoom のためのアカウントを作って、作品登録を行いました! やったぜ!
そして、ゲームの WebGL 版をビルドして動作確認してみました。「とりあえずゲームとして遊べない」状況なのがわかりました。


↑ぱっと見よさそう。やったぜ!


↑ロゴが日本語にないのに気づきました。多言語対応まわりが動作してない。


↑ステージ選択に使う情報が読み込めてなくてエラーになってるっぽい。


↑何かしらのエラーが起きて表示まわりの初期化で失敗しているっぽい。


↑ステージデータが読み込まれていない。

とりあえず実行して「やっぱり始めから WebGL 向けに作ってないと、後から対応させるのめんどいな」と思いました。しゃーないです。

今後の予定

現状では何かしらのエラーで動作してないのがわかりました。これらエラーは PC 上で動作させてるときには問題が起きないため、WebGL 版で問題を確認する必要があります。まずは、エラー内容を表示するために SRDebugger なんかを WebGL ビルドで使えるか試していこうと思います。多分、エラーメッセージが確認できれば修正は難しくないと思います。
Unity わからないこといっぱいですけど、がんばります。

次回の更新: 金曜日の 20時

satofumi 2021/01/01 20:00

ハッピーずんだ餅 Factory 開発(その8)

とりあえず完成させてリリースしました。いくつか気になる点は今後も修正すると思いますが、いったん開発終了です。やったぜ!

「ハッピーずんだ餅 Factory」の紹介ページ
https://mascot-apps-contest.azurewebsites.net/Works/565

この記事では、前回から開発したことの紹介と今後の開発予定について書きます。

ステージ作成

ステージの定義自体は YAML フォーマットのテキストファイルで行っています。ただステージのグリッド情報を手入力で行うのは面倒なので Tiled Map Editor を利用します。

仕組みを簡単に紹介すると

・Tiled Map Editor にタイル画像を登録した上で、ステージの配置を作る。
・設定ファイルと Tiled Map Editor のデータとを Python スクリプトでマージしてゲーム用 YAML ファイルを作る

です。


↑ステージ作成の様子とタイル画像


↑作ったデータをゲーム内で表示したもの

良いですね。

「ステージ作成&クリア確認」を繰り返して全12ステージを作りました。無料ゲームなのでこれくらい作ればじゅうぶんだと思います。

今回は、ステージやイベントのデータはゲーム exe ファイルのある Stage フォルダ内のファイルを読み込んで使うようにしてあるので、やる気があればステージの追加や改変が可能です。Tiled Map Editor で作ったデータを変換する仕組みや必要なファイルもいつか公開したいです。

エンディング作成

「みんながハッピーになる世界」と「ほんの少しの狂気」というイメージをミックスして、空からずんだ餅が降る世界なエンディングにしました。


満足できる良い出来です。

リリース作業

リリース用パッケージをビルドして気付いたんですけど、パッケージサイズが思ったよりも大きかったです。確認してみたら TextMesh Pro のための文字フォントがサイズの大半を占めていました。

Unity の Editor log より抜粋

Complete build size    207.3 mb
Used Assets and files from the Resources folder, sorted by uncompressed size:
 64.6 mb	 31.2% Assets/Fonts/SourceHanSans-Medium SDF.asset
 28.1 mb	 13.5% Assets/SimplePoly World/Models/Urban/Others/SPW_Demo Scene_Urban.fbx
 16.6 mb	 8.0% Assets/Fonts/SourceHanSans-Medium.otf
 5.0 mb	 2.4% Assets/GameMusicPack_SUITE/wav/EDM/edm_05_loop.wav
 3.6 mb	 1.7% Assets/GameMusicPack_SUITE/wav/Anime/anime_01_loop.wav
 2.9 mb	 1.4% Assets/GameMusicPack_SUITE/wav/Anime/anime_02_loop.wav
 1.8 mb	 0.9% Assets/Images/factory_background.png

これは悩ましい問題で、TextMesh Pro は文字列をかっこよく表示するものなのですが今回利用した Modern UI Pack という GUI コンポーネントで使われています。つまり、ボタンの文字列を日本語にしようとすると追加のフォントデータが必要になるのです。

本来であれば使う文字のぶんだけのフォントデータを追加するべきなのですが、多言語対応を動的に行いたい場合にはどの文字が使われるか確定しないので「使う文字だけ組み込んでおく」はできないのです。

悩ましいです。
まぁ、今回については「メニューの文字列は英語のみでいいや」と割り切ったので、後でこのあたりのフォントサイズを削減したパッケージを作ろうと思います。30 分で終わるゲームのダウンロードサイズは小さくしたいからです。

あと、一通り見直したら Steam に無料ゲームとして登録しようと思うのですが、Steam で公開するためには

・申請する(めんどい)
・敷金相当の1万円を払う(無料ゲームで売上がないので返ってこない)
・PV やストア用画像を作る(ものすごくめんどい、苦痛)
・許可が降りるまで待つ

という手順を踏む必要があって割と悩ましいです。
めんどいことはやりたくないのです。

Steam で公開するメリットとしては

・Steam Workshop 経由でのステージ共有ができるようになる。(実装すれば)
・実績が利用できる。(実装すれば)
・バグ報告用のフォーラムが充実している。
・宣伝しなくてもなんか遊ばれる。

などでしょうか。実際に Steam に申請するかは、また今度に決めます。

今後の予定

いくつかのタスクは行う予定ですが、いったんリリースできたので後はのんびりやります。

今後のタスク
・シーン切り替えにフェードイン、フェードアウトを適用する。
・材料の変換で気になった点があったので修正する。
・材料の挙動が PLAY のたびに異なるのをどうにかする。
・フォントの扱いを見直してリリースパッケージのサイズを減らす。
・ステージを自作する方法をまとめる。
・配布ページを作る。Steam に申請する。

なにはともあれ完成してリリースできて良かったです。楽しかった。

次回の更新について

今回のゲーム開発をして改めて思ったのですが、開発中の VR の PV 作成アプリという名のエディタ開発は正直苦痛です。

めんどうさ: エディタ開発 >>>>> ゲーム開発 >> デモ作成 > 企画

めんどうでなかったら既にそういうアプリがいっぱいあるよな、とも思います。本当に悩ましいです。打ち切るか完成させるかとを天秤にかけて悩んで結論を出せないでいます。

そして、打ち切るほどの決断ができなかったので、代わりに週3回の記事のうち1回を VR PV 開発、他2回を他の開発記事ということにします。

なにはともあれ、がんばります。


次回の更新: 月曜日の 20時

satofumi 2020/12/30 20:00

ハッピーずんだ餅 Factory 開発(その7)

私の心の均衡を保つために開発に着手した「ハッピーずんだ餅 Factory」ですが、だいたい出来上がってきました。良い感じです。真面目な開発をずっとやっていると、私はなんというか説明し難い何かの開発をしたくなるようです。

タイトル画面で作ったこと

・さびしいのでアニメーションする東北ずん子画像を追加した。
・ロゴが背景に溶け込むのでロゴ背景を追加した。
・ステージ選択のパネルを実装した。
・音量設定のパネルを実装した。
・クレジット表示のパネルを実装した。
・曲と効果音を適用した。




良いです。

イベント用画面の実装

クリック時の効果音はまだですが、指定したファイルのセリフを表示できるようになりました。クリック時の効果音はまだですが、リリースするために必要な実装は終わりです。


良いですね。

残りタスクの列挙

残りタスクとしては
・ゲーム画面での効果音の適用
・ゲームクリア時の演出の追加
・ステージを作って遊んで難易度調整する(12ステージほど)
・エンディングのシーンを作る
・全体的な見直し。
です。
もう少しです。がんばります。

次回の更新: 金曜日の 20時

satofumi 2020/12/28 20:00

ハッピーずんだ餅 Factory 開発(その6)

今回は、とりあえず動作していたステージまわりの残りを実装して、ゲームとして遊べるようにしました。良いです。

やったこと

・ゲームの操作まわりをだいたい作った。
・タイトルの作成に着手した。
・会話シーンの作成に着手した。


残りタスク

・ステージ選択を行うパネル。
・Tiled Map Editor で作ったステージデータを使えるようにする。
・ステージを作っていく。

もうひと頑張りです。
がんばります。

次回の更新: 水曜日の 20時

« 1 2

月別アーカイブ

限定特典から探す

記事を検索