【Unity】Unity1Week初参加者に向けたアドバイス

# 背景
Unity製のゲームを投稿できるWebサービス「UnityRoom」ではたまに、一週間でゲームを作り公開するイベント「Unity1Week」が開催されます。私は数回イベントに参加し、開発したり他の方の作品を遊んだりして色々な知見を得ました。本記事では**私の知見をUnity1Week初参加の方に向けて紹介します。**
**※先に [Unity1週間ゲームジャム](https://unityroom.com/unity1weeks) を読み通しましょう（特にヘルプ）**。

# 企画
### 情報収集
Twitterで [#unity1week](https://twitter.com/search?q=%23unity1week) と検索すれば、他の方のアイデアや進捗を見られます。どのような調子でゲームを作っているか見て参考にしましょう。その際、**ネタやアイデアが被っていても気にしないように**しましょう。同じようなゲームでも作者によって個性が出るので問題ありません。
また有用な情報を発信しているTwitterアカウントやYoutubeチャンネルを見つけて登録しておくと、知見が広がり柔軟に動けるようになります。私は気が向いた時に[ひろはす ゲームクリエイター養成所](https://www.youtube.com/channel/UCmrZx6L5NT_onReOmWhO3ug)を視聴しています。
### アイデアが出ない
既存の好きなミニゲームを作りながら情報収集し、ミニゲームに合うアイデアをじっくり考えていきましょう。ミニゲームは仕様変更が比較的簡単で面白さもそこそこ担保されます。たとえ合うアイデアが出なくても提出してしまいましょう。
### タイトルは分かりやすく
Unity1Weekでは沢山のゲームが一斉に公開されます。ユーザーはその中からゲームを選ぶため、ラノベのように**内容が分かりやすいタイトル**を付ける事をおすすめします。一覧表示では長いタイトルは省略されるので、見せたい文言は最初に持ってきましょう。
### ポイント
・ **説明文を読まずに遊べるゲームを目指しましょう。** 単純明快なルールにしたり、チュートリアルを用意したり、オブジェクトの配置で誘導したり等の方法があります。
・ 短く遊べるようにしましょう。長いと途中で離脱されます。スコアアタック系は繰り返し遊ぶことを考えて～60秒ほどにするといいでしょう。
・ 音量調整機能をつけましょう。複数のゲームを連続して遊ぶ人が多いのであると便利です。音量調節機能がある画面ではBGMやSEを流して実際に音量を確認できるようにしましょう。

# 開発
### はじめに
UnityRoom で対応している Unity のバージョンを確認しましょう。
Unityのプロジェクトはバージョンを変更すると不具合が出たりするので、はじめに確認しておきましょう。UnityRoomにログイン > ゲームを登録する > WebGL設定 > Unityのバージョン から、投稿できるUnityのバージョンを確認できます。
次に Platform を WebGL に変更しましょう。
File > Build Setting から変更できます。完成してから変更すると結構時間がかかるので早めに変えておきましょう。
![キャプチャ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307985/825c04c3-12c3-51d8-8f35-fbe63999c5e2.png)
### WebGL では日本語表示に一工夫必要
デフォルトのArialではWebGLで出力するときに日本語が表示されません。[Noto Sans CJK JP](https://www.google.com/get/noto/#sans-jpan)等を使いましょう。
Text Mesh Pro 等で日本語を表示する際は、 [Adobeが定める日本語の文字コレクション](https://github.com/kyubuns/Adobe-Japan1-List/blob/main/Adobe-Japan0.txt) などから文字コード範囲を指定しましょう。
### WebGL のビルド ＆ UnityRoom へのアップロード
環境が変わって不具合が出る事はよくあります。**最低限遊べるようになったら一度ビルドして、UnityRoomにアップロードしてみましょう。** 中途半端でも大丈夫です。公開状態ははじめ、非公開になっています。また、Unity1Weekは多少遅刻しても問題ないので、間に合わなくても諦めず頑張って投稿しましょう。
### スマホ対応
スマホ操作に対応すれば閲覧数や評価、コメントを多くもらえます。マウスクリックやButton入力のみのゲームであれば対応を視野に入れて開発してもいいかもしれません。
同時入力を多用するゲームで Button を使うと不具合を起こします。 [Input.touches](https://docs.unity3d.com/ja/2018.4/ScriptReference/Input-touches.html) と EventSystem.current.RaycastAll を組み合わせ、Buttonの名前を取得して入力を判定すると楽です。
標準のInputFieldはスマホでの入力ができないので [【Unity】WebGLで日本語入力を行う](http://tsubakit1.hateblo.jp/entry/2016/06/02/233000) を参考にしましょう（最近はできるようになっているかも？）
## 簡単にクオリティを上げる
[Unity臭](https://www.google.com/search?q=unity%E8%87%AD)で検索すると色々出てきます。簡単に実践できるものが多いので試していきましょう。下記は私が良くやる手法です。
### パーティクル
アイデア次第で色んな用途で使えます。見た目が寂しい時に使いましょう。
* 大量の雲や星、ビルや家を配置して横移動
* プレイヤーに付けて砂ぼこりを演出
* ShapeをBoxにしてScene全体を覆うと幻想的
### 効果音
効果音再生時にスクリプトから pitch を Random.Range(1.1f, 0.9f) 等にして音程をバラつかせ、変化を付けましょう。更に、同じような効果音（例えば足音）を複数用意し、その都度ランダムな効果音を再生すれば、より賑やかになります。効果音は [効果音ラボ](https://soundeffect-lab.info/) や [OtoLogic](https://otologic.jp/) といった効果音配布サービスから探せます。
### カメラシェイク
カメラを揺らすだけで手ごたえや衝撃を感じられるようになります。[ScreenShake.cs](https://github.com/celechii/Unity-Tools/blob/master/InputManager.cs)等を利用しましょう。カメラシェイクを考慮して画面外の風景に余裕を持たせると安心です。縦揺れに比べて横揺れは酔いやすいので、横揺れの導入は慎重に検討しましょう。
## 備考
### 効果音のアタックノイズが聞こえない問題
Unity の WebGL ビルドで音声は AAC ファイルに変換され、その影響でアタックノイズの音量が小さくなります（[参考記事](https://note.com/metaformingpro/n/ne6f34829a4d9)）。
この問題は音声の先頭に僅かな無音を入れると解決できます。
音の遅延が気になるかと思いますが、アニメでは音を遅らせた方が自然だったりするので一概に悪いとは言い切れません（[参考記事](https://note.com/oshibataku/n/n2dcdd7968db1)）。
リズムゲームなど最速で鳴らしたい方に関しては、[無音の長さだけ audioSource.time を進めて再生すると即座に再生されます](https://note.com/metaformingpro/n/ne6f34829a4d9#25f13934-e6b4-49d4-9d19-c869543ff131)。

## UnityRoomの各種設定について
### アイコン
ゲームの顔になるので、よく考えて作りましょう。クリックされやすくなる要素を紹介します。
![textIcon.pn_g.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307985/b09a8256-96d5-4c40-e283-a0e6e8c61870.png)
**文字**
タイトル画面のスクショでも十分です。インパクトがある文字列にしましょう
![imageIcon1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307985/61b8b24d-75d0-6d03-b514-0856b0ec103f.png)![faceIcon.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307985/d06dca15-d69c-4bd7-4418-6c73566c2c3d.png)
**顔イラスト**
顔アップの方が目立ちます
![designIcon.pn_g.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307985/88293462-62ce-eb92-6d82-fdcad7c52b66.png)
**デザイン**
デザインの凝ったゲームは中身もしっかりしているように受け取られます
![medatu_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307985/4bed05d9-e2d3-c8a9-4ed5-c1f4ef2be683.png)![_meda2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307985/a4ceef06-91a4-d08f-69f7-fa2db765eb28.png)
**原色**
原色は目立ちますが安っぽく見えます。原色に近い色でアクセントを足すと質のいいカジュアルゲームっぽく見えます
![gif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307985/9d0a25c4-50c0-be69-6db1-978b16cd5245.gif)
**Gif**
動くアイコンも作れます。[ScreenToGif](https://www.screentogif.com)等でゲーム画面をキャプチャしましょう。512kbまでなので、アイコンサイズやフレーム数、色数を減らしてやりくりしましょう。
### 説明文
迷ったら下記の順に書きましょう。
1. 一文でゲームの説明（例：磁石の力を使って進む2D横スクロールアクションゲームです。）
2. 簡潔なルール説明（任意）
3. 攻略情報（任意）
想定プレイ時間を入力する際はゲーム初心者がプレイした場合で考えましょう。開発者はプレイが上達し過ぎて感覚がマヒしています。
### スクリーンショット
Windows10の場合、スタートボタン + Shift + S を同時押しするとスクリーンショットを撮れます。
スクリーンショットを取る事を考えて、ゲームで絵になる場面を用意しておくといいでしょう。
### 操作方法
**箇条書きで簡潔に書きましょう。**
例
　←→：移動
　Z：ジャンプ
### タグ設定
思いついたタグ候補を検索して、一番クリックされそうなタグを使いましょう。
例えばスマホ操作に対応しているゲームを作った場合「スマホ」「スマホ対応」「スマホ操作」「スマホ操作対応」辺りで検索します。検索結果から、ゲーム数や人気のあるゲームの閲覧数等を参考にタグ付けしていくと見てもらいやすくなります。
「初心者」タグを付ければ大目に評価してもらえるかもしれません。
### イベント参加・公開設定
応募してから公開設定で一般公開しましょう。先に公開設定をいじるとTwitterのBotがゲーム情報を呟いてしまいます。

# 公開後
Unity1Weekは公開してから後半戦が始まります。他者の作品を評価しコメントすると自身の作品も評価やコメントがもらいやすくなるので、ドンドン遊んで短期ゲーム開発の教養を得ましょう。
コメントでは不具合や改善点が報告されることもあります。早めに対処しましょう。沢山のゲームを素早く公平に評価するために、評価基準を設けると楽です。

### 私の評価基準
**楽しさ**
１．遊ぶことができない
２．遊べるけど面白くない
３．遊べる
４．また遊びたいと思える
５．誰かに教えたくなる
**絵作り（UI）**
１．情報が伝わらない
２．情報は伝わる
３．絵になるけど見づらい
４．絵になる
５．絵になるし見やすい
**サウンド**
１．なし
２．BGM か SE の一方がある
３．BGM と SE がある
４．ゲームに合っている
５．耳に残る
**操作性**
１．操作が困難
２．慣れが必要
３．遊べる
４．快適に遊べる
５．説明不要で快適に遊べる
**雰囲気（統一感）**
１．不快に思う
２．いびつ
３．世界観は伝わる
４．統一感がある
５．印象に残る
**斬新さ**
１．既視感があり面白くない
２．既視感
３．斬新だけど面白くない
４．斬新
５．斬新で面白い

### ランキング
ゲーム公開から1週間後にランキングが発表されます。ランキングの部門は　総合、楽しさ、絵作り、サウンド、操作性、雰囲気、斬新さ　の7つです。好成績を目指すなら、自分自身のゲームを評価しながら作り、各評価が4を超えるようにしましょう。一つの要素に欠陥があると他の要素もついでに評価を下げられがちです。
# おわりに
Unity1Weekは短い期間でクリエイターからの感想がもらえる、初心者におすすめのイベントです。
破綻したゲームを投稿する人や、1日で作って投稿する人もいるので、気楽に参加してみてください。