Unity1週間ゲームジャムの開発話 技術編
自己紹介
GoToSeven、代表兼プログラム担当の26℃です。
←こんなアイコンで活動してますが特に変態ではありません !
今回作ったTheDango!について技術的な話を中心に書いていきます。
TheDango! | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
ダンゴムシ
Unity 1週間ゲームジャムのお題が転がるということで思いついたのがハリネズミです。
TVでハリネズミの特集(ヒゲじいがでるやつ)を視聴した直後だったもので…
しかしハリネズミではパンチが足りないと考え、丸まる別の生き物ダンゴムシを作ることにしました。
そしてVeLTiNA氏に相談もなく作り出したのがこれです、
パンチがある=キモイ という考えなので脚のアニメを無駄にリアルにしてます。
お題が転がるだそうで #unity1week pic.twitter.com/lxi2kS5qZi
— 26℃ (@oirahakobito) 2017年5月22日
ご覧の通り脚が丸いコライダーWheelJoint2Dとなっています、このコライダーを使うことで段差などがあっても乗り越えることが容易になりました。
ダンゴムシの上にダンゴムシが這い上る、壁に登るなどの行動もWheelJoint2Dで再現できます。
タイヤが地面に接触しているときに重力を切りダンゴムシの腹の向きのベクトルにAddForceを使い引き寄せています、引き寄せることでタイヤが地形に密着し動くことが可能となりました。
交尾してるダンゴムシをタッチして邪魔する陰湿な遊びも考えたのですがおぶさったまま動くのはちょっと面倒なので止めました。
愛を育むダンゴムシの図(偶然)
WheelJoint2Dなのですが、設定が難しいですねタイヤのmassの値をちょっと変えるだけで挙動が変わります。
さらにこのダンゴムシにはバグがあります…
ダンゴムシには5つのアニメパターンがあり
アニメでタイヤを非表示、位置調整などしていたのですが
裏返りじたばたするアニメのタイヤのPositionのアニメキーを削除または値を変えると
走っている挙動が不安定になり、空中に回転しながら舞い上がる謎のバグが発生するんです…なんで?
裏返りじたばたするアニメは再生されてもないのに、こう影響するのはスクリプトのせいかなぁ。
アプリ版でもだそうと考えているのでその時までには解決しときたいです。
ダンゴムシのAIについても少し触れておきます。
ダンゴムシは正面にひたすら歩くだけです、放っておけば壁や天井も這って行きます。
脚となるタイヤが地形に触れていないと判断すると、重力を戻し落下させています。
地形と速度の影響で体が裏返ってしまうとジタバタアニメになり体をくねらせもとに戻ります、そのとき進行方向が逆になります。
体のコライダーに強い衝撃を感じたらすぐに丸まります、体に地形が触れていないのに丸まるときがあるのですがそれはバグです(虫だけにゆるして)
ステージコース
最初はBoxCollider2Dを利用してコースを作ったのですがコースを作るたびBoxのオブジェクトが増え編集しずらく、BoxとBoxの境目ができて見栄えが悪いという理由からEdgeCollider2Dをつかうことにしました。
EdgeCollider2Dは編集が簡単でオブジェクトを増やす必要がなくコースを作るのに最適です。
EdgeCollider2Dは自前で表示させる必要があるので頂点データをそのままLineRendererに利用しステージの線を表示しています。
UI
ボタン・秒速・時間の表示位置の設定でCanvasを利用しました。
RenderModeでScreenSpace-cameraにするとカメラがダンゴムシを追って動いても
UIのボタンや文字は常にカメラに収まります。
これまでカメラが動くゲームをunityで作ったことがないのでこれがはじめての試みでした。
ランキング
ゲームを白熱させる要素としてランキングは大事な要素となると思います。
今回のゲームジャムのために主催者であるnaichi氏が公開されたサンプルを組み込みました。
サンプルをそのまま利用しようと考えたのですがゲームデザインにこだわるVeLTiNA氏に押し負けちょっとだけデザインを変更することに。
サンプルをみるとここでもCanvasが使われておりたいへん勉強になりました。
ランキングを実装した結果ですが、狙い通り熾烈なTOP争いが繰り広げられています。
見所
ゲーム要素としてタイムアタックモードを導入しましたが、タイトル画面が一番の見所なんですよ。
ダンゴムシボタンを押すとダンゴムシが落ちてきてじっくり鑑賞できちゃいます。
制作者のロゴを絡ませるのがGoToSeven製の流儀なので上から落ちてくるんですが、まぁぶっちゃけるとダンゴムシ鑑賞の邪魔かなぁとおもったり…
だんごむしスイッチ皆も押してね! #unity1week #gameart #pixelart pic.twitter.com/HhwqWFA8cs
— 26℃ (@oirahakobito) May 27, 2017
動画だと100匹落ちてきてますが、WebGL版はメモリの負担を考えダンゴムシ20匹ぐらいしか表示できないようになってます。
たくさん落としても面白いですが、3匹ぐらいを眺めるのが丁度いいかと思います。
最後に
ゲームジャム面白かったです、参加者のゲームも刺激になるものが多々ありました。
多すぎてまだやってないのも沢山…
また次のお題がでたら参加してみたいですね、3Dゲームとか興味あるんですが1週間じゃさすがに無理かな。
前もって勉強しておきたいですがその暇がいまのところないですね、とうぶん2Dゲームつくっていきます。
いち推しゲーム
Coin GoIN | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
コインの入る穴の当たり判定でかくしてるんだろ?と思ったら判定が予想以上にちいさくて難しくムキになってクリアできるまでやってしまった…
リレーショナーしげる | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
こういうノリのゲームすき。
SynCube | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
2つの箱を操るゲーム、よくできてる。
転がる偉大な英国面 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
ひたすら逃げるだけなのにこんなに面白くなるんですね。
ピン男 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
難易度高すぎて未クリアですが、逃げ惑うピンがとても面白い。
石を転がして戦うやつ | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
一番はまったゲーム(弱いキャラをムキになってレベル上げした)
ゲームバランスをよくしたら俺が幸せになれた。