日別アーカイブ: 2015年10月22日

Unity の NavMesh を使って目的地まで移動させてみた

障害物を避けながら移動する仕組み NavMesh を試してみた経過を、スクリーンショットに適当なコメントをつけながら紹介します。

作ろうとしたもの

障害物を避けながら移動する何か。

途中経過

MoveToGoal_objects

とりあえず、移動する物体と障害物になる予定のブロックを用意しました。

MoveToGoal_0

障害物はプレハブ化して、ランダムな位置に配置しました。 このスクリーンショットのように、初期位置が他のブロックと重なると場外に落下することがあります。 諸行無常です。

できたもの

MoveToGoal_1 MoveToGoal_2 MoveToGoal_3

で、Nav Mesh を地面に適用し、Nav Mesh Agent を赤い球に適用し、Nav Mesh Obstacle をブロックに適用しました。

で、クリックした位置を指定して SetDestination() を呼び出すと、赤い球がちゃんと動くのが確認できました。

これらのスクリーンショットから移動の様子を読み取るのは不可能だと思いますが、動画を用意するのは

めんどう

なので、このままでよいことにします。

感想、今後の予定

Unity すごい。 C++ で書くと面倒で仕方がない処理が調べながらでも2時間くらいで実装できるの、やっぱりすごいです。

ただ、移動については速度や加速度を調整しないと障害物間際でプルプルしたりします。

今回のソースコードは、下記プロジェクトのリポジトリ中の MoveToGoal です。
https://bitbucket.org/satofumi/unity_learning

 

Unity を使ってずんだ餅が転がるだけのアプリを作ってみた

前回からの間に「よし、ちょっとカッコイイ陣取りゲームを作ろう!」って思った結果、「良い物を作ろうとして進捗が止まる病」にかかっていました。 で、それを指摘されたので原点回帰として適当な Unity アプリを作りました。

作ろうとしたもの

漏斗に粒をたくさん流しこんで眺めるやつの 2D 版を作ろうとしました。

途中経過

とりあえず画像を貼り付けて簡単な説明を書いていきます。

ZundaFunnel_add_prefab

棒とボールを作って配置しました。 isKinematic がそのままの状態で実行してしまい、棒も落ちていく様子を見ることができました。
あ、ボールには画像として「東北ずん子」のサイトにあるずんだ餅を使用しました。
東北ずん子のイラスト、素材のページ: http://zunko.jp/con_illust.html

zzm_zunda

ZundaFunnel_last

ずんだ餅の粒を Prefab 化して、ある点からランダムな方向に発射されるようにしました。 なんというか、それっぽい感じです。

ZundaFunnel_tumaru

それから、出口が狭いと詰まってしまうのが確認できました。

「つまらないアプリじゃないな!」

とか喜んだりしました。

できたもの

ZundaFunnel_continuous

ここまで実装して、

「あ! これ完全に米の脱穀機だ!!」

って思いました。

感想、今後の予定

今回、無事に米の脱穀の様子を表現することに成功したので、次はまた別の何かをしようと思います。 A* アルゴリズムでキャラクタを移動させるのとか作ってみたいです。

今回のソースコードは、下記プロジェクトのリポジトリ中の ZundaFunnel です。
https://bitbucket.org/satofumi/unity_learning