Unity1週間ゲームジャム(2017/08/21〜)に参加しました
今月はお休みする予定です...!! #unity1week
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年8月16日
.
.
.
.
.
.
.
.
見てたらやりたくなりました。て、てへ...
Unity1週間ゲームジャムとは?
- @naichilab さんの運営する unityroom というサイトで開催されたイベント
- 1週間でお題に沿ったUnity製のゲームを製作する
- 5回目である今回の課題は「フロー」
成果物「oneline」
oneline | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
今回もお疲れ様でした! | oneline | ゲーム投稿サイト unityroom #unity1week #oneline https://t.co/3iUTQ4mKpv pic.twitter.com/jJopBUbC56
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年8月27日
使用アセット
発想
最初作りたいと思ったものに近いのは @daiki_all さんのStream Flow です。
STREAM FLOW #indiedev https://t.co/JXyvQw1pH1 pic.twitter.com/QqCirtNHOw
— DAIKI (@daiki_all) 2017年8月29日
見た目綺麗ですし、加速した時の爽快感も含め、とても良いゲームです。こんな感じで線を操作してビル群を避けるようなゲームを作ろうと思ったのですが スタートも遅れたので、間に合うかなーと思った挙句断念。出来る限りのものを作る方向に舵取りを変えました。
また、ちょうどアイデアを考えていた頃に @kan_kikuchi さんの以下のツイートを見かけ...
明かりを付けるというより、光が当たっているかの判定や、影を作りたい場合等に超有用なアセットでした(:3っ)∋〜
— カン神巫女 -KAMIKO- (@Kan_Kikuchi) 2017年8月21日
「2D環境にて高品質な光と影の演出」
が出来ると謳われている2DDL Proを試してみた
【Unity】【アセット】https://t.co/PUzJCywPmf pic.twitter.com/MTGgcP1eP9
2DDL、即買いしました!!!!!!!
楽しい!| 「2D環境にて高品質な光と影の演出」が出来ると謳われている2DDL Proを試してみた【Unity】【アセット】 - (:3[kanのメモ帳]@Kan_Kikuchi https://t.co/cqx4lafxdE pic.twitter.com/ymU0xMmp5D
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年8月21日
この2DDLを使って、光と影が綺麗なゲームを作りたいなぁというのが今回のゲームの着想です。具体的な条件として「オブジェクトが多数登場する」と見応えありそうだと思ったので、今回のフローの条件と合わせて「砂/水のような物体がゴールに向かって流れていく」ゲームに倒しました。
ネタ被りお許しください…!! #unity1week pic.twitter.com/2n6qZsRkU4
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年8月22日
最初、直線で流すのがシンプルだと思っていたのですが、直線だと跳ね上げる動作がどうしても難しく自由度を制限してしまうため、フリーハンドに倒しました。逆にある程度制限が無いとゴリ押しができてゲームとして成立しないとも思ったので、一筆書きスタイルになりました。結局、一度引いた線の上を戻ることが出来るなど、制限として機能していなかったなぁとは反省。
2D物理演算周りの挙動
この辺りの技術を使いました。Unityの標準機能なので気軽に試すことができます。 (今回のゲーム中で使用したのはAreaEffector2D/PointEffector2D)
アイデア投下。昔作ったゲームですが BuoyancyEffector2D(浮力) を使うと簡単にXY軸ゲームで、水が流れるような動きを作ることが出来ます。 #unity1week https://t.co/Eq89VLbYJu pic.twitter.com/jwFvVqS57w
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年8月20日
AreaEffector2Dを地味に初めて使った。Collider2Dと一緒にアタッチし、Collider側の IsTrigger / UsedByEffector を有効にすることで指定した角度に対して力を働かせる君 #unity1week pic.twitter.com/qqy45k2yf1
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年8月24日
PointEffector2D ( https://t.co/zJbvr4qsui ) は中心点に対して引き付ける/引き離す力を設定できる。磁力/ブラックホール … etc #unity1week pic.twitter.com/GNal20WEFB
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年8月24日
頑張りましょう
- オリジナリティ
- 今回のアプリのような線引き物理演算パズルは既にストアには溢れ返ってる
- もう1歩オリジナリティを足せると良かった...
- パフォーマンス
- 一部結構雑に書いたところがあるので...
- レベルデザイン
- テストプレイ (主にしてもらうの) 大事
- 今回は妻に提出直前にプレイしてもらって、ギリギリで難易度調整を行なった
- その後も2回くらい調整したが、未だにクリアツイートを見かけない
- STAGE13が意地悪過ぎたので、もう少し軟化して良かった
- どこで離脱したかトラッキングしたい...
感想
今回で5回目の1週間ゲームジャムの参加になります。参加するたびにゲーム製作者の方と繋がれるの、いつも本当に嬉しく思います。
特に今回、Twitterで上で魅力的な作品を多く見かけたので、製作中もとても刺激を受けました。特に自分はイラスト周りは全然ダメなので、世界感のパワーを持つ作品はとても尊敬しています。
1週間ゲームジャム
— VeLTiNA@Pandoraid開発 (@veltina_soft) 2017年8月22日
とりあえずモック#unity1week#PixelArt pic.twitter.com/98R3qDKHyR
そして動画を貼り忘れる #unity1week pic.twitter.com/Me0wJUo7EV
— kumokera (@kumokera) 2017年8月25日
元気があったらこういう感じのつくるよ#unity1week pic.twitter.com/CD9D0FP5rr
— E.G. (@EdwardGeraldine) 2017年8月21日
#unity1week
— ライナ (@raina2395) 2017年8月23日
今日の進捗
移動の部分はとりあえずここまで、次はゲーム部分作っていこうかな pic.twitter.com/v5KqohNrtW
イメージ的にはこんな感じでいってみますがアセット間に合うのか…#indiegame #gamedev #unity1week pic.twitter.com/pG3hjOgkT1
— UMINEKO STUDIO (@UminekoStudio) 2017年8月21日
そんな中ですが、恐れ多くも人気TOP2位になれました。
今回アイコンもパッとしなかったので、あんまり期待してはいなかったのですが、Twitterでの進捗報告と第1回~4回にセルフブランディングできている結果かなとも思っています。自身のゲームクリエイターとしてのプレゼンスを上げるために参加しているところもあるので、このように評価していただけるのはとても嬉しくあります。感想や改善点などありましたら、頂けますと幸いです。
今回も @naichiさん、参加者の皆さん、ありがとうございました!
おまけ
ウォークスルー動画作りました。クリアできない方はどうぞ!ネタバレ注意!
【Unity道場】使って覚えるTileMap に参加しました
概要
イベント
Unity 2017.2bでUnityEditorに組み込まれたTileMap機能について講義/ハンズオン形式で学ぶイベント。 @tsubaki_t1 さん(テラシュールブログ) が講師を務めてくださり、更にハンズオンということでUnityスタッフが分からない部分を教えてくださる、至れり尽くせりな会でした。
会場
会場の「ベルサール六本木コンファレンスセンター」は「住友不動産六本木グランドタワー」の9階にあります。これまで渋谷のTECH PLAY SHIBUYA (旧dots.) で開催されることが多かったが、六本木の会場になってからは初参加。
着いた!(迷った) #unity道場
— 青木とと(ˊᗜˋ*) (@lycoris102) 2017年8月5日
迷いました。
資料
www.slideshare.net
内容
2D Experimental Preview
Unityにおける新機能は、クオリティ向上やバグを防ぐ目的で、いきなりリリースするのではなく、Experimental Buildという形式でユーザに試してもらうケースが多くなっている。最近 2D Experimental Preview で検証されている内容は以下を参照。
https://forum.unity3d.com/forums/2d-experimental-preview.104/ www.youtube.com
Experimental Buildの段階を経て、次はベータリリースされるが「TileMap」の機能は、先日リリースされた unity2017.2b に含まれている。
TileMapの使い方
おー、Tilemap出来た! #Unity道場 pic.twitter.com/HhGAFfj0d1
— 青木とと(ˊᗜˋ*) (@lycoris102) 2017年8月5日
上記でやっているのは以下の一連の流れ。
- TilePaletteの作成
- Window > TimePalette
- CreateNewPaletteを選択
- TileAssetの作成 (ワークショップでは対応済みだった)
- Textureの設定
- タイルマップに使用したい画像アセットを選択
- TextureTypeをSpriteに変更
- SpriteModeをMultipleに変更
- PixelPerUnitをタイル1枚における一片の長さを指定
- (FilterModeをPointにすると補間が無くなり、ドット感が増す)
- Spriteの設定
- SpriteEditorを開く
- Sliceでタイル毎に画像を分割 (GridByCellSizeを使うと楽)
- Textureの設定
- TilePaletteへの登録
- 先ほど設定したSpriteをTilePaletteウィンドウにドラッグ/ドロップ
- TileAssetをどこに保存するか聞かれるので適当に指定
- TileMapを埋める
- Hierarchy上で 2DObject > TileMapを選択
- 塗りたいTileMapオブジェクトをHierarchy上で選択
- (TileMapオブジェクト自体を複数生成できるため)
- TilePaletteから “ブラシ” (筆のアイコン) を選択
- 塗りたいタイルを選択
- Sceneビュー上のグリッドを選択して塗る
また、塗りたいタイルを回転させる手段は、マシン/バージョンによって微妙に異なるっぽい。正式リリース時のドキュメント化に期待。
TileAssetを選択して塗る際に “[“ で左回転 “]” で右回転できた (Unity2017.2.05b / mac) #unity道場 pic.twitter.com/t5rgKpL28k
— 青木とと(ˊᗜˋ*) (@lycoris102) 2017年8月5日
上記のフローにも記載したが、TileMapオブジェクトを複数用い、Order in Layerを変更することで、レイヤーを扱うことも出来る。
TileMapの上に何かしらのオブジェクトを配置したい場合は同一のTileMap上で処理するのではなく、TileMapをもう1つ生成し、Order in Layerを上げて上位に設置すると良い #Unity道場 pic.twitter.com/e73Ip2VwGC
— 青木とと(ˊᗜˋ*) (@lycoris102) 2017年8月5日
TileMap上にアイテムなどのオブジェクトを設置する際には、Grid以下に置くとGridに沿って移動させることが出来るのでオススメとのこと。
Memo: Grid以下に配置したオブジェクトは、Sceneビュー上ではグリッドに沿って移動/配置させることが出来る #Unity道場 pic.twitter.com/U0Jve4ajXN
— 青木とと(ˊᗜˋ*) (@lycoris102) 2017年8月6日
TileAssetと当たり判定について
TilePaletteにTextureを登録すると生成されるTileAssetをProjectで選択すると色や衝突判定を設定可。ColliderTypeは None(衝突しない) / Grid(マス目に衝突判定) / Sprite(Spriteの設定に準拠) #Unity道場 pic.twitter.com/c4x7HwvtSp
— 青木とと(ˊᗜˋ*) (@lycoris102) 2017年8月6日
Memo: TileAssetのColliderTypeをSpriteにしたときの当たり判定の領域は、SpriteEditor上で変更することができる #Unity道場 pic.twitter.com/M5JoCoGVTZ
— 青木とと(ˊᗜˋ*) (@lycoris102) 2017年8月6日
SpriteMaskと組み合わせると楽しい
SpriteMaskに関してはテラシュールブログ上の記事を参考に。 uGUIのMask機能がMaskコンポーネントを持つGameObjectの子要素に対してMaskが適応されるのに対し、こっちはSpriteRendererにおいてMaskの影響を受けるか/受けないかを設定する感じになった。 これをTileMapと組み合わせて、以下のようなものが作れた。
たーのしー! #Unity道場 pic.twitter.com/q6IjhfAEMj
— 青木とと(ˊᗜˋ*) (@lycoris102) 2017年8月5日
ProgrammableTile / CustomBrush
タイル描画時の挙動を改造することが出来る。今回は用意されたサンプルプロジェクトに付随された、AutoTileを使用した。これは、配置されたタイルの左右/上下のつながりの関係に応じて、どのタイルを利用するかを決めるというもの。 また ProgrammableTile を使えば、ランダムにタイルを配置することも、SpriteAnimationを適応することも可能。 また、CustomBrushを用意することで、TileMapの塗り方にパターンを持たせることが出来る (ランダムに配置したり、直線上に配置したり)。
以下がUnity公式が発表しているProgrammableTileのサンプルおよびサンプルプロジェクト。
今回の会について
上記の @RyotaMurohoshi さんの記事でも触れられている通り、1度説明後に講師の方を真似して一緒に作業するフロー/質問しやすい環境で、とても理解が進む会でした (MakerFaire/デザフェスと日程が被ったこともあり、あまり人数は多くなかった感じでしたが、ワークショップ形式であることを考えたらちょうど良い人数だったかも)
タイルマップ使って何か作ってみたいところではあるのですが、タイルマップの弱点は素材が整わないと何も出来ないというところ… 何かフリーの素材漁ってみようと思います。
参加者のみなさん、講師の椿さん、ユニティスタッフのみなさん、ありがとうございましたー! (あと個人的にですが、椿さんに1週間ゲームジャムの実況ありがとうございました!ってお伝えすることができて良かった….)
Unity1週間ゲームジャム(2017/07/24〜)に参加しました
Unity1週間ゲームジャムとは?
- @naichilab さんの運営する unityroom というサイトで開催されたイベント
- 1週間でお題に沿ったUnity製のゲームを製作する
- 4回目である今回の課題は「夏」
成果物
夏の花火 彗星の夜 | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
こんな感じのゲームですー! | 夏の花火 彗星の夜 | ゲーム投稿サイト unityroom #unity1week https://t.co/ZnGOfwB1ig pic.twitter.com/DfkfvUd9PH
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年7月30日
使用アセット
着想
今回のテーマは夏ということで、割と具体的なモチーフが求められるお題でした。
モデリング(まだ)出来ない、イラスト(まだ)出来ないな自分にとっては結構ハードル高く、花火はその中で何とか自分が出来ること (エフェクト/パーティクル) の中で一番マシな感じになるだろうということで採択されました。
システムは全く未定ですが、元気があれば花火のゲーム作ります #unity1week pic.twitter.com/bnGytmOrQt
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年7月23日
花火作るぞ!とデザインを固めた時点ではまだどういうゲームシステムにするかは決まってなく、花火の遅延して発火する特性が活きる「引っ張りゲー」か「音ゲー」で悩んでいました。正直この両者で「引っ張りゲー」を採択したのは何となくではあります (1週間ゲームジャムの初回で音っぽいやつを作ったので、傾向変えようと思ったのかもしれない)
仕様
コントラスト
www.slideshare.net
今回はコントラストを意識するよう心がけました。 今ひとつな部分もありつつ、今後も意識したいことではあります
- 画面の色彩のコントラスト
- 黒背景と白い花火 / 補助線 / ターゲットサークル
- ブルームによる強調 (Post Processing Stack)
- リスクとリターンのコントラスト
- 貯めると当たりやすく範囲も広がるが、連発できない
- チャレンジ/難易度のコントラスト
- Wave6~8で学習させる (色々なパターンを見せる)
- Wave9は難易度を下げる (単調だけど気持ちいい/クライマックスに向かう)
- Wave10はラスボス (やりごたえがある/これまでの学習を活かす)
アップグレードシステム
Downwellプレイしたときから、ずっとどこかでやりたいなぁと思っていました! 徐々に強くなっていく感じが出せ、自分の個性が出せる用にカスタマイズできる素晴らしいシステムです。正直これがやりたくて、Wave制に倒したところはあります。
昼休み作業 / どこを目指しているのか… #unity1week pic.twitter.com/PzaDOmF0op
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年7月26日
ただ中身はもう少し精査したかった...。特にランダム制の高い「親子連れ」「たまや」は画面映えするにも関わらず、そこまで役に立たなかったのが反省点。役に立つような (例えば密度が高い巨大な集合がゆっくり降ってくる) ステージを作ってあげる等、できることはあったはず。
ステージ
各WAVE毎にcsvで管理しています。SpreadSheetで発射時間とスタート座標/ゴール座標、下に行き着くまでの時間を設定し、出力したものを使用しています。DOTweenで移動/大きさ/透過度を制御し、遠くから近くに落ちてくる雰囲気を出しています。遠くから来ている感じはEasingにより徐々に加速する要素でも表現したのですが、そのせいでかなり簡単なステージが出来てしまったのが反省点。
進行
今回の作業時間は15時間程でした。会社に着いてから定時までの時間、お昼休み、帰宅後 + 土曜日で作業しました。前回よりは作業時間は確保できた...はず。
タイトル/世界観
夏といえば終焉モノですね!ね! 結構明るい題材が増えそうだったので、少し暗め/切ないトーンに倒してみました。 また、右上のポエムは、ステージが進行していることを分かりやすくするために取ってつけたものでした。あまり読む暇無かったかもしれない (コメント等であまり触れられてない要素)。
タイトルに関しては「彗星花火」という仮名を置いていたのですが、これだとただの漢字の集合として埋もれてしまう可能性があったので肉付けしまして、今まであまり出てなさそうなところ (文学/ラノベっぽさ) を狙いました。あまり詳しくないけど「イリヤの空、UFOの夏」っぽい 。
感想貰った!
開発者さんに評価いただくのめちゃくちゃ嬉しいですね...
ととさんは毎回良い感じの物を作って凄い >>夏の花火 彗星の夜 | ゲーム投稿サイト unityroom #unity1week https://t.co/lN7TOkDraV
— オークマネコ@デジゲー博 B-22b (@ookumaneko_XD) 2017年7月30日
たった1週間でこんないい雰囲気にできちゃうんですか...
— yukidaruma (@yukidaruma_app) 2017年7月30日
夏の花火 彗星の夜 | ゲーム投稿サイト unityroom #unity1week https://t.co/k8eYLi2C1R
夏の花火 彗星の夜 | ゲーム投稿サイト unityroom #unity1week https://t.co/GeLZa5WaTw
— 浦城洋 (@Hiroshi_ura_ki) 2017年7月30日
儚い雰囲気な花火のミサイルコマンド風ゲーム
バナー広告にマウスが入るとドラッグが固まっちゃうのよね
『夏の花火 彗星の夜』、安定のクオリティ。すごいよくできてる。花火で隕石を迎撃するというもので、花火の発動までタイムラグがあるからだいぶ手前に配置するのがコツかな。成長要素もあったりやりこめそう #unity1week感想
— パン@アプリ開発マン (@pann_burukuri) 2017年7月31日
夏の花火 彗星の夜 | ゲーム投稿サイト unityroom #unity1week https://t.co/bYwtgEzbTV
— たなかゆう (@am1tanaka) 2017年7月31日
開発中から楽しみにしていた作品。遊んでみると期待以上の完成度。ここまでのレベルだと音が無くても気にならないというかそれも演出に見えてしまう
これはヤバいくらい素晴らしいですね…。
— ねこバタ会議@RogueBlood制作中 (@nekobata_kaigi) 2017年8月1日
夏の花火 彗星の夜 | ゲーム投稿サイト unityroom #unity1week https://t.co/iGRIB5AgFP
見た目が素晴らしい!いい雰囲気!Waveの最初からなのが少しめんどくさかった。 夏の花火 彗星の夜 | ゲーム投稿サイト unityroom #unity1week https://t.co/AxLatQnj4L
— アロン (@at_aron_games) 2017年8月2日
また、憧れのUnityTechnologiesJapanの皆さま(ntnyさん/椿さん/そめ先生)にプレイしていただきました! クリアまでしていただき、めちゃくちゃ嬉しかったですー!
頑張りましょう
- レベルデザイン
- 常に動いているものを置く
- 今回でいえばうっすら雲掛ければ良かったなぁと
- 音(毎度間に合わない...)
- 新しいチャレンジ
次回の参加
今回で4回目の参加となります。なんとか今のところ皆勤賞です (そんなに多くないかしら...? )
ここまでの参加ですが、割と「出来ること」しかやっていないのが心残りです。安定感を評価していただけて、ブランディング出来ているといえば出来ているのですが、逆にいえば新しいチャレンジが出来ていないというところでもあります。なので、次回やるなら最低1つは新しい要素は組み込みたいし、過去作とに過ぎないようにしたいと思っています。例えば3Dゲーム作る。Shader触る。Meshの頂点いじくる。
この記事ではざっくり感想を書きましたが - UI周りにブルーム(Grow)どういう風に掛けているのか知りたい - 制作フローや実装について というお話も頂けたので、この感想エントリとは別途時間を見つけて記載しようと思います。
今回も @naichiさん、参加者の皆さん、ありがとうございました!良い夏を!