Unity¤Ë´ØÏ¢¤¹¤ëµ­»ö¤Ç¤¹

Äɲ䵤줿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£

¡¡Unity 2022.2 °Ê¹ß¤è¤ê¡¢''ɸ½à¤ÇÅëºÜ¤µ¤ì¤Æ¤¤¤¿ AI Navigation(NavMesh) ¤Îµ¡Ç½¤¬Çѻߤµ¤ì¡¢Package Manager ·Ðͳ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤·¤ÆÍøÍѤ¹¤ë·Á¼°''¤Ë¤Ê¤ê¤Þ¤·¤¿¡£

¡¡º£¤Þ¤Ç Github ¤Ë¤Æ¸ø³«¤µ¤ì¤Æ¤¤¤¿ NavMeshComponent ¤Îµ¡Ç½¤Ë¶á¤¤·Á¤Ç¤ÎÊѹ¹¤¬Æþ¤Ã¤Æ¤¤¤ë¤¿¤á¡¢
2022.1 °ÊÁ°¤È¤Ï¡¢''»öÁ°¤Î½àÈ÷¤ä¡¢Bake ¤Î»ÈÍÑÊýË¡¤¬°Û¤Ê¤Ã¤Æ¤¤¤Þ¤¹''¡£

''»²¹Í¥µ¥¤¥È''
''%%%[[Unity ¸ø¼°¥Þ¥Ë¥å¥¢¥ë~~AI Navigation>https://docs.unity3d.com/ja/2022.2/Manual/com.unity.ai.navigation.html]]%%%''


----

*Package Manager

¡¡Package Manager ¤ò³«¤¤¤Æ¡¢Packages ¤ò Unity Registry ¤ËÊѹ¹¤·¡¢AI Navigation ¤òÁªÂò¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¤¤Þ¤¹¡£


&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/LodPr9cBKd.png, 50%)

----

*¥á¥Ë¥å¡¼

¡¡¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤ª¤¤¤Æ¥á¥Ë¥å¡¼¤òɽ¼¨¤·¡¢AI ¤ÎÃ椫¤éÁªÂò¤·¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤ÆÍøÍѤ·¤Þ¤¹¡£


&ref(https://image01.seesaawiki.jp/i/o/i-school-memo/vdxutKNxFu.png, 35%)


¡¡Î㤨¤Ð NavMesh Surface ¤òÁªÂò¤¹¤ë¤È¡¢¤³¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£


&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/hctwd0lk3j.png, 35%)


¡¡¤³¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ Bake µ¡Ç½¤òÍ­¤·¤Þ¤¹¡£

----

*Navigation ¥Ó¥å¡¼

¡¡Package Manager ¤«¤é AI Navigation ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¡¢Window ¥á¥Ë¥å¡¼¤Ë AI ¥³¥Þ¥ó¥É¤¬Äɲ䵤ì¤Þ¤¹¡£


&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/d_rV4tefJW.png, 50%)


¡¡°ÊÁ°¤Ï NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥¢¥¿¥Ã¥Á¤¹¤ë¤È¼«Æ°Åª¤Ë Navigation ¥Ó¥å¡¼¤¬¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¥Ó¥å¡¼¤ÎÎÙ¤ËÄɲ䵤ì¤Þ¤·¤¿¤¬¡¢
2022.2 °Ê¹ß¤Ï¡¢''Window ¥á¥Ë¥å¡¼¤«¤éÁàºî¤·¤Æ Navigation ¥Ó¥å¡¼¤ò¼êÆ°¤Çɽ¼¨¤µ¤»¤ë''ɬÍפ¬¤¢¤ê¤Þ¤¹¡£

¡¡
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/K5AIHpmIv8.png, 35%)


¡¡¥¿¥Ö¤¬£²¼ïÎà¤À¤±¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢Bake ¤Î¥Ü¥¿¥ó¤â¤¢¤ê¤Þ¤»¤ó¡£


''%%%[[Navigation window reference>https://docs.unity3d.com/Packages/com.unity.ai.navigation@1.1/manual/NavigationWindow.html]]%%%''

----

¡¡¤Ê¤ª¡¢Navigation(Obsolute) ¥³¥Þ¥ó¥É¤òÁªÂò¤¹¤ë¤È¡¢°ÊÁ°¤Î·Á¼°¤Î Navigation ¥Ó¥å¡¼¤òɽ¼¨¤Ç¤­¤Þ¤¹¡£


&ref(https://image01.seesaawiki.jp/i/o/i-school-memo/uDRdMwUMGi.png, 35%)

----

*Bake ¤ÎÊýË¡

¡¡Navigation ¥Ó¥å¡¼¤«¤é Bake ¤ò¹Ô¤¦Êý¼°¤«¤éÊѹ¹¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡Bake ¤ò¹Ô¤¦¤Ë¤Ï¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ËÀìÍѤΥ³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥¢¥¿¥Ã¥Á¤·¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥Èñ°Ì¤ÇÀßÄê¤ò¹Ô¤¤¡¢Bake ¤ò¹Ô¤¦Êý¼°¤Ç¤¹¡£

----

*NavMesh Surface ¥³¥ó¥Ý¡¼¥Í¥ó¥È

¡¡NavMesh ¤Î Bake ¤ò¹Ô¤¦¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤¹¡£

¡¡Agent Type ¤ËÀßÄꤷ¤¿¾ðÊó¤ò¸µ¤Ë Bake ¤ò¹Ô¤¤¤Þ¤¹¡£
ÀßÄêÉôʬ¼«ÂΤϡ¢°ÊÁ°¤Î Navigation ¥Ó¥å¡¼¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤¿¾ðÊó¤Ë»÷¤Æ¤¤¤Þ¤¹¡£

¡¡°ÊÁ°¤Î Bake ¤Ï static ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤·¤¿¤¬
Agent Type ¤´¤È¤Ëʬ¤±¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¤Ç¤·¤¿¤Î¤Ç¡¢¤³¤ÎÉôʬ¤âÂ礭¤¯°Û¤Ê¤ê¤Þ¤¹¡£


&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/hctwd0lk3j.png, 35%)


''»²¹Í¥µ¥¤¥È''
''%%%[[Unity ¸ø¼°¥Þ¥Ë¥å¥¢¥ë~~NavMesh Surface>https://docs.unity3d.com/Packages/com.unity.ai.navigation@1.1/manual/NavMeshSurface.html]]%%%''


----

*NavMesh Obstacle ¥³¥ó¥Ý¡¼¥Í¥ó¥È

¡¡NavMesh ¤Î Bake ¤ò¹Ô¤Ã¤¿ºÝ¤Ë¾ã³²Êª¤Èǧ¼±¤µ¤»¤ë¤¿¤á¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤¹¡£
°ÊÁ°¤Ï Bake »þ¤Ë static ¤Ç¤¢¤ì¤Ð¡¢Bake ¤Î¾ðÊó¤Ë³ºÅö¤·¤Ê¤¤¤â¤Î¤Ï¼«Æ°Åª¤Ë¾ã³²Êª¤È¤·¤ÆÀßÄꤵ¤ì¤Þ¤·¤¿¤¬
º£²ó¤«¤é¤Ï¡¢¾ã³²Êª¤È¤·¤Æ»È¤¤¤¿¤¤³Æ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤³¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥¢¥¿¥Ã¥Á¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

¡¡AI ¥á¥Ë¥å¡¼¤Î¥³¥Þ¥ó¥ÉÆâ¤Ë¤Ï¸ºß¤·¤Æ¤¤¤Þ¤»¤ó¤Î¤Ç¡¢¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤Ë¡¢Ç¤°Õ¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤ÆÍøÍѤ·¤Þ¤¹¡£


&ref(https://image01.seesaawiki.jp/i/o/i-school-memo/d90NHTJw7u.png, 35%)

''»²¹Í¥µ¥¤¥È''
''%%%[[Unity ¸ø¼°¥Þ¥Ë¥å¥¢¥ë~~NavMesh Obstacle>https://docs.unity3d.com/Packages/com.unity.ai.navigation@1.1/manual/NavMeshObstacle.html]]%%%''

----

*¥µ¥ó¥×¥ë¥¹¥¯¥ê¥×¥È

¡¡NavMeshAgent ¼«ÂΤËÊѹ¹¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢º£¤Þ¤Ç¤ÈƱ¤¸¥½¡¼¥¹¥³¡¼¥É¤Ç AI ¤Ë¤è¤ë·ÐÏ©°ÜÆ°¤¬¼ÂÁõ½ÐÍè¤Þ¤¹¡£

¡¡°Ê²¼¤Ï NavMeshAgent ¤òÍøÍѤ·¤¿¡¢»ØÄꤷ¤¿Âоݤò·ÐÏ©°ÜÆ°¤ò¹Ô¤Ã¤ÆÄɽ¾¤¹¤ë¡¢¥·¥ó¥×¥ë¤Ê¼ÂÁõÎã¤Ç¤¹¡£


[+]
=|BOX|
using UnityEngine;
using UnityEngine.AI;

public class AIMovementSample : MonoBehaviour
{
[SerializeField] private Transform target;¡¡¡¡¡¡ ¡¡// ÌÜɸ
[SerializeField] private float moveSpeed = 3.0f; ¡¡// °Üư®ÅÙ

private NavMeshAgent agent;


private void Start()
{
// NavMeshAgent¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¼èÆÀ
if (TryGetComponent(out agent))
{
// Agent¤Î°Üư®ÅÙ¤òÀßÄê
agent.speed = moveSpeed;

// ºÇ½é¤ÎÌÜɸÃÏÅÀ¤òÀßÄê
agent.SetDestination(target.position);
}
}

¡¡¡¡private void Update()
¡¡¡¡{
¡¡¡¡ // NavMeshAgent¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¼èÆÀºÑ¤ß¤«¤ÄÌÜɸÃÏÅÀ¤¬¥¢¥µ¥¤¥ó¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ß½èÍý¤ò¹Ô¤¦
¡¡¡¡ if (agent == null || target == null)
¡¡¡¡ {
¡¡¡¡ return;
¡¡¡¡ }

¡¡¡¡ // Agent¤ÎÌÜɸÃÏÅÀ¤òTarget¤Î°ÌÃÖ¤ËÀßÄê
¡¡¡¡ agent.SetDestination(target.position);
}
}
||=
[END]

----

*Êä­

¡¡NavMesh ¤Î¾ðÊó¤ò¥é¥ó¥¿¥¤¥à¤ÇÀßÄꤹ¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢°ÊÁ°¤Î¤è¤¦¤Ë''¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë static ¤ÎÀßÄê¤ò¹Ô¤¦É¬ÍפϤ¢¤ê¤Þ¤»¤ó''¡£
2022.2 °Ê¹ß¤Ç¤Ï Navigation Static ¤¬ÁªÂò¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£


&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/PAl7O5KhOv.png, 35%)


----
¡¡
¡¡NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¡¢OffMeshLink ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Îµ¡Ç½¤Ê¤É¤Ï¡¢¤½¤Î¤Þ¤Þ»Ä¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¡¡%%¤Þ¤¿ NavMeshComponent ¤Îµ¡Ç½¤¬Åý¹ç¤µ¤ì¤¿¤³¤È¤Ë¤è¤ê¡¢£²£Ä¤Ø¤ÎÍøÍѤâ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£%%

¡¡¡¡¢ª¡¡£²£Ä¤Ë¤Ä¤¤¤Æ 2022.3 LTS ¤Ë¤Æ¸¡¾Ú¤·¤Æ¤¤¤Þ¤¹¤¬¡¢NaveMashComponents ¤òÍøÍѤ·¤Ê¤¤¤È Bake ¤Ç¤­¤Ê¤¤¤è¤¦¤Ç¤¹¡£

----

¡¡º£²ó¤Ï³ä°¦¤·¤Æ¤¤¤Þ¤¹¤¬¡¢NavMeshModifierVolume ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È NavMeshModifier ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÁȤ߹ç¤ï¤»¤ë¤³¤È¤Ç
°ìÉô¤Î¥¨¥ê¥¢¤Î¤ß¤ò»ØÄꤷ¤Æ Bake ¾ðÊó¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£


''%%%[[NavMeshModifierVolume>https://docs.unity3d.com/Packages/com.unity.ai.navigation@1.1/manual/NavMeshModifierVolume.html]]%%%''

''%%%[[NavMesh Modifier>https://docs.unity3d.com/ja/2018.4/Manual/class-NavMeshModifier.html]]%%%''


----

¡¡¥×¥í¥¸¥§¥¯¥È¤ÎÀ©ºîÅÓÃæ¤Ç Unity ¤Î¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤ò¹Ô¤Ã¤¿¤È¤­¤ÎÂбþºö¤È¤·¤Æ¡¢
AI ¥á¥Ë¥å¡¼¤ÎÃæ¤Ë NavMesh Updater ¥³¥Þ¥ó¥É¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢2022.2 °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î NavMesh ¤Î¾ðÊó¤ò
2022.2 °Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¼«Æ°Åª¤ËÀÚ¤êÂؤ¨¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£


&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/0RupReDJdm.png, 50%)


¡¡²¼µ­¤Î¸ø¼°¥Þ¥Ë¥å¥¢¥ë¤Ë¼ê½ç¤¬ºÜ¤Ã¤Æ¤¤¤Þ¤¹¡£


''%%%[[Upgrade projects for use with AI Navigation package>https://docs.unity3d.com/Packages/com.unity.ai.navigation@1.1/manual/UpgradeGuide.html]]%%%''

----

**¡ã»²¹Í¥µ¥¤¥È¡ä

''%%%[[LIGHT11 ÍÍ~~¡ÚUnity¡ÛNavMesh¤ò¥é¥ó¥¿¥¤¥à¤Ç¹½ÃۤǤ­¤ëNavMeshComponents>https://light11.hatenadiary.com/entry/2019/12/10/223519]]%%%''

''%%%[[¤«¤á¤¯¤áÍÍ~~Unity¤ÎNavMeshComponents¥¢¥»¥Ã¥È¤Î»È¤¤Êý¤È¥²¡¼¥àÃæ¤ËNavMesh¤Î¥Ù¥¤¥¯¤ò¤¹¤ë>https://gametukurikata.com/navigation/runtimenavigationbake]]%%%''

----

*£²£Ä¥¿¥¤¥ë¥Þ¥Ã¥×¤Î¾ì¹ç

¡¦¤¹¤Ù¤Æ¤Î Tilemap ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï Static ¤ËÀßÄꤷ¡¢TilemapCollider2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È NavMeshSourceTag2£Ä ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥¢¥¿¥Ã¥Á¤¹¤ë¡£

¡¦Bake ¤·¤ÆÊ⤫¤»¤¿¤¤ Tilemap ¤Ï¡ÖNavMeshSourceTag2£Ä¡×¤Î Area ¤ò 0 ¤Ë¤¹¤ë¡£
¡¡¤Þ¤¿¡¢¥¿¥¤¥ë¤ÎÀßÄê¤ò Grid ¤« Sprite ¤ËÀßÄꤷ¡¢SpriteEditor ¤Î Custom Physics ¤ÇÇò¤¤ÏȤò¤Ä¤±¤ë¡£

¡¦Ê⤫¤»¤¿¤¯¤Ê¤¤ Tilemap ¤Ï¡ÖNavMeshSourceTag2£Ä¡×¤Î Area ¤ò 1 ¤Ë¤¹¤ë¡£
¡¡¥¿¥¤¥ë¤ÎÀßÄê¤Ï¤É¤ì¤Ç¤â¤è¤¤¡£

¡¦CompositeCollider£²D ¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤È¡¢Àµ¾ï¤ËBake ¤Ç¤­¤Ê¤¤¡£
¡¡¤½¤Î¤¿¤á¡¢CompositeCollider ¤ò°ìö¥ê¥à¡¼¥Ö¤·¡¢Bake ¤·¤Æ¤«¤éÄɲ乤뤳¤È¤Ç¥³¥é¥¤¥À¡¼¤ò·ë¹ç¤Ç¤­¤ë¡£

¡¦¤³¤ì¤é¤òËþ¤¿¤·¤¿¾å¤Ç NavMeshBuilder2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î Bake ¤ò²¡¤¹¤³¤È¤Ç Bake ¤Ç¤­¤ë¡£Bake On Enable ¤Ë¥Á¥§¥Ã¥¯¤òÆþ¤ì¤Æ¤ª¤¯¡£
¡¡¤³¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¼«ÂÎ¤Ï Static ¤Ç¤¢¤ëɬÍפʤ·¡£

¡¦Bake ¸å¡¢¤½¤Î¤Þ¤Þ¤À¤È¡¢NavMesh ¤ò Bake ¤·¤¿¥³¥é¥¤¥À¡¼¤Ë¤è¤Ã¤Æ¡¢¥×¥ì¥¤¥ä¡¼¤Î¥³¥é¥¤¥À¡¼¤ÈÀÜ¿¨¤·¤Æ¤·¤Þ¤Ã¤Æ°ÜÆ°¤Ç¤­¤Ê¤¯¤Ê¤ë¡£
¡¡²óÈòÊýË¡¤Ï¼ç¤Ë£²¤Ä¡£

­¡ Bake ¤·¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥²¡¼¥à¼Â¹Ô»þ¤Ë SetActive(false) ¤ÇÈóɽ¼¨¤Ë¤¹¤ë¤³¤È¤Ç¡¢Bake ¤Î¾ðÊó¤Î¤ß¤ò»Ä¤¹¤³¤È¤¬½ÐÍè¤ë¡£
¡¡¤³¤Î¾ì¹ç¡¢¥¹¥¯¥ê¥×¥È¤ÇÀ©¸æ¤¹¤ë¡£

­¢ Bake ÍѤΠTilemap ¤Ë Layer ¤òÀßÄꤷ¡¢Layer Collision Matrix ¤Ç¥×¥ì¥¤¥ä¡¼¤ÈÀÜ¿¨¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£


&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/cbEYDQhLaX.png, 35%)

<Radius Ä´À°¸å>
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/a3Vui8whMi.png, 70%)

----

*¡ãNavMeshAgent ¼þ¤ê¤ÎÄɵ­¡ä

**Ʊ¤¸°ÌÃ֤˥¨¡¼¥¸¥§¥ó¥È¤òÇÛÃÖ¤·¤¿¾ì¹ç¤ÎµóÆ°¤Ë¤Ä¤¤¤Æ

¡¡NavMeshAgent ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬¥³¥é¥¤¥À¡¼¤òÍ­¤·¤Æ¤¤¤ë¾ì¹ç¡¢²¾¤Ë Layer ¤ò Enemy ¤È¤·¤Æ LayerCollisionMatrix ¤ÇÀÜ¿¨¤·¤Ê¤¤¤è¤¦¤ËÀßÄê¤ò¹Ô¤Ã¤Æ¤¤¤Æ¤â¡¢NavMeshAgent ¤ÇÆ°¤¤¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥ÈƱ»Î¤ÏÀÜ¿¨¤·¤Þ¤¹¡£
¤³¤ì¤ÏʪÍý±é»»¤Ë¤è¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀÜ¿¨¤Ç¤Ï¤Ê¤¯¡¢¤¢¤¯¤Þ¤Ç¤â NavMeshAgent ¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤Æ¤ª¤ê¡¢·ë²Ì¤È¤·¤Æ¡¢¼«Æ°Åª¤Ë¤Û¤«¤Î¥¨¡¼¥¸¥§¥ó¥È¤ò²óÈò¤¹¤ë¤è¤¦¤ËÆ°¤­¤Þ¤¹¡£
ÅԹ礬°­¤¤ÅÀ¤È¤·¤Æ¤Ï¡¢Æ±¤¸°ÌÃ֤˥¨¡¼¥¸¥§¥ó¥È¤òÇÛÃÖ¤·¤è¤¦¤È¤¹¤ë¤È¡¢¤ª¸ß¤¤¤ËÀÜ¿¨¤·¤¿¾å¤Ç¤Ï¤¸¤«¤ì¤ë¤è¤¦¤ÊµóÆ°¤ò°ú¤­µ¯¤³¤·¤Þ¤¹¡£


&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/j_53evuK3B.gif, 50%)


¡¡²óÈòÊýË¡¤È¤·¤Æ¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¤Ë¤âµ­ºÜ¤µ¤ì¤Æ¤¤¤ëÄ̤ê¤Ç¡¢ NavMeshAgent ¤Î Obstacle Avoidance ¤Î Quality ¤ÎÀßÄê¤ò None ¤ËÀßÄꤷ¤Þ¤¹¡£


&ref(https://image01.seesaawiki.jp/i/o/i-school-memo/KzjL6YF9xS.png, 35%)

----

¡¡¤³¤Á¤é¤ÎÀßÄê¤Ë¤è¤ê²þÁ±¤µ¤ì¤Þ¤¹¡£


&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/np2GvkbqJX.gif, 50%)


¡¡¤¿¤À¤·¡¢²óÈò¼«ÂΤò¤·¤Ê¤¤¤¿¤á¡¢''¤Û¤«¤Î¾ã³²Êª¤ËÀÜ¿¨¤·¤¿ºÝ¤ÎµóÆ°¤¬ÊѤï¤Ã¤Æ¤­¤Þ¤¹''¡£
¤½¤Î¾ì¹ç¡¢Quality ¤ÎÀßÄê¤Ç¤Ï¤Ê¤¯¡¢Priority ¤ÎÃͤÇÀ©¸æ¤ò¹Ô¤¦¥¢¥×¥í¡¼¥Á¤â¹Í¤¨¤é¤ì¤Þ¤¹¡£
¤³¤Á¤é¤ÎÃͤˤĤ¤¤Æ¤Ï¡¢¥¹¥¯¥ê¥×¥ÈÆâ¤Ç¤Ï NavMeshAgent Æâ¤Î avoidancePriority ¤ò»ØÄꤹ¤ë¤³¤È¤ÇÊѹ¹²Äǽ¤Ç¤¹¡£

¡¡Î㤨¤Ð¼«Æ°À¸À®¤ä¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤Ç¥ê¥µ¥¤¥¯¥ë¤¹¤ë¾ì¹ç¤Ç¤¢¤ì¤Ð¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¸µ¤¬ÃͤòÄ̤·ÈÖ¹æ¤È¤·¤Æ´ÉÍý¤·¡¢
¿·¤·¤¯À¸À®¤·¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î avoidancePriority ¤ÎÃͤò°ÊÁ°¤ËÀ¸À®¤·¤Æ¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ÎÃͤè¤ê¤â½ç¼¡¹â¤¯ÀßÄꤷ¤Æ¤¤¤¯¤³¤È¤Ç¡¢
¿·¤·¤¯À¸À®¤·¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢Æ±¤¸°ÌÃ֤ˤ¢¤ëÁ°¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò̵»ë¤Ç¤­¤Þ¤¹¡£

¡¡¥²¡¼¥à¤Î¥¸¥ã¥ó¥ë¤Ë¤è¤Ã¤Æ¤Ï¤³¤ÎÂбþ¤ÇÌäÂ꤬¤Ê¤¤¥±¡¼¥¹¤â¤¢¤ê¤Þ¤¹¡£
¤Ç¤¹¤¬¥¢¥¯¥·¥ç¥óÍ×ÁǤʤɤò»ý¤Ä¥±¡¼¥¹¤Ç¤Ï¡¢¤³¤Î¥¢¥×¥í¡¼¥Á¤Ï»ÃÄêŪ¤Ê½èÍý¤Ç¤¢¤ë¤È¹Í¤¨¤Æ¤ª¤¤¤¿Êý¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£
¡¡¤Ç¤¹¤¬¤³¤Î¥¢¥×¥í¡¼¥Á¤Ï»ÃÄêŪ¤Ê½èÍý¤Ç¤¢¤ë¤È¹Í¤¨¤Æ¤ª¤¤¤¿Êý¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£

¡¡²Äǽ¤Ç¤¢¤ì¤Ð¡¢NavMeshAgent ¦¤ÎÀßÄê¤Ç¤Ï¤Ê¤¯¡¢À¸À®¤¹¤ë°ÌÃÖ¤òÄ´À°¤·¤¿¤ê¡¢À¸À®¤¹¤ë¥¿¥¤¥ß¥ó¥°¤òÄ´À°¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢
Ê̤ÎÊýË¡¤Ç¼ÂÁõ¤Ë¼è¤êÁȤàÊý¤¬¡¢¤è¤ê¸úΨ¤Î¤è¤¤À¸À®½èÍý¤Ë¤Ê¤ë¤È»×¤¤¤Þ¤¹¡£

¡¡¤³¤Á¤é¤ËÄ󼨤·¤Æ¤¤¤ëÊýË¡¤Ï¡¢¤¿¤¯¤µ¤ó¤¢¤ë¼ÂÁõ¤Î°ìÎã¤Ç¤¢¤ê¡¢¤³¤ì¤¬¾ï¤ËÀµ¤Î½èÍý¤Ç¤¢¤ë¤È¤Ï»×¤ï¤º¤Ëα¤á¤Æ¤ª¤¯¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡''»ëÌî¤ò¹­¤¯¤â¤Ä''¤¿¤á¤Ë¤â¿§¡¹¤ÊÊýË¡¤ò³Ð¤¨¤Æ¤ª¤¯¤³¤È¤ÏÂçÀڤǤ¹¡£
''£±¤Ä¤Î¥¢¥×¥í¡¼¥Á¤À¤±¤Ë¤È¤é¤ï¤ì¤ë¤³¤È¤Î¤Ê¤¤¤è¤¦¤ËÃí°Õ''¤·¤Þ¤·¤ç¤¦¡£

----

**autoRepath ¥×¥í¥Ñ¥Æ¥£

¡¡NavMeshAgent Æâ¤Î autoRepath ¥×¥í¥Ñ¥Æ¥£¤Ï·ÐÏ©¤Î¼«Æ°ºÆ·×»»¤ò¹Ô¤¦¤«¡¢¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤«¤òÀßÄꤹ¤ë¹àÌܤǤ¹¡£
¤³¤Á¤é¤ò false ¤Ë¤·¤Æ¤ª¤¯¤È¡¢¼«Æ°Åª¤Ë¤Ï·ÐÏ©¤ÎºÆ·×»»¤ò¹Ô¤ï¤Ê¤¤ÀßÄê¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤¿¤À¤·¡¢Unity ¤Î»ÅÍ;塢¿·¤·¤¤¾ã³²Êª¤¬ NavMesh ¾å¤ËÄɲ䵤ì¤Æ¥ê¥Ù¥¤¥¯¤¬Áö¤ê Bake ÈϰϤ¬¹¹¿·¤µ¤ì¤¿¾ì¹ç¡¢
''¤³¤Î¹àÌܤ¬ false ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Æ¤â¼«Æ°Åª¤Ë·ÐÏ©¤ÎºÆ·×»»¤¬¶¯À©Åª¤ËȯÀ¸''¤·¤Þ¤¹¡£

¡¡Ä̾ï¤Ç¤¢¤ì¤ÐÌäÂê¤Ë¤Ê¤é¤Ê¤¤¤Ç¤¹¤¬¡¢Î㤨¤Ð¡¢¾ã³²Êª¤òÇÛÃÖ¤·¤¿¥¿¥¤¥ß¥ó¥°¤Ç¤Î·ÐÏ©¤ÎºÆ·×»»¤Ç¤Ï¤Ê¤¯¡¢
¾ã³²Êª¤ËÀÜ¿¨¤·¤Æ¤«¤éºÆ·×»»¤ò¹Ô¤ï¤»¤¿¤¤¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢ÇÛÃÖ¥¿¥¤¥ß¥ó¥°¤Ç¤Î¥ê¥Ù¥¤¥¯¤ò»ß¤á¤Æ¤ª¤¯¤Ê¤É¤Î¡¢¤³¤Î¼«Æ°ºÆ·×»»½èÍý¤ò²óÈò¤¹¤ë¥¢¥×¥í¡¼¥Á¤¬É¬Íפˤʤê¤Þ¤¹¡£

¡¡¸½ºß¤Î NavMesh ¤Ï¥×¥ì¥¤Ãæ¤Ç¤¢¤Ã¤Æ¤âưŪ¤Ë Bake ¤¬Áö¤ë½èÍý¤âºî¤ì¤Þ¤¹¤Î¤Ç¡¢¼«Ê¬¤Î¥×¥í¥¸¥§¥¯¥È¤Ë±þ¤¸¤ÆÂбþ¤·¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£


''Unity ¸ø¼°¥Þ¥Ë¥å¥¢¥ë''
''%%%https://docs.unity3d.com/ja/current/Manual/class-NavMeshAgent.html%%%''

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹