SlideShare a Scribd company logo
はじめてのUnity1週間
ゲームジャム共同制作
えれめん(@aielement1023)
2021/01/30
アジェンダ
• Unity1週間ゲームジャムの紹介
• 制作したゲームの紹介
• 制作の流れ(ゲームの1週間の変遷を示しながら)
• 一部機能の詳細説明
• ランキング機能
• オリジナル煩悩登録機能(「みんなの煩悩」モード)
• 開発でつまづいた点
• 共同制作をした感想
• 今後の目標
Unity1週間ゲームジャムとは?
• 1週間でゲームを作って
unityroom(https://unityroom.com/)に投稿
するイベント
• 約3ヶ月に1度のペースで開催
• 今回は、
2020年12月21日(月) 0:00〜
2020年12月27日(日)20:00
の開催
今回のテーマは「あける」
• 開ける
• 扉を開ける
• 空ける
• 容器を空にする
• 穴を空ける
• 明ける
• 夜が明ける
• 年が明ける
共通の目標
・ゲームを完成させる
・総合順位30位以内に入る
(1週間の制作期間の後、2週間の評価期間があり、
その間のプレイしてくれた方の評価によって、順位が出る)
個人的な目標
・サーバーを使う(自前でランキング機能を実装する など)
・UniTaskの使い方(触り部分)を覚える
除夜の鐘を鳴らして煩悩を浄化するゲーム
・雰囲気を大事にしたい
・みんなの煩悩が登録できて、それで遊べても面白いかも
制作したゲーム「鳴らせ!除夜の鐘」
• ゲーム紹介動画
https://youtu.be/1BhtNrMlZRw
• ゲーム配信先(unityroom)
https://unityroom.com/games/japanese_bonnouで遊べます
共同制作メンバー
• 鉄さん(@tetsujp84、エンジニア)
担当箇所:
• インゲームロジックの実装
• Twitter投稿機能導入
• NCMBを用いたランキング
• たこはちさん(@takoroku66、デザイナー)
担当箇所:
• タイトル演出
• 除夜の鐘、松明モデリング、テクスチャ作成
• 雪のパーティクル作成
• えれめん(@aielement1023、エンジニア)
担当箇所:
• ウィンドウ管理クラス(WindowManager)、サーバー通信クラスの実装(NetManager)
• スコア表示
• 煩悩登録(クライアント&サーバー)処理の実装
企画は皆で
共同制作の基本方針
⚫仕様について
各位判断で機能追加、デザイン追加して良い
判断を待つ必要はない
ただし相談や意見を求める、は頻繁に行うこと
時には通話も使うこと
ただし最終ジャッジは鉄さんが行う
⚫開発の流れ
【CI参考記事】GitHub ActionsとUnity-CIで簡単CIビルド構築WebGL対応版
https://qiita.com/tetsujp84/items/d1e1ff4c3962f39cc355
CI時にslackに飛ぶ通知の一例
①mainブランチから開発用ブランチを切る
②開発
③mainブランチに向かってPRを出す
④小さい機能や独立した機能なら即マージ可
心配ごとがあり相談したい、大きな機能になりそうならレビューを依頼
PRを出した時とmainブランチの更新時にCIが走りビルドがあがる
1日目
• のっぺりしていて画面映えしていない
• 立体感が欲しい
→3Dで画面をつくることにした
3日目
• 鐘を3Dにしたが、まだ見た目はぱっとしない
• デフォルトの煩悩をScriptableObjectに入れておき、
鐘を鳴らしたときに煩悩名が表示されるようにした
• クリア時にスコアが表示されるようにした
• 自作のランキング機能を追加
4日目
・横からにした
わかりやすくなった
・右の余白をうまく使えば、奥行きが出せそう
6日目 Ver.1
・大仏を置き、地平線を見せるようにした
前より奥行きが出た
・振り子部分と、ターゲット部に装飾を施した
6日目 Ver.2
・デザイナーさんの加入により、鐘のモデルと境内のテクスチャがリッチになった
・Enviro(Unityの有料アセット)を使って、雪と地平線の光の効果を導入
雪はけっこうそれっぽい
地平線の光はギラつきすぎ
7日目 Ver.1
・クリア時に日の出が出る演出をつけた
7日目 Ver.2
・松明を導入し、自然な明るさを目指した
・制限時間と残り煩悩数の表示を縦書きにした
7日目提出版
・時間経過で背景の明るさが変化するようにした
・タイトル演出が入った
・雪のエフェクト(Enviroのアセット)が重かったので、
パーティクルシステムを使ってデザイナーさんが作り直してくれた
(明るさの変化のわかりやすさのため、4倍速にしています)
提出後~10日目
• naichiさんのランキング機能を導入(バックエンドにNCMBを使用)
• Imgurを用いた画像付きTwitter投稿機能を実装
• オリジナル煩悩を登録できるようにし、その登録した煩悩を浄化できる
「みんなの煩悩」モードを追加
1月2日(13日目)
• 煩悩が出現してから、一定時間その場にとどまるようにして、煩悩の内容
を読みやすくした
(それまでは、読めない早さで消えてゆく煩悩表示があった)
延長戦
ランキング機能
• 自作のランキング機能が、自分
のサーバー設定の問題で動作し
ておらず(後述)、解決に時間
がかかりそうだった
• naichiさんのunity-simple-
ranking
( https://github.com/naichilab/unity-
simple-ranking)を使用
• バックエンドとしてNCMB
(mBaaSの一種)を用いている
• 参考サイト:
https://blog.naichilab.com/entry/webg
l-simple-ranking
↑unity-simple-rankingによるランキング表示
オリジナル煩悩登録機能
煩悩保存用テーブル(usr_user_bonnou)
app/Http/Controllers/UserBonnouController.php
app/UserBonnouModel.php
• レンタルサーバー(CentOS8)でMySQL & PHPを使用して実装
• Laravelフレームワークを使用
①煩悩保存用テーブル(usr_user_bonnou)を作成
②煩悩保存用テーブルに対応するモデル
(UserBonnouModel)を作成
③Controllerに煩悩登録処理の関数を記述
④api.phpでルーティング設定を行う(次のスライドで)
オリジナル煩悩登録機能
ルーティング設定
routes/api.php
にアクセスすると、DBに登録される
https://(Laravelプロジェクトを設置したアドレス)/public/api/bonnou/register?title=(煩悩名)&description=(煩悩の説明)
オリジナル煩悩登録機能
煩悩登録ウィンドウ(ゲーム内)
登録された煩悩(登録個数42個 (2021.01.21現在))
kou-yeungさんのライブラリを使用
(WebGLでは、デフォルトのままではInputFieldで
全角入力ができない)
https://github.com/kou-yeung/WebGLInput
「みんなの煩悩」モード
「オリジナル煩悩登録」で登録された
みんなの煩悩が、一般の煩悩に代わって
出現する
つまづいた点
①CORS(オリジン間リソース共有)周り
ブラウザに同一オリジンポリシーが適用されているため、webアプ
リから他のドメインにアクセスしようとする(外部のAPIを利用する
場合など)とエラーになってしまう
解決方法:
APIのルーティング定義をweb.phpからapi.phpに移した
(web.phpはCSRF保護が適用されているが、api.phpはデフォルトではその保護が
適用されないためエラーは解消される。)
参考記事【 Laravelのweb.phpとapi.phpの違いを調べるために外からPOSTしてみた】
https://awesome-linus.com/2019/04/06/laravel-api-php-csrf/
つまづいた点
②HTTPS→HTTPのリクエストがブロックされる
解決方法:
・Let’s Encryptを導入し、サイトをHTTPS化
・Laravelで強制的にHTTPSにリダイレクトするようにした
app/Http/Kernel.php
app/Http/Middleware/ForceHttps.php
みんなの評価
3.585
3.846
3.892(36位)
3.554
4.169 (31位)
3.938(41位)
全455作品
• 「サウンド」、「雰囲気」、「斬新さ」の項目で50位以内
にランクインした
• 力を入れた点が評価されていてうれしかった
• 「みんなの煩悩」モードが好評だった
• 表示される煩悩をもっとゆっくり見たいという方が多かっ
た(1月2日にこの点を改良した)
• タイミングよくクリックできなかったときに出るミス判定
が初見プレイだとわかりづらかった
↑ミス判定の表示
共同制作をした感想
• 互いの得意分野を生かした開発ができた
• 実装範囲がうまく分けられた
• アイデア出しが捗り、アイデアの採否も客観的な視点で行うこ
とができた
• 互いの進捗で互いを鼓舞できた
• ゲーム完成への推進力となった
• 鉄さんのインゲームの実装のコーディング力に感銘を受けた
• デザイナーさんの力は偉大
• ゲームジャム残り2日間で、ゲームの見た目が格段に良くなった
今後の目標
• ゲームの“面白さ”をより意識してゲームを制作する
• インゲームの実装速度を向上させる
• NCMB、FireBaseといったmBaaS(mobile Backend as a Service)を
活用できるようになる(今回はランキングのみでの使用だった)
• UniRx、UniTaskを使いこなせるようになる
• 簡単な3Dモデルを制作できるようになる(まずはBlenderで)
ご清覧ありがとうございました!
(付録に、本ゲームジャムのスクリプトのリンク、開発で使用したライブラリのリ
スト、評価期間終了直後の総合ランキングを掲載しています)
【付録】今回制作したゲームのスクリプトの
公開リポジトリ
https://github.com/tetsujp84/JapaneseBonnouScript
(Assetやモデルデータは含まれていません)
【付録】開発に使用したライブラリ
• UniRx
• https://github.com/neuecc/UniRx
• UniTask
• https://github.com/Cysharp/UniTask
• DoTween
• https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676?locale=ja-JP
• AudioManager
• https://github.com/kankikuchi/AudioManager
• Enviro – Sky and Weather
• https://assetstore.unity.com/packages/tools/particles-effects/enviro-sky-and-weather-33963
• CSV Serialize
• https://assetstore.unity.com/packages/tools/integration/csv-serialize-135763
• WebGLInput
• https://github.com/kou-yeung/WebGLInput
【付録】今回のゲームジャムの総合ランキング
(30位まで)

More Related Content

PDF
Unity2Dを使ったミニゲーム開発のすすめ
PDF
Unityで作るiOSゲームアプリ
PDF
「Unityサウンド エキスパート養成講座」振り返り ~単著ができるまで~
PDF
同じ音が二度と鳴らないゲームの環境音を作る
PDF
Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携
PDF
Unity サウンドTips 2019
PDF
Unityの開発環境が生み出す可能性
PPTX
Unite2014 Live2D x Unity x Kinect 2
Unity2Dを使ったミニゲーム開発のすすめ
Unityで作るiOSゲームアプリ
「Unityサウンド エキスパート養成講座」振り返り ~単著ができるまで~
同じ音が二度と鳴らないゲームの環境音を作る
Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携
Unity サウンドTips 2019
Unityの開発環境が生み出す可能性
Unite2014 Live2D x Unity x Kinect 2

Similar to はじめてのUnity1週間ゲームジャム共同制作 (7)

PDF
絶対にリリースできる!?勝手に作るチーム制作
PDF
20130719 gtmf doc
PPTX
知らない人とunity1weekした話
PDF
神奈川電子技術研究所 あかんゲームといいゲーム
PDF
Unityが繋げる!ゲーム制作コミュニティとOSSの最前線 - OSC19広島
PPTX
【Unity道場 幕張スペシャル3】専門学校のゲームプログラマーコースにおけるUnity1週間ゲームジャムの活用事例
PDF
第1回ただやりたい。その気持ちをぶちまける会
絶対にリリースできる!?勝手に作るチーム制作
20130719 gtmf doc
知らない人とunity1weekした話
神奈川電子技術研究所 あかんゲームといいゲーム
Unityが繋げる!ゲーム制作コミュニティとOSSの最前線 - OSC19広島
【Unity道場 幕張スペシャル3】専門学校のゲームプログラマーコースにおけるUnity1週間ゲームジャムの活用事例
第1回ただやりたい。その気持ちをぶちまける会
Ad

はじめてのUnity1週間ゲームジャム共同制作