見出し画像

Unity1Week「ない」に参加しました。

Unity1Week「ない」に参加しました。

今回は超久しぶり(もしかして初めて?)期限内に投稿まで終わりました。
一番上の章だけでも読んでいただけると助かります。


【微至急】ライセンス表記に関する質問

今回、R3を導入したのですがインポートにNuGetForUnityが選択肢として挙げられていました。
ここで一つ疑問なのですがNuGetForUnityなどのゲームシステム等に直接関わらないライブラリのライセンスは表記するべきなのでしょうか?NuGetForUnity自体はゲーム内のスクリプトに含まれていないので表記はいらないかなと思ったのですが、ちょっと謎だったので今回はUnityNuGetをスコープ付きレジストリでパッケージマネージャーに追加する形でインポートしました。
私が調べた範囲ではわからなかったので詳しい方おりましたら教えていただけるとありがたいです。

アイデアをまとめる

今回は諸事情によりゲームのアイデア出しを短期間かつアイデアを1枚の画像にまとめる必要がありました。当日のお昼ごろにお題を確認して約半日、出来上がった画像がこちらになります。

1枚にまとめると先が見通しやすくなる気がします。いい進め方かもしれません。実際少々誤算はありましたが、概ねこの画像の通りのゲームになっております。

注意!ルートモーション

今回最も時間がかかってしまった点としてアニメーションにおけるルートモーションと物理演算の関係があります。タイヤが破裂したときにプレイヤーが吹き飛ばされるアニメーションは物理演算を用いて描画していますが、なかなか吹き飛ばないどころか微動だにしないという問題がありました。
しかし、何故かアニメーターコンポーネントのルートモーションのボックスにチェックが入っており、それを外した途端面白いぐらいの勢いで飛んでいきました。今まで力不足と思ってとんでもない値の力を入力していたのですね。

結局それらしい原因は見つからないままでしたが、上のような記事を見つけました。この記事ではおそらくこのような場合の解決方法が書かれているのだと思います(試していないのでわからないです)。アニメーションが優先され物理を上書きしてしまうのでしょうか。

反省点

前回のunity1weekについての記事ではクラス図について触れました。

今回もクラス設計をしてから進めようと思いましたがまるで書けませんでした。必要な要素がはっきりと見えてきません。先ほど作った画像がありますが、あれはあくまでゲームの完成形を表したものでゲームの設計ではありません。1日かけても全く進まなかったので後は自分の思うままにスクリプトを書いて、後で主なクラスを図に起こすことにしました。

神クラス「GameSystem」が爆誕していまいました。それぞれ概ね名前の通りの役割をしています。GameSystemを直接参照しまくるUIたちが気になります。とはいえ実際のところはSerializeFieldのprivateフィールドでの参照なのでそこまで気にしなくてもいいんじゃないでしょうか……。欲を言えば間にプレゼンター役を挟んでもよかったかもしれません。しかしu1wなのでそこまでテストしないのでこれでよいのですよ、多分。

終わりに

今回は謎にプレイヤーの空気を入れる動作を2Dのスプライトのアニメーションで作ってしまいました。そのうえ破裂時のアニメーションも物理演算を用いて空気量に応じて吹き飛ばしています。今回はスクリプトよりもグラフィックに力を入れておりますので、以前のものより遊んでいて楽しいゲームだと思います。もしまだ遊んでいない方は是非一度遊んでみてください!

いいなと思ったら応援しよう!