「ナビゲーションと探査経路」の編集履歴(バックアップ)一覧はこちら
「ナビゲーションと探査経路」(2016/08/15 (月) 14:10:10) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<ul><li>Nav Mesh設定</li>
</ul><hr /><ul><li>
<h2>Nav Mesh設定</h2>
</li>
</ul><p style="line-height:20.8px;"><span style="line-height:20.8px;">■AIの経路を事前計算する</span><br /><span style="line-height:1.6em;">http://tsubakit1.hateblo.jp/entry/2014/09/28/233000</span><br /><br /><span style="line-height:1.6em;">・ステージを作る(Box ColliderとかMesh
Collider入り)</span><br /><span style="line-height:1.6em;">・地形となるGameObjectをstatic属性に変更</span><br /><span style="line-height:1.6em;">親オブジェクトをStaticにすると子供もStaticになる</span></p>
<p>・NavMeshの設定<br />
Window>NavigationでNavmeshウィンドウ→Object→Bake(そしてRadiusで調整)</p>
<p>■マップから落ちないようにステージ上を歩かせる楽な方法<br />
http://tsubakit1.hateblo.jp/entry/20131104/1383573538</p>
<p>・動かしたいオブジェクトにNac Mesh Agentコンポーネントを追加する</p>
<p>★ポイント★Targetの位置に向かって自動的に動く<br />
public var target : Transform;<br />
var agent : NavMeshAgent;<br />
function Start () {<br />
agent = GetComponent(NavMeshAgent);<br />
target.position = Vector3(0,0.6,-8);<br />
}<br />
function Update () {<br />
GetComponent(Animator).SetFloat("Speed", agent.velocity.sqrMagnitude);<br />
agent.SetDestination(target.position);<br />
}</p>
<p>移動するだけならこれだけでOK</p>
<p>■NavmeshのAI経路探索とAnimatorのアニメーションを連動させる #Unity<br />
http://tsubakit1.hateblo.jp/entry/2015/07/02/233000</p>
<p>・オブジェクトについてるAnimator→Apply Root Motionのチェックを外す<br />
・Parametersに切替える要素(Speedとか)を作成(数値は5.0で)<br />
・AnimatorでCreate State>From New Blend Treeを作る<br />
・Blend Treeを<span style="line-height:20.8px;">★</span>ダブルクリック★して中身を覗く<br />
・Motion→[+]→Add Motion Fieldでモーション追加(x3)<br />
・IDLE,WAL,RUNのモーションを登録<br />
・Automate thresholdsのチェックを外す<br />
・モーションの閾値登録(0;0.3;5)<br />
・Parameterを指定(Speed)<br />
・AnimationConrollerにBlend Treeを登録</p>
<p><span style="line-height:20.8px;">■</span>終了距離が近づいてきたら、動かないアニメーションに切り替える</p>
<p>・AnimatorにBoolのIsStopを作る<br />
・Blend TreeからIDLEにつなげる(IsStop が true)<br />
GetComponent(Animator).SetBool("IsStop", agent.remainingDistance <
agent.stoppingDistance);<br /><br />
・StoppingDistanceはNav Mesh Agentで設定可能(初期値0なので1とかにする)</p>
<p style="line-height:20.8px;"><br /><br /><br /><br /><br /><br /><br />
</p>
<p> </p>
<p> </p>
<p> </p>
<ul><li>Nav Mesh設定</li>
</ul><hr /><ul><li>
<h2>Nav Mesh設定</h2>
</li>
</ul><p style="line-height:20.8px;"><span style="line-height:20.8px;">■AIの経路を事前計算する</span><br /><span style="line-height:1.6em;">http://tsubakit1.hateblo.jp/entry/2014/09/28/233000</span><br /><br /><span style="line-height:1.6em;">・ステージを作る(Box ColliderとかMesh
Collider入り)</span><br /><span style="line-height:1.6em;">・地形となるGameObjectをstatic属性に変更</span><br /><span style="line-height:1.6em;">親オブジェクトをStaticにすると子供もStaticになる</span></p>
<p>・NavMeshの設定<br />
Window>NavigationでNavmeshウィンドウ→Object→Bake(そしてRadiusで調整)</p>
<p>■マップから落ちないようにステージ上を歩かせる楽な方法<br />
http://tsubakit1.hateblo.jp/entry/20131104/1383573538</p>
<p>・動かしたいオブジェクトにNac Mesh Agentコンポーネントを追加する</p>
<p>★ポイント★Targetの位置に向かって自動的に動く<br />
public var target : Transform;<br />
var agent : NavMeshAgent;<br />
function Start () {<br />
agent = GetComponent(NavMeshAgent);<br />
target.position = Vector3(0,0.6,-8);<br />
}<br />
function Update () {<br />
GetComponent(Animator).SetFloat("Speed",
agent.velocity.sqrMagnitude);//速度-アニメ連動<br />
agent.SetDestination(target.position);<br />
}</p>
<p>移動するだけならこれだけでOK</p>
<p>■NavmeshのAI経路探索とAnimatorのアニメーションを連動させる #Unity<br />
http://tsubakit1.hateblo.jp/entry/2015/07/02/233000</p>
<p>・オブジェクトについてるAnimator→Apply Root Motionのチェックを外す<br />
・Parametersに切替える要素(Speedとか)を作成(数値は5.0で)<br />
・AnimatorでCreate State>From New Blend Treeを作る<br />
・Blend Treeを<span style="line-height:20.8px;">★</span>ダブルクリック★して中身を覗く<br />
・Motion→[+]→Add Motion Fieldでモーション追加(x3)<br />
・IDLE,WAL,RUNのモーションを登録<br />
・Automate thresholdsのチェックを外す<br />
・モーションの閾値登録(0;0.3;5)<br />
・Parameterを指定(Speed)<br />
・AnimationConrollerにBlend Treeを登録</p>
<p><span style="line-height:20.8px;">■</span>終了距離が近づいてきたら、動かないアニメーションに切り替える</p>
<p>・AnimatorにBoolのIsStopを作る<br />
・Blend TreeからIDLEにつなげる(IsStop が true)<br />
GetComponent(Animator).SetBool("IsStop", agent.remainingDistance <
agent.stoppingDistance);<br /><br />
・StoppingDistanceはNav Mesh Agentで設定可能(初期値0なので1とかにする)</p>
<p style="line-height:20.8px;"><br /><br /><br /><br /><br /><br /><br />
</p>
<p> </p>
<p> </p>
<p> </p>