unityroom用ゲームをitch.ioにも投稿してみる

## はじめに
※この記事は、[JOKEN Advent Calendar 2024](https://adventar.org/calendars/10283)の参加記事（OB枠）です。

こんにちは、オガワです。普段はお仕事としてXRコンテンツの開発やスマホアプリ制作をしていますが、趣味として[りばりば](https://x.com/ribariba_tori)という名前でゲーム制作活動もしています。

今回はゲーム制作に関するお話で、unityroom用に制作したゲームをitch.ioにも投稿してみるという内容です。

## unityroomについて
[unityroom](https://unityroom.com/)はUnityで作ったゲームを投稿できるサイトです。不定期でunity1week（Unity一週間ゲームジャム）が開催されています。

私も何度かunity1weekに参加してゲームを投稿しています。

## itch.ioについて
[itch.io](https://itch.io/)はゲームを投稿できる海外のサイトです。ユーザ数が多く、ゲームの有料販売も可能です。

## 投稿するゲーム
今回itch.ioに投稿してみるゲームは、以前unity1weekで作った「[親方！空から金貨が！](https://unityroom.com/games/rain-of-money)」というゲームです。

<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3621034/3d367ade-74b2-a57a-8cd5-f4b31a473c93.gif">

<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3621034/7cf705ee-1a00-06ea-7917-f7c4181b6ab3.png">

ゲーム内でunityroom専用のランキング機能を使っているので、このままではitch.ioに持っていけません。また、言語が日本語のみという点も修正したいです。

## やったこと

### ランキング機能
こちらのツールをお借りして、itch.ioで動作するランキング機能を実装しました。

https://yurinchi2525.booth.pm/items/6271478

### ローカライズ（多言語対応）
今回はとりあえず日本語、英語に対応することにしました。
Unity公式からLocalizationパッケージが公開されているのでそれを使います。
使い方はこちらが分かりやすいです。

https://robotcoders.net/2022/03/unitylocalization/

### フッターの削除
こちらの記事にあるように、ゲームをそのまま投稿すると画面サイズが合わずに見切れてしまいます。

https://bardaxel.jp/archives/665

解決策としてはWebGLビルド時に生成される`index.html`のフッター部分を削除すればいいのですが、これだとビルドの度にフッター削除をしないといけないので、カスタムテンプレートを使用します。

#### カスタムテンプレート
Unityのデフォルトテンプレートからカスタムテンプレートを作成、ビルド時にそのテンプレートを使用するように設定すれば`index.html`を毎回書き換える必要がなくなります。

デフォルトテンプレートは以下の場所にあります。

* windows
```
 C:\Program Files\Unity\Hub\Editor\<Unityバージョン>\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\WebGLTemplates\Default
```
* mac
```
/Applications/Unity/Hub/Editor/<Unityバージョン>/Unity.app/Contents/PlaybackEngines/WebGLSupport/BuildTools/WebGLTemplates/Default
```

テンプレートの設定手順は以下の通りです。

1. Unityのプロジェクトウィンドウで`Assets/WebGLTemplates`フォルダを作成
1. デフォルトテンプレートをコピーし、`Assets/WebGLTemplates`に貼り付け
1. 貼り付けたテンプレートの名前を変更して識別できるようにする（例: CustomTemplate）
1. `Edit > Project Settings > Player`で、貼り付けたテンプレートを選択

![スクリーンショット 2024-12-20 233122.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3621034/bc222a41-d0d8-cdb6-7287-e5d7c2ea0c03.png)



カスタムテンプレート内の`index.html`のフッター（とfullscreenButton関連）を消すことで画面が見切れることなく表示されるようになります。

```index.html
  ...
  
  <body>
    <div id="unity-container" class="unity-desktop">
      <canvas id="unity-canvas" width={{{ WIDTH }}} height={{{ HEIGHT }}}></canvas>
      <div id="unity-loading-bar">
        <div id="unity-logo"></div>
        <div id="unity-progress-bar-empty">
          <div id="unity-progress-bar-full"></div>
        </div>
      </div>
      <div id="unity-warning"> </div>
      <!-- <div id="unity-footer">
        <div id="unity-webgl-logo"></div>
        <div id="unity-fullscreen-button"></div>
        <div id="unity-build-title">{{{ PRODUCT_NAME }}}</div>
      </div> -->
    </div>
    <script>
    
      ...
      
      //var fullscreenButton = document.querySelector("#unity-fullscreen-button");
      
      ...
      
          // fullscreenButton.onclick = () => {
          //   unityInstance.SetFullscreen(1);
          // };
          
      ...

```

### itch.ioへの登録
これらの記事を参考にitch.ioでアカウント登録、ゲーム投稿を行いました。

https://kurokumasoft.com/2022/03/15/itch-io/

https://note.com/allegromoltov/n/n6834907cabd9

## まとめ
ということで、unityroom用に制作したゲームをitch.ioにも投稿することができました。

* [unityroom版](https://unityroom.com/games/rain-of-money)
* [itch.io版](https://ribariba.itch.io/coins-fell-from-the-sky)

itch.io版をプレイすると、ランキングが動作しています。

<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3621034/5c7c4273-d8d3-9649-dce0-461e61294bb0.png">

ブラウザの言語設定を変えてプレイするとゲーム内言語も切り替わることが確認できます。

<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3621034/c3c1e387-8f14-f1d3-c540-a995dc709b04.png">

<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3621034/09f7414c-d6e6-8743-9f78-4b70cc177904.png">

ちなみにitch.ioではダッシュボードでゲームのアクセス解析を見れます。

ゲーム投稿日が11/22で、１か月経った現在（12/21）の状況を見てみると、Viewsが47、Playsが15になっていました。ゲームページを見に来てくれた方の内、実際にプレイしてくれたのは1/3程度な感じでしょうか。

<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3621034/0162cdb6-1a65-d888-006e-dd31932bd846.png">

今回はitch.ioに投稿してみましたが、unityroom以外でも動くランキングの実装と多言語対応までできていれば他のサイトにもゲームが投稿できます。

unityroomだけで満足せず、こういう作業も面倒くさがらずにやっていきたいところです。