Machio_Kinniku’s diary

自分の身の周りで起きているありとあらゆることを書きます。

Unity1Weekに参加したら技術力が爆上がりした話

お久しぶりです。マチオです。

今回は先日(2020/8/10~8/16)開催されていた、Unity1週間ゲームジャムというイベント、通称「Unity1Week」で制作したゲーム「VirusBuster」の開発において、やったコトと考えたコトを振り返ります。

 今回のお題は「ふえる」でした。記事執筆の現時点では500作品以上ものゲームが投稿されています。

制作したゲーム

クリックでウイルスをやっつけるゲームです。

ランキング時の総投稿数490のうち、雰囲気の項目で29位、絵作りで47位でランクインすることができました!

プレイしてくださった方、ありがとうございます!

Githubリポジトリはこちら

github.com

 

f:id:Machio_Kinniku:20200905131435g:plain

ゲームシーン

f:id:Machio_Kinniku:20200905131505g:plain

ゲームオーバーシーン

 

結論

  • 是非ともUnity1Weekに参加するべき!
  • 知識と技術が身に付き、短期間で大きく成長できる!
  • 相互評価できる良い機会
    →自他共にゲームが必然的にプレイされる環境は貴重、あと単純に嬉しい
  • 参加目的はしっかり考えよう
    →何故参加するのか、適当でも良いですが固まってると、詰まった時が楽です

一番大事にしたいコト(目標)を決める

Unity1Weekに参加するうえで、自分が何を一番大事にしたいのか、何に重点を置いて制作を進めたいのかを決めました。

ランクインを目指すのか、新しい表現に挑戦するのか・・・

自分は「期間内に形にして提出すること」を大事にしたいと決め、無事達成できました。

これを心にとどめておくことで、制作していくうえで大きな手助けになります。

自分は制作中に「この実装が時間かかる!」や 「この表現したいなぁ」など、様々な要素が出てきました。しかし、一番大事にしたいコトの弊害となるのであれば、手をつけないのがベストです。

目標達成のために、とにかくハードルが高いものは、やりたくても後回しにしたり、「まぁいっか!」で済ませることができました。

 

Unity1Weekをどう捉えるか

Unity1Weekとは何か?

Unityを使って1週間でゲームを作るイベントです

更に詳しくはUnity1週間ゲームジャム公式サイトのゲームジャム概要に書いてあります。

 1週間は7日なので、7×24時間=168時間あります。勿論、この時間をフルに使えるわけはなく、人それぞれ可処分時間に差があります。

期間内に提出できる人もいれば、遅れて提出する人もいます。

クオリティではどうしても複数人で制作している人たちには及ばないかもしれません。

不平等に多少の不満を感じる人もいるかもしれません。

 ここで重要なのが、メチャクチャ気軽に、楽に、参加できることです。

個人的には"ゲーム作りを楽しむコト"を忘れないようにしたいと思っています。

 

制作の流れ

  1. 一番大事にしたいコトを決める
  2. 制作順序の下調べ
  3. 企画を考える
  4. 実装
  5. 期間内に形にして提出
  6. 機能追加やリファクタリング
  7. 結果発表から反省

1. 一番大事にしたいコトを決める

前述の通りです。人それぞれなので縛られる必要は全くないと思います。

ご参考程度に・・・

 

2. 制作順序の下調べ

どのような流れで制作していくのか、お題発表前に整理しておくのが良いと考え、大体のスケジュールや情報を前日にまとめました。

まとめた内容としては以下の通りです。

  • Unity1Weekのルール(期間やビルド形式)
  • ゲーム管理と絶対実装したい内容(Gitを使用したバージョン管理方法とツイート機能やランキング機能)
    →参考リンクをブックマークに追加したり、考慮すべきことがないかggったりしました
  • 案出しと実装のおおよその時間割り当て

上記の内容を主にHackMDというMarkdownエディタとWindows付属のメモ帳で管理しました。実際はこんな感じです

f:id:Machio_Kinniku:20200905115630p:plain

HackMDでの情報管理

 

3. 企画を考える

一週間のうち、まる一日を企画考案に費やしました。

連想ゲームの要領で、頭に浮かんだモノを片っ端から書きだしました。

最終的に自分のスキルと合うようなゲーム内容を考えました。

ここでゲームに必要な素材、シーン構成、固有の仕様など思いつく限りを書き連ねました。この作業の有無で作業がいかにスムーズに進むかが決まったかもしれません。

f:id:Machio_Kinniku:20200905140441p:plain

企画考案の様子

 

4. 実装

タイトル→ゲーム本体→ゲームオーバー→メニューの順で制作しました。

始めから終わりまで順々に作っていく予定でしたが、実装に時間がかかりそうだったので、ゲーム本体を仕上げることに重点を置き、メニュー(オープニングシーン)は最悪ナシ、みたいな感じでした。

とにかく”ハードルを下げること”"絶対実装したいモノ"を意識しました。

追記:オープニングムービーのAnimationに想像以上に時間がかかりました。余裕に更に余裕を持って取り組むといいかもしれません

 

 

5. 期間内に形にして提出

無事!期日の夕方には提出できました!

多少の不具合はあったものの、完璧は存在しないので「まぁいっか!公開!」 な気持ちで出しました

 

6. 機能追加やリファクタリング

投稿後も修正や追加をしました。

【更新履歴】
8/19 ver1.01
・ランキングTOP30位が表示されなかった不具合を修正
8/20 ver1.02
・クリックしても反応しなかった当たり判定を修正
9/2 ver1.03
・スキップ機能の追加
・ポーズ機能を兼ねた音量調節機能の追加
・軽量化
・その他様々な調節 

 

7. 結果発表から反省

(記事書くの疲れてきた...)

演出に一番力を入れたので、絵作りと雰囲気の項目でランクインできたのは最高に嬉しかったです。

前回のUnity1WeekOnline共有会のKENTOさんより
・お題との関連性
・実現可能性
・ゲーム性

のゲーム性が今回は足りてなかったかなと思います。

ゲームによりますが、たとえばショップ機能などを追加して「リトライさせる仕組み」が作れたらなぁ~と反省してます。

あとコンボ表示に応じて、スコア加算,エフェクト,SEをつけたかった(実装時間が足りず断念) 

 

アセットを活かす

ゲーム制作中の第一段階が以下の通りでした

 実現したかったことは、古いPC画面の再現です。PostProcessingStack V2を使用して何とか実現しようと試みていました。

しかし!何か足りない!もっと高品質を目指したい!片っ端から検索をかけたら良いものが出てきました!

[Unity3D]ブラウン管風シェーダーを作った | notargs.com

"ブラウン管"という用語を使わず、”Noise”や"GlitchEffect"などといった用語でばかり調べていたので見つけるまで結構時間がかかりました。目的の表現の為であれば何でも使うべきだと思います。あとggり力。

使用後がコチラ!他人の力バンザイ!↓

f:id:Machio_Kinniku:20200905171258g:plain

タイトル画面

※お財布と相談して今回AssetStoreのものは使わず、全てGithubや個人blogで公開されているコードやShaderを活用しています

 

デザインの話

今回の制作において一番力を入れた箇所です。

大きく分けて2つあります。

  1. 素材雰囲気の統一
  2. 世界観に合った分かりやすさ

の2つです。

1. 素材雰囲気の統一

フォント,画像,音声の全てを世界観から逸脱しないよう一日以上かけて選びました。
※ライセンス確認はしっかりと!!!!

~フォント~

日頃から無料フォント等を見かけたらインストールするクセをつけていたので、探すのは楽でした。
Fontviewerというアプリを使うことで、PCにインストール済のフォントを一覧から探すことができます。

f:id:Machio_Kinniku:20200905175639p:plain

Fontviewer

~画像~

基本的に無料サイトから持ってきますが、どうしてもなかった場合は自分で書いてます。想像を絶するほど下手くそな絵が完成しましたが、世の中便利なものが沢山あるので活用しましょう。

ドット絵こんばーた というサイトを活用しました。

 ~音声~

世界観に合った音楽が見つかるまで延々と探しました。

必ずグッとくる音楽があるはずです。

ながらではありますが、2日にわたって探す作業してました。

 

2. 世界観に合った分かりやすさ

以下は追加機能で作った音量調節機能です。

f:id:Machio_Kinniku:20200905180752p:plain

ポーズ画面を兼ねた音量調節機能

分かりやすいはずです(自己暗示)

世界観に合ったUIを作ることで、雰囲気を保ちつつ、尚且つ必要要素を丁寧に揃えることでイイ感じになります。

 

学んだこと(豆知識)

参考になるかもしれないことを箇条書きでまとめます。

  • Unityスクリプトリファレンスは時に日本語化されていないものの方が読みやすかったりする
    →UI ToggleのisOnの項目が2017.1だとよくわからなかった...

  • uGUIなどのInspectorで表示される項目は意味をしっかり調べよう
    →FillCenterをそのまま直訳で真ん中表示だと思っていたら、Borderで囲まれた領域の埋め込みon/offが正解だった

  • FindやGetComponentは重いからInspectorで参照設定できてると嬉しい
    →無駄にGetComponentしまくりだったのを回避できた

  • GitのCommitはある程度細かく分けよう
    ↓以下が悪い例です
  • エラー,不具合は妥協したり、しなかったりしよう
    →どうしても出てくるものなので時間と気持ちを考えよう

  • 使用素材のガイドラインは注意しよう
    →何気なく使っている素材でも、特殊なライセンスが設けられている場合もあります。しっかり確認しよう。例↓

  • コード中にマジックナンバーがないようにしよう
    →何の為の数値であるのか、ちゃんと記述しよう

  • 全体構成と必要素材のリストはあると嬉しい

  • 分からなかったら質問しよう

 

チュートリアルは嬉しい

パッとみて分かる操作や、直観的なものはユーザーに受け入れられやすいです。

自身もオープニングムービー&画像による視覚的な説明を施しました。

f:id:Machio_Kinniku:20200905174544g:plain

メニュー兼オープニングムービーの一部

ゲーム内にチュートリアルとして取り込まれているものは分かりやすかったし、クオリティが高いものに感じられました。

 

Unity1Weekの相互評価軸

※個人的な意見です、参考程度に

とにかく見た目(絵の綺麗さ)が重視されると思います。

一点(ここでいう分かりやすい見た目)が優れていたら、他も優れて見えるという、心理学用語でいうハロー効果のような現象があると考えます。

絵の綺麗さを補うには斬新さが必要かなと思いました。

追記:サウンド項目に関して

・ランク上位のものは音量調節機能がなくとも評価が高い場合がほとんど

→他の評価が高ければ相対的に高い(クオリティが高く感じる)

・自作であれば評価はメッチャ高い(そりゃそう)

 

おわりに

記事後半から内容が徐々に稚拙なものになってしまい、申し訳ありません。(想像以上に長くなって疲れました)

今回のUnity1Weekを経て、コードの書き方や軽量化の仕方、分かりやすいuGUIの作り方などなど・・・非常に多くのことを学びました。

 

この記事が誰かの参考になって、ゲームを作る楽しみや工夫を知ってもらえたら嬉しいと思います。

また、次回のUnity1Weekも盛り上がって欲しいと思っています。

最後まで読んでいただき、ありがとうございました。

 

参考記事一覧

※制作で活用した記事を思いつく限り片っ端から載せます

AudioManager:

誰でも簡単に使える最強のAudio(BGM, SE)Manager【Unity】 - (:3[kanのメモ帳]

オンラインランキング機能:

【Unity、WebGL】なるべく簡単にオンラインランキング機能をつけるサンプル - naichi's lab

ツイート機能:

GitHub - naichilab/unityroom-tweet: WebGLからツイートするサンプル

 コンボ実装:Unity : コンボの演出表現 - のののーと

ブラウン管実装方法:Camera Effects - Unity Forum

ブラウン管風シェーダー:[Unity3D]ブラウン管風シェーダーを作った | notargs.com

TextMeshPro:uGUIのTextの代替となるTextMesh Proとは【Unity】【TextMesh Pro】 - (:3[kanのメモ帳]