前回の【フロー】の回は不参加でしたが、1年生の皆さんの初参加タイミングだったので、自分もやらねばということで今回は参加しました。以下から遊べます。
(2017/11/25 学生さん作品リストに How many meters を追加しました)
ロ-α版- | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
目次
- 目次
- 学生さん作品
- 個人的な目的
- 一週間の進捗
- 今回新しく挑戦したこと
- 1週間が終わって
- 次回に向けて
- 利用アセット・参考URL
- フリーBGM・効果音素材 カテゴリ一覧|H/MIX GALLERY
- 【Unity、WebGL】なるべく簡単にオンラインランキング機能をつけるサンプル - naichi's lab
- Online converter - convert video, images, audio and documents for free
- SoundEngine・RadioLine公式サイト!【ダウンロード・ヘルプ・豆知識・関連情報など】
- UnityのWebGL出力に簡単に無料でグローバルランキングを実装できる仕組みを考えてみた - Qiita
- 効果音ラボ - フリー、商用無料、報告不用の効果音素材をダウンロード
- Unity5で半透明オブジェクトに影を投影する方法 - プログラムの素
- Blender入門(2.7版)
- Home | Screenpresso
- [OFFICIAL]Filmora Video Editor(Win&Mac) | Download Video Editing Software
- Textureをスクリプトから編集してみる - のしメモ アプリ開発ブログ
学生さん作品
Unity1週間ゲームジャム2回目から学生さんを焚きつけ始めて、6回目の今回は一年生も参加して、以下の作品が揃いました。まだ3本ほど開発中のものがあるので、もう少し増えそうです。
- 範囲チェッカー
- 動くバーをタイミングよくスペースキーを押して止めて、ステージに広がる箱をなるべく小さい体積で囲んでいくゲームです。
- ぶつかるな!
- 飛んでくる障害物を避けながら前方に進んでいく避けゲーです。
- いい旅、夢ごこち
- 左右移動とジャンプ、ショットを駆使して、奥にいるボスにたどり着いてやっつけるゲームです。
- 鰯!鰯!鰯!
- イワシをやっつけていく横スクロールのシューティングゲームです。
- How many meters
- 星の間を抜けて、バッテリーを取りながら進んでいくゲームです。
個人的な目的
個人的な目的は以下でした。
- これまで勢いだけでクリアできて深みがなかったので、攻略や中毒性がありそうなネタにしたい
- 写真で素材を作ってどうなるか実験したい
- アセットでお気に入りのキャラクターを登場させたい
できたのは上2つ。3つ目は未だにゲームが完成していないぐらいなので、一週間では盛り込めず見送りましたf^^; そしてやはり地味なことに・・・。
一週間の進捗
ツイッターから一週間を振り返ります。
初日 11/13(月)
お題出た。前回不参加だったから参加するとかなり久々
— たなかゆう (@am1tanaka) 2017年11月12日
ここからスタート。
とりあえず雛形のオンラインランキングを新しいのに差し替えたりしてリポジトリーは作った。今回はちょっとアルゴリズムを絡めたいと思って、以前から考えていたネタをアレンジしていけそう。大昔にあったクォースみたいなやつで。ご飯食べたら画面考えてみよう #unity1week
— たなかゆう (@am1tanaka) 2017年11月13日
まずはシーン遷移やオンラインランキング、BGMや効果音制御などの共通部分を準備します。基本的なものは用意済みなのでそれをコピーして終わり。
今回も破天荒さがなくて埋もれそう...。画面の雰囲気を頑張らねば。あと、今度こそスマホでもリリースしたいので、その辺がテーマ。まずは画面を魅力的にするために何かパク... #unity1week
— たなかゆう (@am1tanaka) 2017年11月13日
この時点で地味になりそうなのは察知していて、キャラクターを登場させようと考えてアセットも探していたのですが・・・。
画面の解像度も事前に決めておくと楽です。今回はiPhone SEを想定して、640x1136ピクセルを基準にしました( iPhone SE - 仕様 - Apple(日本) )。Canvasやゲーム画面の素材を、このピクセル数で設計していきます。
Main Cameraのサイズは、640x1136ではなく、64x113.6にしました。モデルが大きくなると影に影響が出るためです。然るべき設定をすれば動くと思いますが、Unityは大きすぎたり小さすぎるとあちこちに不具合が起きることがあるのでこうしました。
午前中でここまでやって、日野に講義へ。夜帰ってから作業再開です。
#unity1week 1日目。全角スペースの記号を飛ばして、左から右に段々になったら消える的なゲームにしようとしてます。今のところこれを画面に出しただけ。明日は鉛筆で数字を書いて点数にします。今回、アセット使うのだろうか・・・。せっかくキャンペーンやってるのに・・・ pic.twitter.com/vPJtuLPW1I
— たなかゆう (@am1tanaka) 2017年11月13日
この時点では動きやプログラムはつけず、スプライトやモデルなどをシーンに並べてレイアウトや必要な演出を検討していきます。今回はスケッチブックの紙面や、鉛筆で描いた素材をiPhoneで撮影して、Photoshopで加工。それをスプライトに貼り付けて画面を作って、画面の雰囲気がわかったところで初日終了。
2日目
スコアの実装からスタート。紙に鉛筆で数字を書いて、iPhoneで撮影して、Photoshopで加工して素材を作りました。それをTextMesh Proで絵文字として表示するようにしました。
以上で基本的な画面レイアウトが完了したので、ゲーム作りに取り掛かりました。まずは自分の操作から。ボタンを押したら全角スペースが発射されるようにします。
スプライトの動的生成の方法がわかった。pivotが読み出し時と設定時で単位が違うのにひっかかった。あとは欲しい形でアルファを設定して生成すれば、必要そうなパーツは揃うかな。ではご飯
— たなかゆう (@am1tanaka) 2017年11月14日
全く目立ちませんが、ロは発射時に少しずつ現れるようになっています。ロの1枚のテクスチャーから、アルファー値を設定して以下のようなテクスチャーを生成しています。
シェーダーでやればリアルタイムでメモリーも消費せずにできるので、いずれやってみたいなということで宿題です。
#unity1week 2日目終わり。最低限のグラフィックを揃えて、少しだけ動くようになった。コラボとクラウドビルドの仕込みも完了。明日からロジックに入れそう。TL見ると、イワシとか超絶綺麗な宇宙とか、みんな凄い。遊ぶのを楽しみにしつつ、今日はこれまで pic.twitter.com/09L896jFlt
— たなかゆう (@am1tanaka) 2017年11月14日
画面レイアウトが整ったので、Unity CollabotateとUnity Cloudを仕込んで、WebGLの動作確認をして2日目終わり。
3日目
この日は朝から夕方まで専門学校。通勤電車の中で、ロが揃ったかの判定を考えたりしてました。
放課後、有志で集まって開発作業をしました。質問に答えたり、ちょっかい出したりしつつなので、ややこしいステージデータを考えるのは難しかったので、見た目の調整をしました。スコア部分が貧弱だったので、ロールを置くことにしました。これでかなり画面が締まりました。また、凸凹をつけてみようと紙の画像からNormalマップを作って設定したのも成功でした。
帰宅後は、降りてくるロの内部ロジック作り。ブロックは、5x10の2次元配列で管理しています。一番上の段がどこかを表す変数を用意して、1段分下がると、その変数を更新して、参照位置を変えるということをしています。更新時に、一番下にブロックがあればゲームオーバーです。
全然ゲームになっていないけど3日目終わり。ノーマルマップででこぼこさせて、スコアのところに円柱入れたら少しは見栄え良くなったかな?この動画見てたら、ジャンプゲーに変えるのも一興な気がしてきた。どうしよう...。とりあえず寝ます #unity1week pic.twitter.com/SeGOzzMi6Y
— たなかゆう (@am1tanaka) 2017年11月15日
4日目
午前中は家事で、作業は午後からでした。
方針間違えた。ステージデータを手作りしちゃダメだ。パターンで自動生成させねば。考え直し
— たなかゆう (@am1tanaka) 2017年11月16日
ステージデータをTiledで作成して読み込みまでやったところで、今回はステージを自動生成してエンドレスで遊べるようにするべきじゃないかと思い至って、ボツにしました。
上からじんわり出てくるのとか、ノーマルマップの効果を見ると、2Dでもノーマルマップ使いたいとか、少しずつシェーダーに手を出す目的が見つかってきた
— たなかゆう (@am1tanaka) 2017年11月16日
UnityではNormalマップが使えるけど、Phaserではどうだっけ、とかあれこれ考えていました。自分でシェーダーを書ければ、ノーマルマップの機能がなくても大丈夫だなということで、シェーダーに手を出す理由が増えてきました。
全角スペースという設定なのだが、ここまでプログラムの中では全部「ブロック」になっている。もはやスペースの要素が画面下の「スペース」というボタンのみになりかけている。が気にしない
— たなかゆう (@am1tanaka) 2017年11月16日
はい。気にしない。
ブロック(全角スペースと言い張る)の自動生成ができた。自分が射出する全角スペースとの当たり判定に取り掛かったけど、ややこしい。座標系を失敗した感じなので、もう少し整理してみないとかな。画面の変化がないので今日はスクショなし。今日はこれまで #unity1week
— たなかゆう (@am1tanaka) 2017年11月16日
マップ+滑らかスクロールは、開始点を基準点にして絶対座標で管理するのがセオリーです。久々のループさせるマップ構造で、そこをすっかり舐めて進めてしまいました。これが後々のトラブルにつながりました。改めて、スクロールものは絶対座標を持たせること!この日は解決を諦めて寝ました。
5日目
午後から専門学校なので、午前中作業。
昨夜の問題、解決!マップデータをループさせて使うの久々にやったから混乱した。Unityの下から上の座標系もあって、ちゃんと整理しないと大混乱ですよ。ではぼちぼち池袋へ行く準備 #unity1week
— たなかゆう (@am1tanaka) 2017年11月17日
寝ている間に解決の方針がまとまって、無事に動かせました。夜が更けて混乱していたら寝るに限ります。
ようやくブロック、ではなく全角スペースを押し上げる処理できた。あとは並びをチェックして消す処理を入れればゲームとしては完成だけど、手も冷たいし眠いから今日はこの辺で #unity1week pic.twitter.com/9L966hZYpr
— たなかゆう (@am1tanaka) 2017年11月17日
放課後に自主活動をして、帰宅してさらに少し作業をしました。ややこしい部分に差し掛かっていたし、形になってきたので早めの就寝。あとは週末勝負。
6日目
影がロに落ちなかったので、どうも見栄えがよくない。ということで、シェーダーに手を出しました。
Unity5で半透明オブジェクトに影を投影する方法 - プログラムの素 https://t.co/lp3m7NgqKk
— たなかゆう (@am1tanaka) 2017年11月18日
素晴らしい記事!半透明なオブジェクトに影を落とせるようになって助かりました^^ #unity1week
と言っても、コピペしただけ...。改めて勉強します。細かいところですが、見栄えが変わりました。
そしてこれ。
WebGLにビルドしたら影が消えた~、とか、エフェクトが~、という場合は、[Edit]>[Project Settings]>[Quality]を開いて、WebGL(ホームベースに5って書いてあるやつ)のDefaultのクオリティーをFantasticにすると直るかも #unity1week
— たなかゆう (@am1tanaka) 2017年11月18日
最近はWebGLでもかなり速いので、Fantasticで良いと思います。
6日目だん。ロの出現アルゴリズムがダメなのでレベルが少し上がるとクリアできなくなるけど完成形が見えてきた。WebGLだとロが伸びたり変な動きをするのでちょっと不穏だけどあとは最終日に。BGMはH/MIX GALLERYさん、SEは効果音ラボさんです。素敵な音に感謝 #unity1week pic.twitter.com/3wy3KjG1CJ
— たなかゆう (@am1tanaka) 2017年11月18日
自動ブロックパターン生成、オーディオ関連、消える判定などを実装して、6日目終わり。
最終日
最終日は、タイトル画面作成から。
ProBuilderで生成したプレーンにClothをつけると動くは動くけどエラーでるなぁ。素直にBlenderで作ろう #unity1week
— たなかゆう (@am1tanaka) 2017年11月19日
紙をひらひらさせようと思って、Clothコンポーネントに手を出しました。頂点ごとに、拘束させるかや、当たり判定のあるものにどれぐらいめり込むかの設定ができるのですね。Clothを適用するモデルは、Scaleを設定すると動きがおかしくなります。ということでPlaneは使えず。ProBuilder BasicのモデルはRendererがかち合うので非対応でした。仕方ないのでBlender3Dでモデルを作りました。前回に続き、Blender入門(2.7版)さんにお世話になりました。
時間がかかった割にはイマイチな出来になりましたが、まだ足りないものがあるので操作説明の作成へ。必要な状況のスクリーンショットを撮って、Screenpressoで矢印をつけたり、文字を追加して画像作成。それをペタペタシーンに貼り付けて完成。
タイトル作りでかなりの失敗をやり、時間は失ったけど凄くイマイチ・・・。そしてまだゲームバランスには手を付けておらず。今回も遅刻確定~ヾ(゜▽゜)ノ #unity1week
— たなかゆう (@am1tanaka) 2017年11月19日
タイトルと操作説明で時間を食い、こんな状況に。ひとまず、時間がかかりそうな部分や、クオリティーを上げる時間はなさそうなので、一旦公開する方向で調整に入りました。難易度はスクロール速度を上げるだけにして、画面幅を広げるとバグが出るので、アスペクト比はそのままに、などなど。
結局、完成せずorz ビルドが終わったらデモ版ということで一先ず公開します。あちこち不安定で、ロが消えなかったり色々起きそうな状況ですf^^; これはAndroid版を作る予定なので、今後ものんびり進めていきます^^皆様お疲れ様でした! #unity1week pic.twitter.com/Q3wFb3SPT9
— たなかゆう (@am1tanaka) 2017年11月19日
ロ-デモ版- | 無料ゲーム投稿サイト unityroom #unity1week https://t.co/s8fPpROome
— たなかゆう (@am1tanaka) 2017年11月19日
公開しました!とりあえず自分の作品は一旦寝かせて、ご飯食べたらいろいろ遊ぼう
こんな一週間でした。
今回新しく挑戦したこと
- カメラ2つを使って、ゲームのレイアウトの外側の描画
- テクスチャを書き換えて、動的にテクスチャパターン作成
- Animationで画像やテキストに動きをつける
- 半透明に影を落とすためのシェーダーの利用(ブログのコピペですが)
- Clothコンポーネントによる布シミュレーション
- Blender3Dでクロス用のモデル作成
- Unity Affiliateに登録
作ってみると何かしら新しいことに手を出して経験が増えます。宿題のテーマもできましたし。
1週間が終わって
これまでで最も未完成の状態での投稿でした^^; 他の皆さんが公開予約しました~とかいう報告に「うっ」となりつつ、学生さんに「締め切りすぎても大丈夫だから」と言っていた手間、そのまま突っ込みました。
今回も見てもらったり、遊んでもらうための仕込が足りなかったと反省が多いですが、自分的には楽しく遊べるものになりました。スマホアプリにするのが最終目標なので、これから画面レイアウトなどごっそり変えたりしながら継続して開発していくつもりです。
次回に向けて
自己満足はしていますが、これまで課題だった魅力的な画面作りは今回も失敗でした。敗因はいつも通りですが、魅力を伝えるコレ、というものを用意できなかったことだと思っています。
次回は三ヶ月後なので気分が変わって別のことをしそうですが、今の所、プリミティブな素材をフラットデザインかグラデーションで魅せるか、キャラクターに徹底的にフォーカスした作品を作ってみたいです。参加してない跳ねるかフローのを作る手も。皆さんの作品を見ていると、サクッと遊べてすごく面白いものがあって、そういうのを2,3日で完成させてみるというのもやってみたいです。
利用アセット・参考URL
今回も沢山のアセットによって、楽しくゲーム作りができました。作者の皆様、ありがとうございました。
文字表示に使いました。グラデーションとかつけられるし、プリセットのフォントも良い感じのがあるので、とりあえず入れておくと吉です。
フリーBGM・効果音素材 カテゴリ一覧|H/MIX GALLERY
タイトルやゲーム中のBGMに利用しました。 イメージが近い曲が見つかるのでいつも助かってます。
【Unity、WebGL】なるべく簡単にオンラインランキング機能をつけるサンプル - naichi's lab
今回も利用させていただきました、オンラインランキングシステムです。パーツが綺麗になって更にいい感じになっていました。
Online converter - convert video, images, audio and documents for free
SoundEngine FreeはMP3が扱えないので、MP3からOGGに変換するのに使いました。 Webページで変換できるので手軽で便利です。
SoundEngine・RadioLine公式サイト!【ダウンロード・ヘルプ・豆知識・関連情報など】
OGGなどの音素材のトリミングやエフェクトをかけられるフリーウェアです。効果音の一部を切り出したり、冒頭の無音部分を削除したりするのに利用しました。 とても使いやすいです。
UnityのWebGL出力に簡単に無料でグローバルランキングを実装できる仕組みを考えてみた - Qiita
オンラインランキングのバックエンドをGoogleワークシートで構築するdivideby_zero氏の記事です。今回もありがたく利用いたしました。
効果音ラボ - フリー、商用無料、報告不用の効果音素材をダウンロード
生活音などのさりげない音が揃っていて、好みの音を見つけやすくて重宝しています。
Unity5で半透明オブジェクトに影を投影する方法 - プログラムの素
ハムエッグ氏のブログです。 半透明のオブジェクトに影が落ちず、ロが消える時に影に入っていると綺麗にならなかった問題が、こちらで紹介されているシェーダーを使って解決できました!
Blender入門(2.7版)
タイトルで揺れる紙のモデルを作成する時に、UVの貼り方の確認をしました
Home | Screenpresso
操作説明画面の作成に使ったスクリーンショット&画像装飾ツールです。有料のPro版を使っています。
[OFFICIAL]Filmora Video Editor(Win&Mac) | Download Video Editing Software
今回も画面動画の作成はこちらを使いました。Twitterの投稿時はMP4、UnityRoomのアイコンはGIFで出力しました。有料版を使っています。出力時にカスタムで自由に解像度を設定できることにこれまで気付かず、新しい発見でした。
Textureをスクリプトから編集してみる - のしメモ アプリ開発ブログ
ロを上から出現させるテクスチャーパターンを作成する時に参考にしました。