Pc-Trace

<< 2024年5月 >>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31






Pc-Trace
PC-Trace

< next Unityの記事 prev >
02/26(金)
画像ファイルがあります 添付ファイルはありません
02/24(水)
画像ファイルがあります 添付ファイルがあります
02/22(月)
画像ファイルがあります 添付ファイルはありません
02/12(金)
画像ファイルがあります 添付ファイルがあります
02/06(土)
画像ファイルがあります 添付ファイルはありません
01/29(金)
画像ファイルはありません 添付ファイルがあります
01/26(火)
画像ファイルはありません 添付ファイルがあります
01/26(火)
画像ファイルはありません 添付ファイルがあります
>>このカテゴリーの記事一覧

「NavMesh」について2

「NavMesh」について少し興味が湧いたところで、3D Warehouseから迷路のモデルをお借りし、目的地までの最短ルートを自動で探索して移動出来るかそのアルゴリズムを確かめてみた。

移動先はマウスによるクリックポイント。結果は動画の通り興味深いものとなった。
ビル内や道路などのルート検索など、他にも幅広く活用できるそうである。


【BAKEしたNavMeshの様子】


【経路探索について:Unityマニュアルより抜粋】
シーン中の 2 点間を結ぶ経路を探索するには、出発地点と目的地点をそれぞれの地点にもっとも近いポリゴンにマッピングする必要があります。次に、出発地点から検索を始め、目的地点ポリゴンに到達するまで近傍ポリゴンを進んでいきます。この際の経路を追跡することで、出発地点から目的地点までを結ぶルートが発見されます。探索に使用される主要なアルゴリズムには A*(A-star)と呼ばれるものがあり、Unity ではこれを採用しています。



「NavMesh」について

Unity公式サイトのマニュアルから。
http://docs.unity3d.com/ja/current/Manual/nav-NavigationSystem.html
色々活用出来そうだが、意味を理解するには時間が掛かりそう。

使い方の手順を理解するため、簡単なモデルを作成し、実行してみた。


手順

(1) 「Plane」をグランド代わりに、Rootに見立てる「Cube」を2個配置し、スケールで引き伸ばした後、片方を90度回転。
(2) Unityのメニューから、「Window」→「Navigation」をたどり、Navigationの設定画面を表示。
(3) とりあえず全てのオブジェクトをまとめて「Static」に指定。
(4) navigationのタブを選択し、「Bake」ボタンをクリック。
(5) ゴール(移動先)と、「Agent」に設定するオブジェクトを作成し、簡単なスクリプトをアタッチ。
※「Agent」は、メニューの「Component」→「Navigation」→「Nav Mesh Agent」で指定。
ゴールを指定するスクリプト(”MoveTo”)は、
http://docs.unity3d.com/ja/current/Manual/nav-CreateNavMeshAgent.html
をコピーして「Agent」にアタッチ。
面倒な人は、下の添付ファイルを利用しても同じ。

大まかには上の手順に従い、3つのゴールを作成して動かしてみた。

添付ファイル 添付ファイル


Standard Shader 練習1



モデルの質感を「Unity」だけで表現出来るようになるには遠く及ばないと思いつつ、簡単なものから。

上の、「Youtub」eの動画から、たった二つに絞って練習してみた。
写り込みの無い条件下でもそれなりの質感を得られる事が分かった。

【メタリック】


【スペキュラー】



「Configurable Joint」+「DragRigidbody.cs」で、3枚・引き違い戸

扉が一枚増えるだけで異なる設定になる、「DragRigidbody.cs」と、「Configurable Joint」を利用した3枚引き違い戸。



それぞれの扉の「Configurable Joint」の設定値。

【一枚目の設定】


【二枚目の設定】


【三枚目の設定】


固定した場合



「Configurable Joint」+「DragRigidbody.cs」で、引き違い戸

「Physics」の、「Configurable Joint」を使った”引き違い戸”の作成。
マウスドラッグで開閉させたいので、今回は「DragRigidbody.cs」を「Plane」にアタッチ。

【マウス操作による扉の動き動画】




【扉一枚目の設定】




【扉二枚目の設定】




【作業画面】



「Hinji Jyoint」+「DragRigidbody.cs」で、観音扉

「DragRigidbody.cs」を使った具体的な例として映画館で見るような観音扉を作ってみた。

マウスでドラッグし、開く角度や、開いた扉を好きな位置で停止する事ができる。
開いたまま停止した扉は次のマウスクリックで元の位置に閉じる。

【※動画はマウス非表示】


Cubeで、1m×2m×10cmの扉を作成。
次に「Physics」→「Hinji Jyoint」で、一枚目の扉に軸を設定し、”Cube1”に名前を変更。

【Transform】


【HingeJyoint】


続いて”Cube1”上で右クリックし、「Duplicate」を選択し、二枚目の扉を用意。
スケール”X”に”-1”を設定して、扉を反転しておく。
続いて”Cube2”に名前を変更し、「Hinge Jyoint」を下図のように設定する。

【Transform】


【HingeJyoint】


アタッチする「DragRigidbody.cs」用に新しい「GameObject」を作成し、とりあえず「RB」に名前を変更(どんな名前でも)してスクリプトをドロップして完了。

【作業画面全体】


※「Auto Configure Connected Anchor」にチェックを入れる事で、観音扉を移動した際の軸ズレを防ぐ事ができる。

Manualによる説明
有効の場合、接続されたアンカーの位置が、アンカーのプロパティにあるグローバルポジションと一致するように、自動的に計算されます。これは、デフォルトの挙動です。無効にした場合、接続されたアンカーの位置を、手動で調整する事ができます



DragRigidbody 覚え書き

標準Assetsのスクリプトに含まれる「DragRigidbody.cs」の覚え書き。
今回はスクリプトを「Main Camera」にアタッチ。

忘れがちな注意点は、オブジェクトに、「Inspector」の、「AddComponent」から、「Physics」の「Rigidbody」を適用しておく事。






※ 添付ファイルは作業実寸大の”mp4”動画ファイル
添付ファイル 添付ファイル


Hinji Jyoint で折れ戸のシミュレーション

iTweenによる折れ戸(内開き)のテーマに触れた際、Unity実装の「Hinji Jyoint」にも置換えてやってみた。

開く角度や動く早さは設定で自由にできる。
”Connected Body”に、二枚目の扉を一枚目に抱かせる格好で設定。







複雑な動きをコントロールできる「SplineController」

使い方は難しそうだが、デモ画面だけでも「SplineController」機能の高さが窺える。(以下のサイトよりダウンロードできる。)
http://wiki.unity3d.com/index.php?title=Spline_Controller

豊富な機能ゆえ、使いこなすにはかなりの努力が必要。


【SplineControllerのサンプル設定画面】



iTweenMultiPath

複雑で長いパスを構成できる、freeの ”iTweenMultiPath”。
https://www.assetstore.unity3d.com/jp/content/13025

下は、”iTweenMultiPath”に含まれていた”グランドキャニオン”のサンプル動画。
長大なパスが扱えるため、様々なシーンで活用できそうである。


パス設定の様子が良く分かるサンプルデータ。



「Unity with VOCALOID」無償公開

【記事本文より】
ヤマハは、ユニティ・テクノロジーズ・ジャパンのゲームエンジン「Unity」上で、VOCALOIDの歌声を使ったコンテンツが制作できるソフトウェア開発キット「VOCALOID SDK for Unity」を12月22日より提供開始した。



なお、「VOCALOID SDK for Unity」と「Unityランタイム版VOCALOID Library unity-chan!」は、制作されるコンテンツが「ユニティちゃんライセンス条項」に準拠すれば無償で利用できる。

 VOCALOID SDK for Unityには、Windows 7/8/10、Mac OS X 10.10/10.11、iOS 8.4/9.1 上で動作するマルチプラットフォーム対応の歌声合成エンジンを組み込んでいる。歌声合成エンジンは、様々なコンテンツで軽快に動作するよう最適化され、コンテンツ内での機敏なレスポンスとコンテンツの軽量化の両立を実現したという。将来バージョンではAndroidへの対応も予定している。

 歌声合成エンジンは、プラットフォームごとのネイティブプラグインとして提供。C#のインターフェイスを介して歌声合成エンジンを利用できる・・

いまだに XP を利用している者にとっては無縁だが、さてさて・・。

完全に方向は異なるが、「Unity」絡みでもう一つ
http://tips.hecomi.com/entry/20131208/1386514048

着眼点も技術も・・・すごい!


Unity 標準Assetsにもあった、WayPoints

これまで気付かなかったが、Unity標準の、”Standard Assets”の中にも"Waypoints”を設定できるスクリプトが入っていた。
”WaypointCircuit.cs”と、”WaypointProgressTracker.cs”がそれで、ルートと、動かすオブジェクトにアタッチして利用する。







■実際に簡単なパス・ルートを設定し、動かしてみた



Bezier curve

「iTween」、「WayPoints」に続いて「BezierCurves」。

Curves and Splinesについて詳しく解説されたサイト。
http://catlikecoding.com/unity/tutorials/curves-and-splines/

ページ下段に必要な場面でのソースがダウンロードできるようになっており、ダウンロード後サンプルのシーンを走らせてみた。



サイト本文の意味を理解し、使い方に慣れると重宝しそうな”Assets”。
添付ファイル 添付ファイル


WayPoints のテスト

テスト用のパスを設定し、キューブに”WayPoints”の、”FollowPath.js” (個人的にはこれ一つのスクリプトで間に合う)をアタッチしてみた。
設定できる項目も少なくシンプル。



※ 添付ファイルは作業サイズの”mp4”動画と、利用した”FollowPath.js” 。
添付ファイル 添付ファイル


Unity3d Waypoints script

YouTubeで紹介されていた”WayPoints”の動画

複雑な処理を必要としなければ、”手っ取り早く”オブジェクトを動かす事が出来るスクリプト。

”FollowPath.js”を動かしたいオブジェクトにアタッチし、速度や、方向転換時の振る舞いなど、いくつかの必要な項目を設定し、事前に作成したパスを、”PathFolder”に指定する事でオブジェクトを動かす事ができる。
簡単だが、数多い ”パス”を扱う事ができ、重宝しそうだ。


添付ファイル 添付ファイル


< next prev >