Unity1weekに挑戦してみたまとめ

2/19~2/25に行われたUnity1weekに参加してました。
過去、2回チャレンジして1回はぎりぎり、1回は途中中断でしたが、
今回はとても順調。とはいえ、駄作ですが・・・。
備忘録も兼ねて少しメモしておきたいと思います。

どんなもの作ったの??

まずは見てもらうのが早いと思うので、終了前日に録った動画を張り付けておきます。

赤、青、緑のライトのうち、1色が指定されるのでその色のライトに当たるとポイントが入ります。
逆に指定されたライト以外に当たるとポイントが減ります。
時間ごとに指定色が変わるので、点数が入っていると思ったら減っていたりします。

できたこと

spring joint

今回、ライトの位置変更に使ったのがspring jointです。
位置管理用のオブジェクトを用意して、位置obj―(spring joint)―ライトでつなぎました。
ランダムに動くように位置objは乱数で位置管理しています。
ただ、急激な動きにはならないように、乱数の生成範囲を工夫しました。
また、springの強さも弱めにしています。
このspring jointの使い方は下のunity道場で紹介されていたものです。

Layerでの衝突管理

Layerって今まで設定したことなかったんですが、位置objとライトにLayerを設定しました。
そして、edit-project setting-physics-LayerCollisionMatrixのチェックを外すことで、ライト同士の衝突が起こらないようになりました。
衝突感知しないだけであればBox Colliderを外すだけでいいんですが、ライトの飛び出し防止のため、壁を作って制御しており、
壁とは衝突してほしいけど、ライトとは衝突してほしくないのでこういう処理にしました。

halo

haloはぼやっとした光を表現するもの(合ってる??)です。
今回は、単純に実装しただけですが、いろいろ使い道がありそう。

画面遷移を減らしてみた

前回公開したゲームでは、タイトル画面、メイン画面、結果画面の3つを使用してました。
今回はタイトル画面、メイン画面の2つのシーン。
結果画面はメイン画面に別キャンバスで表示させました。
結果表示するだけなら別シーンでもいいかもしれませんが、設定画面とかだと便利なのかなと。

できなかったこと

volmetric light

霧やほこりなんかがあると、光の当たってる位置だけでなく途中も見えるってやつ。
今回は、導入を断念してパーティクルで表現しています。
当初は、assetでできそうだったのでいろいろやってたんですが、時間の関係もあり断念。
また、PCなんかに負担をかけるようなのでよく調べないとやばそう・・・。

3つのライトの相対距離コントロール

ライト間の距離はランダムに決まるので、重なることもあります。
できれば、ライト同士の距離が一定距離以上に保たれるようにしたかったんですが・・・。
2DであればAreaEffector2Dのような機能を使えばできると思うんですが・・・。
もし実装するなら総当たりでオブジェクト間の距離を調べて、逆方向に力を加える感じかな。

今後試してみたいこと

Unity1weekのほかの人の作品で遊んでいると、Twitterの投稿機能は乗せたいなと思いました。
あとは、ランキング機能。この2つは、次回にトライしてみたいと思います。

まとめ

Unity1weekの備忘録的記事でした。
Unity触り始めてそれなりに時間がたちましたが、以前より作る力が身についた気がします。
以前よりも計画的に作れているし、トラブルシューティングが早くなったかも。
次回もぜひ参加したいと思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

トップへ戻る