¡¡
¡¡
Àµµ¬²½½èÍý¤Ç¤¹¡£
magnitude(¥Þ¥°¥Ë¥Á¥å¡¼¥É¡£Ä¹¤µ)¤ò£±¤È¤·¤¿¥Ù¥¯¥È¥ë(ñ°Ì¥Ù¥¯¥È¥ë)¤òÊÖ¤·¤Þ¤¹¡£Ìá¤êÃͤÏ
Vector3 ·¿¤Ë¤Ê¤ê¤Þ¤¹¡£
// ÌÜɸ¤Î°ÌÃ֤ȸ½ºß¤Î°ÌÃ֤Ȥε÷Î¥¤ÈÊý¸þ¤ò¼èÆÀ¤·¡¢Àµµ¬²½½èÍý¤ò¹Ô¤¤¡¢Ã±°Ì¥Ù¥¯¥È¥ë¤È¤¹¤ë(Êý¸þ¤Î¾ðÊó¤Ï»ý¤Á¤Ä¤Ä¡¢µ÷Î¥¤Ë¤è¤ë®ÅÙº¹¤ò¤Ê¤¯¤·¤Æ°ìÄêÃͤˤ¹¤ë)
Vector3 direction = (transform.position - paths[index]).normalized;
¡¡
¸½ºß¤Î¥Ù¥¯¥È¥ë¤ÎÊý¸þ¤ò°Ý»ý¤·¤¿¤Þ¤Þ¡¢magnitude¤¬£±¡¢¤¢¤ë¤¤¤Ï£°¤Îñ°Ì¥Ù¥¯¥È¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¡Ê¥Ù¥¯¥È¥ë¤ÎÃͤ¬¾®¤µ¤¤¤È£°¤Ë¤Ê¤ê¤Þ¤¹¡£¡Ë
¡¡¤³¤ÎÀµµ¬²½¤ò¹Ô¤¦¤³¤È¤Ë¤è¤Ã¤Æ°ÌÃ֤αó¶á¤Ë´Ø¤ï¤é¤º¡¢magnitude ¤¬¤¹¤Ù¤Æ 1¡¢¤¢¤ë¤¤¤Ï 0 ¤ËÅý°ì¤µ¤ì¤¿Ã±°Ì¥Ù¥¯¥È¥ë¤ÎÃͤȤʤ뤿¤á¡¢
º¸¤È²¼¤ÎÊý¸þ¤Ç¤¢¤ì¤Ð -1¡¢
±¦¤È¾å¤ÎÊý¸þ¤Ç¤¢¤ì¤Ð 1¤ÎÃͤ¬¥Ù¥¯¥È¥ë¤È¤·¤ÆºîÀ®¤µ¤ì¤Þ¤¹¡£
Ãͤ¬ 0 ¤Ë¶á¤¤¾ì¹ç¤Ë¤Ï 0 ¤¬¥Ù¥¯¥È¥ë¤È¤·¤ÆºîÀ®¤µ¤ì¤Þ¤¹¡£
¡¡¤³¤ÎÃͤò BlendTree ¤Î³ÆÃͤȤ·¤ÆÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢
BlendTree ¤Î Palameter ¤ÎÀßÄêÃͤȤ³¤ÎÀµµ¬²½¤µ¤ì¤¿ÃͤȤ¬¥ê¥ó¥¯¤·¤Æ¡¢°ÜÆ°¥¢¥Ë¥á¤ÎÀÚ¤êÂؤ¨½èÍý¤¬¼ÂÁõ½ÐÍè¤Æ¤¤¤Þ¤¹¡£
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¡¦¥ê¥Õ¥¡¥ì¥ó¥¹
https://docs.unity3d.com/ja/current/ScriptReferenc...
TechProjinÍÍ
Unity¤ÎVector3¤Ç¤è¤¯»È¤¦¤â¤Î¤Þ¤È¤á
https://tech.pjin.jp/blog/2016/02/16/unity_vector3...
¡¡¥Ý¥¤¥ó¥È¤È¤·¤Æ¤Ç¤¹¤¬¡¢Vector3 ¤Î¾ðÊóƱ»Î¤ò·×»»¤·¤¿¤À¤±¤Ç¤Ï
Àµµ¬²½¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£
¡¡²¾¤Ë¡¢¤³¤ó¤ÊÃͤòÆþ¤ì¤Æ¤ß¤Þ¤·¤ç¤¦¡£
Vector3 direction = (10, 5, 0) - (5, 3, 0);
¡¡normalize ¤¬¤Ê¤¤¾ì¹ç¡¢direction ¤ÎÃͤÏñ½ã¤Ë°ú¤»»¤µ¤ì¤¿·ë²Ì¤¬Æþ¤ë¤¿¤á¡¢
Vector3 direction = 5, 2, 0;
¡¡¤³¤ÎÃͤ¬ÂåÆþ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Ãͤò¸«¤ì¤Ð°ìÌÜÎÆÁ³¤Ê¤Î¤Ç¤¹¤¬¡¢Àµµ¬²½¤µ¤ì¤¿ÃͤˤϤʤäƤ¤¤Þ¤»¤ó¡£
¡¡¤³¤ÎÃͤËÂФ·¤ÆÀµµ¬²½¤Î½èÍý¤ò¹Ô¤¦¤È¡¢»»½Ð·ë²Ì¤ÎÃͤòñ°Ì¥Ù¥¯¥È¥ë¤ËÊÑ´¹¤·¤Þ¤¹¡£
Vector3 direction = 1, 1, 0;
¡¡Àµµ¬²½¤µ¤ì¤ë¤È¡¢¤³¤Î¤è¤¦¤Ê
ñ°Ì¥Ù¥¯¥È¥ë¤ÎÃͤ¬ÂåÆþ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Ã±°Ì¥Ù¥¯¥È¥ë¤Ï¡¢Êý¸þ¤Î¾ðÊó¤Ï¤½¤Î¤Þ¤ÞÊÝ»ý¤·¡¢Â®Å٤Τߤò 1 ¤« 0 ¤« -1 ¤Ëºî¤êľ¤·¤Þ¤¹¡£
¡¡¤Ä¤Þ¤ê¡¢Êý¸þ¤Î¾ðÊó¤À¤±¤ÏºÇ½é¤Ë·×»»¤·¤¿ (5, 2, 0) ¤Î¾ðÊó¤ò»ý¤Á¤Ä¤Ä¡¢Â®ÅÙ¤Î¤ß (1, 1, 0) ¤Ëºî¤êľ¤·¤Æ¤¤¤Þ¤¹¡£
(¤³¤Î¤È¤¡¢ÃͤϤ¹¤Ç¤ËÀµµ¬²½¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢Debug.Log ¥á¥½¥Ã¥É¤òÍѤ¤¤Æ¤â¸µ¤Ë¤Ê¤Ã¤Æ¤¤¤ëÊý¸þ¤Î¾ðÊó¼«ÂΤϳÎǧ¤Ç¤¤Þ¤»¤ó¡£)
¡¡¤Ê¤¼¤³¤Î½èÍý¤¬É¬Íפˤʤ뤫¡¢¤Ç¤¹¤¬¡¢¤³¤ì¤Ï Unity ¤Î¶µ²Ê½ñ¤Î¥¤¥¬¥°¥ê¤òÈô¤Ð¤¹¥²¡¼¥à¤ÎÃæ(373¥Ú¡¼¥¸)¤Ç¤â´Êñ¤Ë¤Ç¤¹¤¬¡¢²òÀ⤵¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡¤Þ¤ºÃ±½ã¤Ë Vector3 Ʊ»Î¤ò·×»»¤·¤¿¤À¤±¤Ç¤¹¤È¡¢Êý¸þ¤È®ÅÙ¤¬
Ʊ¤¸ÃͤȤ·¤ÆÊÝ»ý¤µ¤ì¤Þ¤¹¡£
¥¤¥á¡¼¥¸¤·¤Ë¤¯¤¤¤Î¤Ç¤¹¤¬¡¢Vector3 ¤Î (x, y, z) ¤ÎÃͤȤ¤¤¦¤Î¤ÏºÂɸ¤Î¾ðÊó¤À¤±¤Ç¤Ï¤Ê¤¯¡¢
¤½¤ì¤ò¸µ¤Ë
¡Ö¤É¤Ã¤Á¤ò¸þ¤¤¤Æ¤¤¤ë¡×¡Ö®ÅÙ¤¬¤É¤Î°Ì¤Ç¤¢¤ë¡×¤È¤¤¤¦£²¤Ä¤Î¾ðÊó¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡Àè¤Û¤É¤ÎÎã¤ò¸µ¤ËÀâÌÀ¤¹¤ë¤È¡¢(5, 2, 0) ¤È (10, 2, 0) ¤È¤¤¤¦¥Ù¥¯¥È¥ë¤ÎÃͤ¬¤¢¤Ã¤¿¾ì¹ç¡¢
Ʊ¤¸¼Ð¤áÊý¸þ¤ò¸þ¤¤¤Æ¤¤¤Æ¤â¡¢ÃͤÎÂ礤¤ (10, 2, 0) ¤ÎÊý¤¬Â®ÅÙ¤¬Â®¤¯¤Ê¤ê¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢
£²¤Ä¤ÎÃÏÅÀ¤¬±ó¤¯Î¥¤ì¤ì¤ÐÎ¥¤ì¤ëÄø¡¢Â®ÅÙ¤¬Â®¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤¿¤á¡¢Ã±½ã¤Ë°ú¤»»¤·¤¿Ãͤò°ÜÆ°¤ÎÃͤËľÀܻȤäƤ·¤Þ¤¦¤È
Ʊ¤¸Êý¸þ¤ËÂФ·¤Æ¡¢°Û¤Ê¤ë®Å٤ξðÊó¤Ç½èÍý¤¬¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¡¡
¡¡¤½¤Î¾ì¹ç¡¢Æ±¤¸Êý¸þ¤ËÂФ·¤Æ°ÜÆ°¤¹¤ëºÝ¤Ë¡¢
¤è¤ê±ó¤¯¤Ë°ÜÆ°¤¹¤ë®ÅÙ¤ÎÊý¤¬Á᤯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¤Î¤Ç¡¢
º£²ó¤Î¾ì¹ç¤Ç¤¢¤ì¤Ð¡¢°ÜÆ°¤¹¤ëºÝ¤Î®ÅÙ¤¬°ÜÆ°ÃÏÅÀ¤¬Î¥¤ì¤Æ¤¤¤ì¤ÐÎ¥¤ì¤Æ¤¤¤ë¤Û¤ÉÁ᤯¤Ê¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡A ¢ª B ¤Ë°ÜÆ°¤¹¤ë¤È¤¡¢¤½¤Îº¹Ê¬ÃͤǤ¢¤ë direction ¤¬ (5, 2, 0) ¤È (10, 2, 0) ¤Ç¤¢¤Ã¤¿¤é¡¢
Ʊ¤¸Êý¸þ¤Ë°ÜÆ°¤¹¤ë¤Î¤Ç¤¹¤¬¡¢ (10, 2, 0) ¤ÎÊý¤¬Á᤯°ÜÆ°¤·¤Æ¤·¤Þ¤¦¡¢¤È¤¤¤¦µóÆ°¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¤¥¬¥°¥ê¤Î¾ì¹ç¤Ç¤¢¤ì¤Ð¡¢²èÌ̤Îü¤ò¥¯¥ê¥Ã¥¯¤¹¤ì¤Ð¤¹¤ë¤Û¤É¡¢¥«¥á¥é¤Î°ÌÃÖ¤è¤ê±ó¤¯¤Ê¤ë¤Î¤Ç¡¢Æ±ÍͤËȯ¼Í®ÅÙ¤¬Â®¤¯¤Ê¤ê¤Þ¤¹¡£
¡¡¤³¤¦¤¤¤Ã¤¿¡¢Êý¸þ¤È®Å٤ˤè¤ëµóÆ°¤ÎÉÔÁ´¤òËɤ°¤¿¤á¤Ë¡¢
¡ÖÊý¸þ¤Î¾ðÊó¤Ï¤½¤Î¤Þ¤Þ¡×¤Ç¡Ö®ÅÙ¤ò¶Ñ°ì²½¡×¤¹¤ë¡¢Àµµ¬²½¤Î½èÍý¤¬É¬ÍפˤʤäƤ¤¤ë¡¢¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤½¤Î·ë²Ì¡¢(5, 2, 0) ¤È (10, 2, 0) ¤Ï¡¢¤½¤Î¤Þ¤Þ®Å٤ǻȤäƤ·¤Þ¤¦(ñ½ã¤Ë°ú¤»»¤·¤¿¤À¤±¤À)¤È¡¢°ÜÆ°¤Î®ÅÙ¤¬ÊѤï¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¤¬¡¢
normalize ¤¹¤ë¤³¤È¤Ç¡¢ÃÏÅÀ¤Î±ó¶á¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢¤É¤Á¤é¤â (1,1,0) ¤Ë¤Ê¤ë¤¿¤á¡¢¾ï¤ËƱ¤¸Â®Å٤ǰÜÆ°¤·¤Æ¤¯¤ì¤ë¡¢¤È¤¤¤¦»Å³Ý¤±¤Ç¤¹¡£
(5, 2, 0) ¤òÀµµ¬²½¡¡¢ª¡¡Â®ÅÙ¤Ï (1, 1, 0)¡¡¤¿¤À¤·¡¢Êý¸þ¤Ï(5,2,0) ¤Î¤Þ¤Þ
(10, 2, 0) ¤òÀµµ¬²½¡¡¢ª¡¡Â®ÅÙ¤Ï (1, 1, 0) ¡¡¤¿¤À¤·¡¢Êý¸þ¤Ï(10,2,0) ¤Î¤Þ¤Þ
¡¡¤³¤Î¤è¤¦¤ËÀµµ¬²½¤Î½èÍý¤òÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ÁÛÄꤷ¤Æ¤¤¤ë½èÍý¤ÎµóÆ°¤Ë¤Ê¤ê¤Þ¤¹¡£