第26回_プレゼン資料_菅原(Unityはじめるよ~NavMesh基礎~)

Similar documents
しずおかアプリ部 Unity はじめるよ すごいよサウンド機能 実践編 統合開発環境を内蔵したゲームエンジン いろんな職業の が る資料なので説明を簡単にしてある部分があります 正確には本来の意味と違いますが上記理由のためです ご了承ください この

PowerPoint プレゼンテーション

第33回_プレゼン資料_菅原(~IKを使ってアニメーションをコントロール~)

第32回_プレゼン資料_菅原(Unityはじめるよ~上半身だけ動かす2~)

Unity講座①

Microsoft Word - tyukan

3.2. Unity Unity の画面構成 Unity を起動すると以下の図 1 のような画面が表示される 図 1 Unity のインターフェース Unity の画面は主に以下のように分けられる ① Scene View Game View Scene View には作成するゲーム内

本 勉強する内容 基礎 3:Prefab コライダー応 1:uGUI 概要

MMC Unity講座

C#の基本

スライド 1

Åꤲ¸ë:¥¹¥�¥ë¤È»×¹Í¤òÊ»¤»»ý¤ÄVR¥²¡¼¥à¤Î¸¦µæ

2016 VOCALOID Group, Yamaha Corporation 2

IronPython による柔軟なゲーム開発 筑波大学 AmusementCreators

学校では教えてくれないアセットバンドル

駅すぱあとWebサービス for Unityを使った 交通機関情報の活用 竹田龍介 株式会社ヴァル研究所 1

Unite2016Tokyo-yasuhara.key


注意事項 このアセットを利用する前に以下の点にご注意下さい ビルドのターゲットとなるプラットフォームは Windows だけとなります アセットの特徴 Unity5 の場合 Personal Edtion Professional Edition のどちらでも利用できます どちらの Edition

Wordの学習


Microsoft Word - 道路設計要領.doc

FutureWeb3 Web Presence Builderマニュアル

ch2_android_2pri.indd

フローチャート自動生成ツール yflowgen の使い方 目次 1 はじめに 本ツールの機能 yflowgen.exe の使い方 yflowgen.exe の実行方法 制限事項 生成したファイル (gml ファイル形式 ) の開

モニタリング画面を開く にチェックを入れる またはメニュー画面か らモニタリングアイコンをクリックします 全画面表示 設定画面 録画再生画面表示ページサーバー カメラツリ左からシングル / 4/ 6/ 8/ 9/ 10/ 12 分割画面です ここをクリックすると 16/ 20( )/ 2

第47回_プレゼン資料_菅原(~よく人に質問されるTIPSと冬休みに勉強した技術紹介~)

TestDesign for Web

Microsoft PowerPoint P演習 第10回 関数.ppt [互換モード]

このアセットがスゴい!2016 Unity を進化させるアセット達 シージャイル株式会社 VR 室室長島田侑治

古い Unity* ゲームを VR 向けに更新する

IME( 日本語入力システム ) の確認 変更方法 / プロパティ確認の手順 ************************************************************************************ ドキュメント目次 IME( 日本語入力システム )

課題

OrCAD Family Release 9

Capture の設定 以下のフォルダを開いてください. C: Program Files OrcadLite Capture 開いたフォルダにある Caputure というファイルをクリックして選択します. Capture を選択した状態で右クリックします.

平成 29 年度卒業研究 初心者のためのゲームプログラミング用 教材の開発 函館工業高等専門学校生産システム工学科情報コース 5 年 25 番細見政央指導教員東海林智也

キリしていて メニューのボタンも大きくなっているので マウス操作はもちろん タッチ操作でも使いやすくなっているのが特長です アドレスバー画面上部にあるアドレスバーは インターネット検索も兼ねています ここにキーワードを直接入力して検索を実行できます 現在表示されているタブの右横にある + をクリック

ランタイム版 Pro 版共通 症例登録システム 2018/12/11 Q & A 目次 1. 起動時のエラー... 2 Q11. " ファイル jsgoe_data3.fmp12 を開くことができません" と表示されます (Windows) 2 Q12. ショートカットから起動できません (Wind

3Dプリンタ用CADソフト Autodesk Meshmixer入門編[日本語版]

次の演習課題(1),(2)のプログラムを完成させよ

PowerPoint プレゼンテーション

1. 画面のリンクやボタン タブをクリックしても反応しない 現象 ログイン後 リンクやタブをクリックしても反応がない ( 画面が変わらない ) 原因 (1)Internet Explorerの互換表示設定が外れている (2) ツールバーの アドオン と呼ばれる追加機能によりブロックされている (1)


補足資料

1. インストール方法マクロテンプレートをダブルクリックして開くと 図 1 や図 2 のような セキュリティ警告 が表示されることがありますが マクロを有効にする (E) ( 図 1) または コンテンツの有効化 ( 図 2) をクリックしてください 図 1 セキュリティ警告 (Windows Xp

. はじめに 動作環境の全ブラウザで 本書の設定を行ってください 本設定を行わない場合 システムが 正常に動作しない可能性がありますので 必ず設定をお願いいたします また 本書の中で 画 像に番号を付与している箇所以外の設定は お使いの環境のままでご使用ください 参考 : 動作環境の全ブラウザについ

brieart変換設定画面マニュアル

情報システム工学特論 Web アプリの作成により 次のことを学んでもらいます 1 無料ソフトウェアの活用 2 無料のソフトウェア開発ツール Runstant Lite 3 Web ブラウザのゲームライブラリ phina.js 4 Web アプリとは 無料ソフトウェアの活用 無料ソフトウェアとは イン

<4D F736F F D E835A A C98AD682B782E98E77906A89FC92F994C52E646F63>

K227 Java 2

STARTプログラム.indd

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 ゲームプログラミング スプライトの衝突判定 スプライトの衝突判定 スプライトの衝突判定の例として インベーダーゲームのコードを 下記に示す PYTHON3 #coding: utf-8 import pygame from pygame.lo

Microsoft Word - keisankigairon.ch doc

< F2D F B834E2E6A7464>

10_Link3_manual

C#の基本2 ~プログラムの制御構造~

目次 No. 内容 メニュー名 ページ番号 事前準備 IEバージョン情報確認 互換表示設定 (IE9 IE0 IEの場合 ) (IE0 IEの場合 ) 4 受注データを (IE0 IEの場合 ) 6 5 ( その)(IE0 IEの場合 ) 7 6 ( その)(IE0 IEの場合 ) 8 7 (IE9

COMSOL Multiphysics®Ver.5.4 ACDCイントロダクション

(1)IE6 の設定手順 (1)IE6 の設定手順 1) 信頼済みサイトの追加手順 1: ブラウザ (Internet Explorer) を起動します 手順 2: ツール / インターネットオプション / セキュリティ メニューを選択します 手順 3: セキュリティ タブの 信頼済みサイト を選択

Skill_Builder_Spur Gears Part 2_J

(6) コンボドライブのドライブ文字の変更 コンピュータの管理 ウィンドウの右下側フレームの CD-ROM 0 DVD (E:) と書かれた箱 ( 図 02-2) にマウスのポインタを合わせ, 右ボタンをクリックしてメニューを表示する メニューから ドライブ文字とパスの変更 (C)... を選択する

Java KK-MAS チュートリアル

WPF アプリケーションの 多言語切替

宿泊産業活性化のための実証実験

P00(表紙)




Transcription:

Unity はじめるよ NavMesh 基礎 統合開発環境を内蔵したゲームエンジン http://japan.unity3d.com/ いろんな職業の が る資料なので説明を簡単にしてある部分があります 正確には本来の意味と違いますが上記理由のためです ご了承ください この資料内の 部の画像 部の 章は Unity 公式サイトから引 しています

NavMeshって ナビゲーションシステムによって シーンのジオメトリから 動で 成されるナビゲーションメッシュを使 して ゲー ム世界の中を知的に動くキャラクターを作成することができ ます 動的 Dynamic 障害物によってランタイムでのキャラクタ ーのナビゲーションを変化させることができ オフメッシュ リンクのおかげで 扉の開きや出っ張りからの び降りなど の個別のアクションを作ることができます っp 公式ドキュメントから引 https://docs.unity3d.com/ja/current/manual/navigation.html

NavMeshって で 何ができるのさ 自動で移動するNPCが作れるよ マウスクリック地点にキャラを移動させる こともできるよ 障害物を自動で避けて 目的地まで移動可能 使い方も非常に簡単 イベントシーン等で キャラクターを自動で移動さ せたい場合にも有効

NavMeshって NavMeshの用語解説 ナビメッシュ NavMesh Navigation Mesh の略 は ゲーム世界の中で歩 可能な を描写す るデータ構造で ひとつの歩 可能な から別の歩 可能な へのパス を つけることができるようにするものです データ構造は ステージ のジオメトリ 形状 から 動で構築またはベイクされます ナビメッシュ エージェント NavMesh Agent コンポーネントは キャラクターがゴールに向かって進 する際に相互 に回避し合うように作成する助けになります エージェントはナビメッ シュを使 してゲーム世界を認識 判断 し 互いに回避し合ったり 障害物を動かしたりする 法を理解しています オフメッシュリンク Off-Mesh Link コンポーネントは 歩 可能な を使って表現することのできない ナビゲーション ショートカットの組み込みを可能にします 例えば溝 やフェンスを び越えたり扉を通り抜ける前にそれを開くことなどはす べてオフメッシュリンクとして描写できます ナビメッシュ障害物 NavMesh Obstacle コンポーネント これによって エージェントがゲーム世界をナビゲー トする 動き回る 際に避けるべき障害物を 動かすことができます 例えば 物理システムによって制御された樽やクレートなども 障害 物 の 例です 障害物が動いている間は エージェントはそれを回避 しようと最善を尽くします 障害物の動きが まるとそれによってナビ メッシュに が開けられるので エージェントはそれを避けて通るため に進 コースを変更することができます あるいは その静 した障害 物が通り道を塞いでいる場合は エージェントはよりよいルートを つ けることができます 公式ドキュメントから引 https://docs.unity3d.com/ja/current/manual/nav-navigationsystem.html

NavMesh 今回は プレイヤーに NPC としての が寄ってくる状況を NavMesh を使って再現するぜ 1. 地形と障害物を作る 2.NavMesh の設定 3.NPC の作成 (NavMeshAgent 設定 ) 4. スクリプトで 的地を設定

地形と障害物を作る 今回はシンプルに 地 (Plane)と障害物(Cube)を置いただけ

NavMeshの設定 1 地形と障害物をNavigation Staticにする ちなみに地形と障害物はこんな感じで作ってある 2 メニュー > Window > Navigation でNavigationウィンドウを開く

ヒエラルキービューで障害物 GameObject を選択 NavigationArea を Not Walkable に 3. 今回は障害物の上を歩かせたくないので ヒエラルキービューで障害物を選択し Navigation ウィンドウの Object タブ内の を にする

NavMeshの設定 歩ける範囲が い で表 される 4 Bakeタブを開きBakeボタンを押す そうすると歩ける範囲を 動で計算して表 してくれる

NavMeshの設定 5 歩ける範囲が障害物にぴったりくっつきすぎているので Agent Radius(キャラクターの半径)を変更し 再度Bake

NPCの作成(NavMeshAgent設定) 1 NPCとして Dog ゲームオブジェクトを作成し NavMeshAgentコンポーネントを追加する AddComponent > Navigation > Nav Mesh Agent

NPCの作成(NavMeshAgent設定) NavMeshAgentの設定項 公式ドキュメントから引 https://docs.unity3d.com/ja/current/manual/class-navmeshagent.html

1.NPC を動かす DogController スクリプトを作成ゲームオブジェクトにアタッチしといてね using UnityEngine; using System.Collections; public class DogController : MonoBehaviour { public GameObject TargetObject; /// 目標位置 標 GameObject は Editor から指定する NavMeshAgent m_navmeshagent; /// NavMeshAgent // Use this for initialization void Start () { // NavMeshAgent コンポーネントを取得 m_navmeshagent = GetComponent<NavMeshAgent>(); コンポーネントを取得 } // Update is called once per frame void Update () { // NavMesh が準備できているなら if(m_navmeshagent.pathstatus!= NavMeshPathStatus.PathInvalid) { // NavMeshAgent に目的地をセット m_navmeshagent.setdestination(targetobject.transform.position); NavMeshAgent に 的地を設定処理は重めなので なるべくなら Update に れないほうがいい } } }

2. ついでにプレイヤーを動かす PlayerController スクリプトを作成ゲームオブジェクトを作ってアタッチしといてね using UnityEngine; using System.Collections; public class PlayerController : MonoBehaviour { public float Speed = 1.0f; // 移動速度 m/s // Update is called once per frame void Update () { Vector3 pos = transform.position; float movelength = Speed * Time.smoothDeltaTime; if (Input.GetKey (KeyCode.UpArrow)) { pos.z += movelength; } else if (Input.GetKey (KeyCode.DownArrow)) { pos.z -= movelength; } else if (Input.GetKey (KeyCode.LeftArrow)) { pos.x -= movelength; } else if (Input.GetKey (KeyCode.RightArrow)) { pos.x += movelength; } } } transform.position = pos;

スクリプトで目的地を設定 3 DogControllerにPlayerゲームオブジェクトをセットしとく これね

NavMesh を使うと NPC の作成が 常に簡単! もちろんデメリットもある Bake がが想定通りの結果にならなかった場合の 微調整が困難らしい それでも利 シーンはたくさんあるし 有効に使っていきたい機能の つだと思う

参考サイト Unity 公式マニュアル https://docs.unity3d.com/ja/current/manual/navigation.html テラシュールブログ http://tsubakit1.hateblo.jp/entry/20131104/1383573538 ウダサンコウボウ http://udasankoubou.blogspot.jp/2014/01/unity_28.html