0618-0625 unity1week 参加しました
2017年6月のunity1week参加しましたので、感想です。
パンツ積み上げ回収 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
0日目(Sun)
0時からお題が出たので、何を作ろうか考えてました。
とりあえず、「ステラのまほう」でやってたように、最近あった出来事からの単語やフレーズを書き出したり…。
そのときで「よし!これ!」で決まったのは…。
「石やウンコを積み上げて壁を作り、お婆ちゃんがものすごい勢いで強行突破する」
ハイスピードお婆ちゃん。
小学生のときの自分がノートの端っことかに落書きしてそうな感じ…。
最終的にはお蔵入りになったけど、なんか面白そうだからいつか作ってみたいかも。
1日目(Mon)
0日目で考えたものをどうやって作っていくか考えてました。
とりあえず、2Dドットかな…とぼんやり考えてました。
自分がドット絵を描く場合、いまだにアニメーションを作るのが時間かかってしまうので、ほぼ素材づくりで終わるかなと思ってました。
ただ、せっかく新規でゲーム作るなら、あんまりやったことないことやろうと思って、それまで考えたものを全部やめました。
じゃあ代わりに何を積んで、どうしようかと考えた際に、真っ先に思い浮かんだのが
「パンツ積みたい」
パトスが溢れて、何がなんでもパンツ積もうと思いました。
せっかく0日目で考えたものを全部なかったことにしたから、どうせなら2Dドットもやめよう!
そうだ!3Dにしよう!
その勢いのまま、ちょっと前にかじったBlenderでパンツの3Dポリゴンを組んで終わりました。
このときのテンションは今でも謎。
2日目
出来上がったパンツに色を指定して、とりあえず「ふわふわなパンツ」にするにはどうすればよいかを調べてました。
本当は落ちるときや、着地したときのパンツのアニメーションが組めればよかったのですが、
アニメーションの組み方を知らず、勉強している時間はなさそうなので、手っ取りばやく実現できる方法を探していました。
そしたら、それっぽいのがありました。
Yes!Clothコンポーネント!
旗を振る
ndabecha.blogspot.jp
これを見ながら、パンツの3Dポリゴンをインポートして、パンツを落としました。たぶんそれっぽい。
ついでにPrefab化して、増殖させました。(gifが重くてはてブロに上がらないので埋め込み)
2日目。とりあえず、パンツを落とすのを増殖させて積み上げて崩れるところまで。ゴールが見えないー。#unity1week pic.twitter.com/3WOAqSQ2Qw
— kb (@job_zero) 2017年6月20日
2日目までは意外と順調だなーくらいに思ってました。
3日目
パンツを増殖させながら、やっぱり少し重いなーと思っていたら、テストプレイしながらUnityが急に落ちることが増えました。
やっぱり重いのか、と思ったけれども、落ちるのはパンツを100個くらい増殖させた場合だったので、20~30個くらいの制限にすれば大丈夫かなと、ゆるーく考えてました。
とりあえず、パンツだけじゃ味気ないから、前から気になっていたSDユニティちゃんを使おうと思って、インポートした後どうするのか調べてました。
SD版ユニティちゃんでユニティちゃんのモーションを使う|ゆにてぃメイト
3日目は、SDユニティちゃんのアニメーションとかの使い方を見ながら、終わりました。
4日目
帰宅後、まさかの寝落ち…。
進捗ダメです。
5日目
ここからかなり迷走してました。「ステージどうすればいいだろう?」
- 横のみの移動にしてSDユニティちゃんを移動させて、頭の上にパンツを重ねていく、…とか。(↓のgifは後から作った再現)
- 色々無料のアセットをいれて、部屋のタンスからパンツが噴き出して、それを回収する、…とか。
俯瞰からの部屋は、SDユニティちゃんの顔が見えないので止めました。やっぱり美少女の顔が見たい。
横移動のみは、なんとなく「パンツを積んでたらSDユニティちゃんが妨害してくる」というのにしたくて、横移動だけだとすぐに詰みそうなのでやめました。
結果、壁とかなくして、低めな俯瞰で見て、空中に浮かぶ平面上、落ちたら終わりとしました。(最終的にできたゲーム)
このときまでのSDユニティちゃんは、パンツ回収キャラに衝突したら、SDユニティちゃんが向いている向きにAddForceしてくる予定でした。
やめた理由は、意外と邪魔すぎて、パンツが1、2枚くらいしか積めなかったせいです。
6-7日目は連日出勤だったので、ここで追い込みたく、パンツの積み上げまで頑張りました。
ただ問題が…。
パンツ固定問題
パンツを積み上げていく上で最初考えたのが、「籠を作って、その凹の中に入れていく」
でもコライダーを突き抜けてしまう現象ががが…。
ちょっとどうすればいいのか分からなくて、先人たちの知恵はないものかと探しました。
最初は摩擦係数上げまくって、着地したら全く動かんぞってくらいで行けるか試しましたが、ダメでした。
突き抜けてしまうんじゃあ仕方ない、とりあえず固定!と思い、今度はJointを使ったものを試しました。
その結果が下の挙動不審なバグへ…。
色々調べたりしていたら、これが正解?というのを見つけました。
コライダーは突き抜けなくなりましたが、パンツを積み上げて籠からこぼれるのが何とも悲しくて、結局は固定の道を探りました。
Jointはダメなので、どうすればいいんだろうと思ったら、ふと
そもそもSDキャラに籠固定してるじゃん
と気づき、パンツも子オブジェクト化すれば固定されるのでは、と思い至り、実際にやったら固定されました。
ここで5日目は終了(6日目には突入している時間で)。
6日目
朝から夜までお仕事で、最終日も仕事なので、ゲームとしての内容はここまでで終わりにするしかないと割り切りました。
とりあえず、ゲームオーバーになったらロードしなおせるようにしました。
後は、タイトル画面を作ろうとしたのですが…。これは上手く作れなくて、途中でやめました。(↓作りかけの画面)
後は、効果音やBGMを入れたり。
このとき、Music is VFRさんの効果音はまさに思い描いていた効果音だったので、テンション上がりました!w
後は細かい値の調整や、スクリプトでおかしいところの修正とかしてました。
7日目
WebGLへの出力を調べてました。
単に、Build SettingsからSwitch Platformするだけか、なんだ簡単じゃん( ^ω^)
と思っていたら、Switch Platformしたら、一面真っ白になってビビりました。
- Before → After
原因は、PostProcessingを使ってLightingの設定をしていた際に、Player SettingsのColor SpaceをLinearにしてたら、WebGLだとLinearは駄目って怒られていたのが主な原因…。
Gammaにしたら直りました。
こういうことあると思うと、最後にはある程度時間残しておきたいですね…。
そして、出勤までに何とかアップロードしておこうと思って、アップロード出来て、テストプレイしたら、
えっやたら重い…
Unity上だとそんなに重くなかったのに、WebGLで出力したものだと、ヤバいくらいに重い。
特にパンツが増えるとき。
Clothが重いのだろうと思い、軽くする方法を探っていたら、今更見つけても遅いものを見つけてしまう。
Cloth自体が重いから、そもそもあんまり使うなってことらしい…。
とりあえずRigidBodyも併用していたので、少しでも軽くするために、急いでRigidBodyをなくし、パンツはlocalPositionを動かすことで、ほとんど気のせいくらいのレベルで軽くなった気がします。
ここまでやってタイムアップ(出勤時間)になったので、アップロードして終わりました。
終わってみて
楽しい1週間でした。ちょっと寝不足で大変でしたが…。
正直、自分のゲーム拙いなーとは思うところが多々あるものの、一通りできたのはちょっと満足です。もっとパンツに埋もれたい…。
ついでに色々勉強になった…というよりも、これをするにはどうすればいいんだ?っていうのを調べて勉強した気がします。
締め切りがあるせいで時間がないので、「後で時間があるときに調べよう」みたいなことがなくて、強制的に勉強できる感じです。
あと、バグやよくわからない現象が起きた時、ついでに時間がないと、「ああもう駄目だ」ってなって、ついググるのを失念しがちになってしまいましたが、ググるとおおよその答えは見つかりました。
たぶん、そこまで難しいことがまだ出来ない分、答えが転がっているんだろうなあとは思います。
何か躓いたときに、ちゃんとすぐググれる癖をつけたいなあと思った次第でした。
今後は、とりあえずパンツを何とか軽くする方法はないか調べたり、考えたりすると思います…。
次回もほかのひとのハードルを下げる役として参加したいです。
長文でしたが、読んでいただいた方はありがとうございました。
追記
終わってみて、そういえばPrefab含めたオブジェクトやスクリプトの管理が終盤にかけて、ひどいことになってました。
そのあたり、ちゃんとした設計方法とかあれば勉強したいなーと思います。