愚弟ブログ

アウトプットすることで自分の知識を深めていく

Unity 1週間ゲームジャム(6月)に参加した話

 

先月は参加2週間後にブログ書いてみたら内容がスッカスカだったので、

記憶が新鮮なうちに書いてみる。

 

今回のお題は「積む」。

Unity 1週間ゲームジャム | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

 

 投稿した作品

 f:id:kitti_gutti:20170626231719p:plain

イーサン兄さんの天国への階段

なんらかの理由で前に進むしかなくなったイーサン。(あとづけ設定

階段を積んで天国へと導いていこう!って感じのゲーム。

のっけからエンドレスモード。ランキングもあるよ!

マウス操作のみで遊べるので是非プレイしていただきたい。

 

スタート時の落ちていく感じは映画マトリックスのジャンププログラムのロードシーンを意識した。

趣味で作ってたので流用した。 

 

BGMは禿山の一夜。

クラシックは著作権がガバガバだと思ってのチョイスだが…?

たまたまだが先に入れてた階段の接地音がシンバルっぽくてBGMに合ってた。

 

背景のグルグルは自分が以前撮影した星空を回した。

 

完走した感想

今回も楽しかったです(小並感

 

驚異の集中力だった。

飯もそこそこに土曜日12時間、日曜日10時間ぶっ続け。

それでも遅刻投稿&クオリティはあのザマですよ。凡人はつらいよ。

 

それでも使ったことのない技術に挑戦したあたりは自分を褒めたい。

今回はAnimatorのMatchTargetに挑戦した。

まあこれだけに3日分使ったわけだが(白目

docs.unity3d.com

 

MatchTargetについて

こちらの記事を大いに参考にしました!

gametukurikata.com

tsubakit1.hateblo.jp

 

詳しいことは上記記事で丁寧にわかりやすく解説されているので、そちらを御覧いただきたい。

以下は凡人によるMatchTargetを使ってみた感想などを書く

 

最初は高さのない階段を大きめのカプセルコライダーで無理矢理登らせてた。

 

でもこれじゃ全然高度を稼げないので、何かよじ登らせようと思ってたどりついたのが、

このMatchTarget。

 この赤い壁や、黄色い階段を登っていく動きはMatchTargetを使っている。

 

自分なりにMatchTargetをまとめてみると、

「指定した体のパーツ(手足など)を指定した期間中に指定した目標地点に到達するように動かす機能」

となる。(伝われ

 

 

例えば階段を登る動きでは以下のようなパラメータを設定したanimator.MatchTargetをコルーチンで回して実現。

  • 到達させたいパーツには左足を指定
  • 期間にはアニメの左足が離れた瞬間~左足が着地する瞬間を指定
  • 目標地点には階段真ん中より少し手前の上面を指定

 

今回大量のトライエラーをしたことで、animator、mecanim含めて長時間触れた。

せっかくの知識なので今後も要所で使っていきたい。

 

つまづいた所

アニメはするが目標地点に全くマッチしない→MatchTarget中はコライダをfalseにすることで解決した。

たまにマッチしたり、マッチしても変な位置だったりしていた。

今回のキャラが自動移動するという特性上、アニメの開始はキャラのコライダの接触時としていたんだが、これにより登るターゲットがかなり近い位置にある場合が多く、登る時にコライダが引っかかってマッチできずにいた。

何故かapplyRootMotionをコライダとかガン無視すると思い込んでいたための失敗。

 

MatchTarget終了時のコライダ復活時にイーサンが上にぶっ飛ぶ→MatchTarget終了時間を調整

見た目ではもう登りきってると思いきや、コライダは階段にめり込んだ状態だったので、階段に押し出されてぶっ飛んでた。

コライダの接触が終わりそうな部分までコライダの復活を待った。

 

MatchTarget連続使用時にテンポが悪い→アニメのインポート設定のloopTimeフラグをはずすことで解決

階段を連続でポンポン登りたいのに、登る→歩く→登るのように条件を満たしてそうなのに歩くアニメがはさまってしまていた。

対象アニメのインポート設定のloopTimeフラグがONになっており、これのせいなのか遷移後もisMatchingTargetがfalseにならなかった。

マッチで使ってたアニメを裏で再生しきったらisMatchingTargetがfalseになってた模様。

 

よじ登りアニメの時に空中を掴んでいる→コライダサイズを小さくするか、MatchTarget中にコライダ切る

見えない腹のせいで目標地点まで手が届いてない感じだった。

 

 

これらのつまづいた所は、スクリプトデバッグよりも、シーンビューでマッチ部分を拡大&コマ送りで眺めていて気づいたりした。 

こういうデバッグもありだなあ。

 

 

Unity 1週間ゲームジャム(6月)に参加した話はこれにて終了。

今回も全然まとまってないじゃないか(呆れ

 まるで成長していない…