前々から関心のあった海外のゲーム投稿サイトitch.ioに乗り込むべく、自作ゲームを準備した記録です。
日本語でも投稿できるものの、せっかくなら英語版を投稿したいなと思っていました。言語が必要ない簡単なゲームならハードルが低いかなと思い、9か月前にunityroomで公開したミニゲーム、「ペンギンパワードライブ」を多言語対応してみました。また、この数か月で色々な成長があったため、このゲームの致命的な音ズレ問題にも立ち向かってみることにしました。
ゲーム↓
公開時の記事↓
目次
多言語対応
拙作「Check in Chicken」の各種配信のおかげで英語の勉強が少しできたと思います。しかし自信が無いのでDeepL先生に頼ろうかなと思います。Google翻訳さんも併用します。ChatGPTさんもいいですね。
ペンギンパワードライブは名前のわりにシンプルなエンドレスランゲームで、言語に頼らずににプレイすることが出来ます。開幕時に表示されるフレーバーテキストが30種類程度用意されています。今回それを多言語化してみます。操作に関わる部分ではないので気が楽です。
中国語にも対応したいのでCJKフォント(中・日・韓の文字入りフォント)を使うことにしました。
Excelに一覧表を作って、それを「|」や「=」などの本編中で使わない記号で区切るようにTEXTJOINで結合して、UnityにString変数として入れて、Splitで切り分けて取り出して使っています。もっと楽な方法もありそうですし調べていないので完全に自己流です。ローカライズのアセットをいくつかチェックしてみたものの、この方法に慣れてしまったので未確認です。
というわけで多言語対応は割と簡単にできました。ほぼガバガバ機械翻訳ですが、英語・中国語・スペイン語、そして原作版:日本語に対応。すごい!
改修
このゲームは2023年の2月に公開しました。初めてUnityでゲームを完成させたのが2022年の9月ですし、今も色々分からないことだらけですが、タイムラインの導入やボタンの挙動の改善などが出来るようになりました。
音ズレ
致命的な音ズレ問題がありました。同時に8音再生していて、そこが大切なゲームなのでズレてしまうと台無しです。パソコンでは起こりませんでしたが、スマホやタブレットだとガバガバでした。
当時は使い方が分からなかったタイムラインを使ってみました。これで多少は音ズレ問題が解決するのでは。テストプレイ時も安定感がありました。
……と思ったのですが、途中で音が途切れるというバグが発生(一部のオーディオトラックが急に鳴らなくなって止まったままになる)。タイムラインのフレームレートを下げたり、OGGファイルの品質を下げたりしたものの解決せず。最大再生数を確認したり、リソースモニターやブラウザコンソールを見てもよく分からず……。
難敵です。もう泣きそう。数か月前に音ズレが直らず泣く泣くそのまま公開したときのほうが安定していたかも。
結局タイムラインを使う方法は諦め、元の挙動に戻しました。ただ、曲を短くして、品質は100にしました(品質を上げてみたほうがいいとChatGPTさんが言ってました)。音声ファイルをWebGLにオーバーライドする設定にしてみたところ、MusicRoomの始まりに鳴るノイズが軽減された気がします。→と思ったらノイズのタイミングが遅れただけでした。どうして……。
ループしたときに一瞬途切れるようになってしまいました。以前は予め3回くらいループした曲を再生していて、根本的な解決にはなっていませんでしたがここまで顕著ではありませんでした。またその形式に戻したほうがいいのかも。でもサイズが大きくなると音ズレしやすいのかも? なかなか上手くいきませんわ……。そこまで気にならないかもと思いつつ、私は気になるので負けです。
ボタンの操作性
UnityのUIのボタンは、ボタンを押したときではなく離したときに動作するので、あまりアクションゲーム向きではないと最近知りました。このゲームではキーボード操作が基本ですが、一応スマホなどでも遊べるように画面の左右をタップで遊べるようになっています。画面に大きな透明ボタンを2つ配置していたのですが、今回それを削除しました。代わりにOn Mouse Clickでクリックの有無を取得し、クリック位置のX軸が画面サイズの半分に対して大きいか小さいかを判定することで操作できるようにしました。オブジェクトを置かなくてもクリックを判定できることを今回知りました。便利!! クリック位置にパーティクルを飛ばすやつもやってみたい。
あとクリックとタップは厳密には違うみたいです。私にはまだ難しかったです……。
フレームレート上限の設定
環境によってはFPS上限を設定しないとUnityのゲームは重くなってしまうようなので、Set Target FrameRateで上限を60にしました。
モーションブラーをオフ
統計情報を見て、モーションブラーがかなり重いことが分かったのでオフにしました。演出を盛りたいけど今は技術が足りません……。
フォント軽量化
必要な文字だけフォントアトラスに含めて作り直すことでディスクサイズの軽量化を図りました。すると「フォントにアンダーラインが設定されていない」という軽微なエラーが出るようになってしまいました。以下の記事により、文字に「()_」を含めることで解決しました。一体どういう目的のエラーなのでしょうか……。前からエラーが出て気になっていたので助かりました。
FMODエラー
ブラウザテスト中にコンソールに大量に出て来るエラー。エディターが何度かクラッシュしたのもこれが原因ぽいです。
このUnityフォーラムを見るに、WebGLのサウンド関係は本当に色々大変なんだなという気持ち……。
2022.3.11f1以降で修正済みとのこと。2021のバージョンのほうがビルドが高速で気に入っているのですが、新しいバージョンのほうがこういうバグが修正されているので良さそうです。
エディターを新しくしたらこのエラーは出なくなりました。解決!
結局
多言語対応はほとんど問題なく出来たものの、音ズレ問題が解消できず、引き続きunityroomのみで公開にします。itch.ioは遠かった。
このまま投稿するのはちょっと申し訳ないし、なんならunityroomで一般公開しておくのもちょっと申し訳ない気が……。解決法が見つかればいいのですが……。
メモリの問題なのかも……。学ぶことが多い……。
おわりに
また他のゲームでitch.ioに挑戦したいと思います。日本語でもOKらしいですが、やっぱり多言語対応したいし、ここ数か月で色々成長した(と思っている)ので、過去のゲームをもう少し遊びやすく直せるんじゃないかという気持ちです……。今回はあまり上手くいかなかったので反省しています……。
あと今回unityroomに多言語対応のタグはあるのかなと思って探してみたら人気アセット一覧のページを発見。ここ1年ほど使わせていただいているサイトなのに、こんなありがたいページがあることを知りませんでした。感謝感謝。そして1位はやっぱりDotween。すごい。
制作から離れて勉強する時間が必要なのではと思いつつ、何か作ったほうが成長出来る気もするし……。1年前に比べて出来ることが増えたものの、全然終わりが見えません。終わりなんてないのかも――ポエム終わり。
追記:やっぱり投稿してみました
完全な状態にするのは難しいし、いつになるか分からないのでとりあえず投稿してみました。Done is better than perfect. 更にニフクラのサービス終了を受け、ランキングもなくしました。限りなくシンプルです。
ダッシュボードのメタデータから対応言語を選べるので4か国語追加。スペイン語はラテンアメリカとヨーロッパ?版があり、機械翻訳なのでよく分からなかったのですが、ラテンアメリカのほうが使用人口が多いとChatGPTさんが言っていておすすめされたのでそちらを選択しました。
勢いだけで投稿したのでこれから問題があればまたその都度対応したいと思います……。
Done is better than perfect.の精神を思い起こさせてくださった記事↓
思いがけぬ幸運
こちらの神作品、unityroomで遊んでクリアできたものの、ギギヌゴニが何なのか分からず、本当にクリアできたのかもわからずモヤモヤしていました。モヤモヤというか余韻でしょうか。悪いものではないです。
itch.ioのトップページにこのゲームがピックアップされていて、そこの大盛況のコメント欄から攻略情報などを得ることが出来ました。感謝感謝。でも結局ギギヌゴニが何なのかは分からないし、本当にあれでクリアだったのかも分からない……。でもあの弾幕シーンに入ったら戻れないので、あれが正しいエンディングなんだろうなとは思う。ギギヌゴニが何なのか分かった方はご連絡ください。