ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ01·î04Æü(¿å) 22:47:38ÍúÎò
¤Þ¤¿¡¢¤½¤ì¤È¹ç¤ï¤»¤Æ¡¢¥Þ¥¦¥¹¤Ë¤è¤ë¥«¥á¥é¤Î¾å²¼º¸±¦²óž¤Îµ¡Ç½¤âÄɲä·¡¢¥«¥á¥é¤È°ÜÆ°¤È¤òϢư¤µ¤»¤Æ¤¤¤¤Þ¤¹¡£
¡¡¤³¤ì¤Ë¤è¤ê¡¢¥«¥á¥é¤òº¸±¦Êý¸þ¤Ë²óž¤µ¤»¤¿¾ì¹ç¤Ç¤â¡¢¾ï¤Ë¥«¥á¥é¤ÎÀµÌ̤˸þ¤«¤Ã¤Æ°ÜÆ°¤¹¤ëµ¡Ç½¤¬¼ÂÁõ½ÐÍè¤Þ¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¼ê½ç£·¡¡¡¼¥«¥á¥é¤ÎÀµÌÌÊý¸þ¤ò´ð½à¤È¤·¤¿¡¢¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°µ¡Ç½¤Î¼ÂÁõ¡¼
¡¡¡¦Camera.main ÊÑ¿ô ¡¡¡¦Transform.forward ÊÑ¿ô/ Transform.right ÊÑ¿ô ¡¡¡¦Vector3.Scale ¥á¥½¥Ã¥É
¡¡¡¦Transform.RotateAround ¥á¥½¥Ã¥É ¡¡¡¦Transform.localEulerAngles ÊÑ¿ô
¡¡¸½ºß¤Î¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°ÊýË¡¤Î¾ì¹ç¡¢¥«¥á¥é¤Îº¸±¦²óž¤¬¤Ê¤¤¤¿¤á¡¢¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°À褬ÊѤï¤Ã¤Æ¤â¥«¥á¥é¤Ï²óž¤·¤Þ¤»¤ó¡£
¤½¤Î¤¿¤á¡¢¸ÇÄê²½¤µ¤ì¤Æ¤¤¤ë¥«¥á¥é¤Î¸µ¤Ç¥×¥ì¥¤¥ä¡¼¤¬Á°¸åº¸±¦¤Ë°ÜÆ°¤·¤Æ¤¤¤ë·Á¼°¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡ÇòÇ¥×¥í¥¸¥§¥¯¥È¤Ê¤É¿¤¯¤Î¥²¡¼¥à¤Î¾ì¹ç¡¢¥«¥á¥é¤Î¸þ¤¤òº¸±¦²óž¤µ¤»¤ëµ¡Ç½¤¬¤¢¤ê¡¢
¤½¤Î²óžÀè¤ËÂФ·¤ÆÁ°¿Ê¤¹¤ë¤è¤¦¤Ê»ÅÁȤߤǥץ쥤¥ä¡¼¤Î°ÜÆ°¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤Î¾ðÊó¤ò¼çÂΤȤ·¤¿°ÜÆ°¤Ç¤Ï¤Ê¤¯¤Æ¡¢¥«¥á¥é¤ÎÀµÌÌÊý¸þ¤Î¾ðÊó¤ò¼çÂΤȤ·¤¿°ÜÆ°¤ËÀÚ¤êÂؤ¨¤ë¤³¤È¤Ç¼ÂÁõ½ÐÍè¤Þ¤¹¡£
¡¡¤³¤Î¼ê½ç¤Ï¡¢¿·¤·¤¤¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¡¢¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°ÊýË¡¤òÊѹ¹¤·¤Æ¤¤¤¤Þ¤¹¡£
¡¡¤³¤Á¤é¤Î¥µ¥¤¥ÈÆâ¤Î¥¹¥¯¥ê¥×¥È¤Ï¡¢²¼µ¤Îµ»ö¤ò»²¹Í¤Ë¤µ¤»¤Æ¤¤¤¿¤À¤¤¤Æ¤ª¤ê¤Þ¤¹¡£
¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
TechProjin ÍÍ
Unity¤Ç¥«¥á¥é¤Î¸þ¤¤ò´ð½à¤Ë°ÜÆ°¤¹¤ëÊýË¡¤È¡¢Äɽ¾¤·¤Æ²óž¤Ç¤¤ë¥«¥á¥é¤Î¼ÂÁõ
https://tech.pjin.jp/blog/2016/11/04/unity_skill_5...
¡¡¥×¥ì¥¤¥ä¡¼¤Î¾ðÊó¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥¹¥¯¥ê¥×¥È¤È¤·¤Æ PlayerController ¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤Î¥¹¥¯¥ê¥×¥ÈÆâ¤Ë¥«¥á¥é¤Î¾ðÊó¤ò¸µ¤Ë¤·¤¿°ÜÆ°¤Î½èÍý¤òµ½Ò¤·¡¢¥×¥ì¥¤¥ä¡¼¤òÀ©¸æ¤·¤Þ¤¹¡£
¡¡¼ê½ç£µ¤ÇºîÀ®¤·¤¿ PlayerMove ¥¹¥¯¥ê¥×¥È¤È¤Î°ã¤¤¤Ï¡¢°ÜÆ°»þ¤ÎÀ©¸æÉôʬ(Move ¥á¥½¥Ã¥É¤ÎÆâÍÆ)¤Î¤ß¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢Àë¸À¤¹¤ëÊÑ¿ô¡¢ÄêµÁ¤¹¤ë¥á¥½¥Ã¥É¤Ê¤É¤ÏƱ¤¸¤Ç¤¹¡£
ÍøÍѤ·¤Æ¤¤¤ë½èÍý¤ÎÉü½¬¤Ë¤â¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢´°À®¤·¤Æ¤«¤é¸«Èæ¤Ù¤Æ¤ß¤ë¤È¤è¤¤³Ø½¬¤Ë¤Ê¤ê¤Þ¤¹¡£
PlayerController.cs
¡¡¥¹¥¯¥ê¥×¥ÈÆâ¤Ç Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤ò°·¤¦¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤Ç¤¹¡£
¤³¤ÎÃͤˤϡ¢Unity ¤Ë¤è¤Ã¤Æ¼«Æ°Åª¤Ë¼èÆÀ¤µ¤ì¤¿¾ðÊó¤¬ÂåÆþ¤µ¤ì¤Æ¤ª¤ê¡¢¶ñÂÎŪ¤Ë¤Ï¡¢
¥Ò¥¨¥é¥ë¥¡¼¤Ë¤¢¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¦¤Á¡¢"MainCamera" ¤Î¥¿¥°ÉÕ¤±¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë
ºÇ½é¤Î͸ú¤Ê Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤ÎÃͤÏÆɤ߼è¤êÀìÍѤÎÊÑ¿ô¤Ç¤¹¤Î¤Ç¡¢»²¾È¤Ï²Äǽ¤Ç¤¹¤¬¡¢ÂåÆþ¤·¤¿¤ê¤¹¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£
¡¡½é´üÀßÄê¤È¤·¤Æ¡¢¥Ò¥¨¥é¥ë¥¡¼¤Ë Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï MainCamera ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¤ß¤Ç¤¢¤ê¡¢
¤Þ¤¿¡¢¤³¤Î MainCamera ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï MainCamera ¤Î¥¿¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Ê£¿ô¤Î¥«¥á¥é¤òÄɲä·¤¿¤ê¡¢¥¿¥°¤òÊѹ¹¤·¤Æ¤¤¤Ê¤¤¸Â¤ê¤Ï
MainCamera ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤¬ Camera.main ÊÑ¿ô¤ÎÃͤȤʤê¤Þ¤¹¡£
¡¡¤³¤ÎÊÑ¿ô¤Ë¤è¤ê¡¢¥¹¥¯¥ê¥×¥ÈÆâ¤Ç Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤òÍøÍѤ·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢
»öÁ°¤Ë GameObject.Find ¥á¥½¥Ã¥É¤Ç¥«¥á¥é¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¸«¤Ä¤±¤Æ¤¤¿¤ê¡¢
¤½¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ GetComponent ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤ò½àÈ÷¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤»¤ó¡£
¡¡Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÏÍøÍѤ¹¤ëµ¡²ñ¤¬Â¿¤¤¤Î¤Ç¡¢¤¹¤°¤ËÍøÍѤǤ¤ë(¼èÆÀ¤ò¾Êά¤Ç¤¤ë)¤¿¤á¤Ë¡¢Camera.main ÊÑ¿ô¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Camera.main
TechProjin ÍÍ
¡ÚUnity¡Û¥¹¥¯¥ê¥×¥È¤«¤éMain Camera¤ò¼èÆÀ¤¹¤ë¤Î¤Ï´Êñ¤À¤è
¡¡¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¸þ¤¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤¤ëÊÑ¿ô¤Ç¤¹¡£
transform ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¸þ¤¤Î¾ðÊ󤬼èÆÀ½ÐÍè¤Þ¤¹¡£
¡¡¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀµÌ̤θþ¤¤Ï¡¢Transform.forward ÊÑ¿ô¤Ç¼èÆÀ½ÐÍè¤Þ¤¹¡£
Scene ¥Ó¥å¡¼¤Ë¤¢¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤¿¤È¤¤Ëɽ¼¨¤µ¤ì¤ë¡¢Z ¼´¸þ¤¡ÊÀÄ¿§)¤ÎÌð°õ(¥Ù¥¯¥È¥ë)¤ËÁêÅö¤¹¤ë¾ðÊó¤Ç¤¹¡£
¡¡¤³¤ÎÃͤϥ¥ë¥ÉºÂɸ·Ï¤ÇÀµµ¬²½(Ťµ¤¬ 1 ¤Îñ°Ì¥Ù¥¯¥È¥ë)¤µ¤ì¤¿¥Ù¥¯¥È¥ë¤Ç¤¢¤ê¡¢¤½¤ì¤¾¤ì¡¢(0, 0, 1) ¤ÎÃͤȤʤê¤Þ¤¹¡£
¡¡¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹¤Ë¤Ï¡¢Vector3.forward ÊÑ¿ô¤È¤Î°ã¤¤¤Ë¤Ä¤¤¤Æ¤âµºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¡ã¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹¤ÈËÝÌõ¡ä
Returns a normalized vector representing the blue axis of the transform in world space. ¡¡¡¡¥ï¡¼¥ë¥É¶õ´Ö¤Ç¤Î¥È¥é¥ó¥¹¥Õ¥©¡¼¥à¤ÎÀļ´¤òɽ¤¹Àµµ¬²½¤µ¤ì¤¿¥Ù¥¯¥È¥ë¤òÊÖ¤·¤Þ¤¹¡£ The example below shows how to manipulate a GameObject¡Çs position on the Z axis (blue axis) of the transform in world space. ¡¡¡¡°Ê²¼¤ÎÎã¤Ï¡¢¥ï¡¼¥ë¥É¶õ´Ö¤Ç¤Î¥È¥é¥ó¥¹¥Õ¥©¡¼¥à¤Î Z ¼´ (ÀĤ¤¼´) ¾å¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÌÃÖ¤òÁàºî¤¹¤ëÊýË¡¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£ Unlike Vector3.forward, Transform.forward moves the GameObject while also considering its rotation. ¡¡¡¡Vector3.forward ¤È¤Ï°Û¤Ê¤ê¡¢Transform.forward ¤Ï²óž¤â¹Íθ¤·¤Ê¤¬¤é GameObject ¤ò°ÜÆ°¤·¤Þ¤¹¡£ When a GameObject is rotated, the blue arrow representing the Z axis of the GameObject also changes direction. ¡¡¡¡¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬²óž¤¹¤ë¤È¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î Z ¼´¤òɽ¤¹ÀĤ¤Ìð°õ¤âÊý¸þ¤¬ÊѤï¤ê¤Þ¤¹¡£ Transform.forward moves the GameObject in the blue arrow¡Çs axis (Z). ¡¡¡¡Transform.forward ¤Ï¡¢GameObject ¤òÀĤ¤Ìð°õ¤Î¼´ (Z) ¤Ë±è¤Ã¤Æ°ÜÆ°¤·¤Þ¤¹¡£ For moving the GameObject on the Z axis while ignoring rotation, see Vector3.forward. ¡¡¡¡²óž¤ò̵»ë¤·¤Æ Z ¼´¾å¤Ç¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò°ÜÆ°¤¹¤ë¤Ë¤Ï¡¢Vector3.forward ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Transform-forward
¡¡¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î±¦¤Î¸þ¤¤Ï Transform.right ÊÑ¿ô¤«¤é¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
Scene ¥Ó¥å¡¼¤Ë¤¢¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤¿¤È¤¤Ëɽ¼¨¤µ¤ì¤ë¡¢X ¼´¸þ¤¡ÊÀÖ¿§)¤ÎÌð°õ(¥Ù¥¯¥È¥ë)¤ËÁêÅö¤¹¤ë¾ðÊó¤Ç¤¹¡£
¡¡¤³¤ÎÃͤϥ¥ë¥ÉºÂɸ·Ï¤ÇÀµµ¬²½¤µ¤ì¤¿(Ťµ¤¬ 1 ¤Îñ°Ì¥Ù¥¯¥È¥ë)¤µ¤ì¤¿¥Ù¥¯¥È¥ë¤Ç¤¢¤ê¡¢¤½¤ì¤¾¤ì¡¢(1, 0, 0) ¤ÎÃͤȤʤê¤Þ¤¹¡£
Vector3.up ¤È¤Î°ã¤¤¤â¡¢Transform.forward ÊÑ¿ô¤ÈƱ¤¸¤Ç²óž¾ðÊó¤ò»²¾È¤¹¤ë¤«¡¢¤·¤Ê¤¤¤«¤Ë¤¢¤ê¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Transform-right
¡¡¤³¤³¤Ç¤Ï¼è¤ê¾å¤²¤Þ¤»¤ó¤¬¡¢¾åÊý¸þ¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤¤ë Transform.up ÊÑ¿ô¤âÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
³Ð¤¨¤Æ¤ª¤¯¤ÈÊØÍø¤ÊÊÑ¿ô·²¤Ç¤¹¡£
»²¹Í¥µ¥¤¥È
¤Í¤³¤¸¤ã¤é¥·¥Æ¥£ ÍÍ
¡ÚUnity¡Û¥ª¥Ö¥¸¥§¥¯¥È¤Î¸þ¤¤ò¼èÆÀ¤¹¤ë
¡¡Unity ¤Î Vector3 ¤Î°·¤¨¤ë¾ðÊó¤Î£±¤Ä¤Ç¤¹¡£
¡¡Âè1°ú¿ô¤Î³ÆÀ®Ê¬¤È¡¢Âè2°ú¿ô¤ÎƱ¤¸À®Ê¬¤ò¾è»»¤·¤¿·ë²Ì¤ò¡¢Ìá¤êÃͤȤ·¤Æ Vector3 ·¿¤Ç¼èÆÀ¤·¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢·×»»·ë²Ì¤òÂåÆþ¤¹¤ë Vector3 ·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
// ¥«¥á¥é¤ÎÊý¸þ¤«¤é¡¢X-ZÊ¿Ì̤Îñ°Ì¥Ù¥¯¥È¥ë¤ò¼èÆÀ Vector3 cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized;
¡¡Camera.main.transform.forward ¤Ë¤Ï¡¢(0, 0, 1) ¤ÎÃͤ¬ÂåÆþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤ËÂФ·¤Æ¡¢new Vector3(1, 0, 1)¤ò¾è»»¤·¤Þ¤¹¡£
¾åµ¤Î¾ì¹ç¡¢(0 * 1, 0 * 1, 1 * 1)¡¡¤È¤¤¤¦·×»»¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡X ¼´¤È Y ¼´¤Ë¤Ï¾ï¤Ë 0 ¤ÎÃͤ¬¾è»»¤µ¤ì¤ë¤¿¤á¡¢½èÍý¤Î·ë²Ì¤È¤·¤Æ¡¢Z ¤Î¾ðÊó¤Ï¤½¤Î¤Þ¤Þ¡¢X ¤È Y ¤Ï 0 ¤È¤¤¤¦·ë²Ì¤¬Ìá¤êÃͤȤ·¤ÆÆÀ¤é¤ì¤Æ¡¢
¤½¤ÎÃͤ¬ cameraForward ¤ÎÃͤËÂåÆþ¤µ¤ì¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢Camera.main.transform.forward ¤ÎÃͤ«¤é X À®Ê¬¤È Y À®Ê¬¤ò½üµî¤·¡¢0 ¤Ë¤¹¤ë¤³¤È¤¬½ÐÍè¤Æ¤¤¤Þ¤¹¡£
¡¡¤½¤Î¸å¡¢³ÆÀ®Ê¬¤Î·×»»·ë²Ì¤ËÂФ·¤Æ¡¢normalized ÊÑ¿ô¤¬Å¬ÍѤµ¤ì¡¢Ã±°Ì¥Ù¥¯¥È¥ë¤ÎÃͤËÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Vector3.Scale
¤Í¤³¤¸¤ã¤é¥·¥Æ¥£ ÍÍ
¡ÚUnity¡Û¥Ù¥¯¥È¥ëAPI¤ÎÆâÉô·×»»¼°¤Þ¤È¤á
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Ë¤¢¤ë¥×¥ì¥¤¥ä¡¼ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¡¢PlayerMove ¥¹¥¯¥ê¥×¥È¤ò Remove(ºï½ü)¤·¤Þ¤¹¡£
¤½¤Î¸å¡¢Àè¤Û¤ÉºîÀ®¤·¤¿ PlayerController ¥¹¥¯¥ê¥×¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Î¥×¥ì¥¤¥ä¡¼ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤òɽ¼¨¤·¤Æ¡¢PlayerController ¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£
¡¡MoveSpeed ÊÑ¿ô¤ÎÃͤϥ¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤êÄ´À°¤Ç¤¤Þ¤¹¡£¤³¤ÎÃͤ¬¥×¥ì¥¤¥ä¡¼ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î°Üư®ÅÙ¤ÎÃͤˤʤê¤Þ¤¹¤Î¤Ç¡¢Å¬µ¹Ä´À°¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£
¡ã¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü¡ä

¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
¡¡¥¡¼ÆþÎϤò¹Ô¤Ã¤¿ºÝ¤Ë¡¢¥×¥ì¥¤¥ä¡¼¤¬¼ÂºÝ¤Ë°ÜÆ°¤¹¤ë¤«¡¢Æ°ºî³Îǧ(¥Ç¥Ð¥Ã¥°)¤ò¹Ô¤¤¤Þ¤¹¡£
¤³¤Î»þÅÀ¤Ç¡¢¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤Ë°ÜÆ°½èÍý¤¬½ÐÍè¤Æ¤¤¤ì¤ÐÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡Àµ¾ï¤ËÆ°ºî¤·¤¿¾ì¹ç¡¢¤½¤ì¤Ç½ª¤ï¤ê¡¢¤Ç¤Ï¤Ê¤¯¤Æ¡¢¥×¥í¥°¥é¥à¤òÆɤßľ¤·¡¢
¤É¤Î¤è¤¦¤Ê½èÍý¤Ë¤è¤Ã¤Æ¡¢º£²ó¤Î°ÜÆ°¤ÎÀ©¸æ¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤«¤ò¡¢¤·¤Ã¤«¤ê¤ÈÆɤ߲ò¤±¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¥«¥á¥é¤ÎÀµÌ̤ÎÊý¸þ¤ËÂФ·¤Æ°ÜÆ°¤¹¤ëµ¡Ç½¤¬¼ÂÁõ¤Ç¤¤Þ¤·¤¿¤Î¤Ç¡¢¤³¤Î¼ê½ç¤Ç¤Ï¥«¥á¥é¤Î²óžµ¡Ç½¤òºîÀ®¤·¤Þ¤¹¡£
¡¡¥Þ¥¦¥¹¤Î±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¤¤¤ë´Ö¤À¤±¡¢¥«¥á¥é¤¬¾å²¼º¸±¦¤Ë²óž¤¹¤ë¤è¤¦¤ÊÀ߷פˤ·¤Þ¤¹¡£
¥«¥á¥é¤ò²óž¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢²óž¤Î¼ç¼´¤ò¹Í¤¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£º£²ó¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤ò¼ç¼´¤Ë¤·¤Þ¤¹¡£
¤½¤·¤Æ¡¢¤½¤Î¥×¥ì¥¤¥ä¡¼¤ò¼´¤È¤·¤Æ¡¢¥«¥á¥é¤Î°ÌÃÖ¤ò¾å²¼º¸±¦¤Ë²óž¤µ¤»¤Þ¤¹¡£¤³¤Î¥«¥á¥é¤Î²óž¤Ï¸øž²óž¤È¤Ê¤ê¤Þ¤¹¡£
¡¡Cinemachine ¤òÍøÍѤ¹¤ë¾ì¹ç¤Î¥¹¥¯¥ê¥×¥È¤Ç¤¹¡£
¡¡Äɽ¾¤Î½èÍý¤Ë¤Ä¤¤¤Æ¤Ï Cinemachine ¤Î Follow ¤ËÄɽ¾ÂоݤòÀßÄꤷ¤Æ¤¤¤ëÁÛÄê¤Ç¤¹¡£
¤Þ¤¿¡¢X ¼´¤Î²ÄÆ°°è¤Ë¤Ä¤¤¤Æ¤â½èÍý¤¬°Û¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤é¤ÎÃͤˤĤ¤¤Æ¤Ï¡¢¼Â¹Ô¤·¤Ê¤¬¤éÄ´À°¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¥Þ¥¦¥¹¤Î±¦¥Ü¥¿¥ó¤ò²¡¤·Â³¤±¤ë(¥É¥é¥Ã¥°¤·¤Æ¤¤¤ë)´Ö¡¢¥«¥á¥é¤Î¾å²¼º¸±¦¤Î¸øž²óž¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢µ»ö¤ÎÆâÍƤ˲䨤ơ¢¥«¥á¥é¤Î¾å²¼¤Î²ÄÆ°°è(X ¼´¤ËÀ©¸Â)¤òÀߤ±¤Æ¤¤¤Þ¤¹¡£º¸±¦¤Ï 360 ÅÙ²óž²Äǽ¤Ç¤¹¡£
CameraControllerFromCinemachine.cs
¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
Virtual Studio ¤Ç¤Ï¥·¥ç¡¼¥È¥«¥Ã¥Èµ¡Ç½¤¬¤¢¤ê¡¢Ctrl + Shift + S ¥¡¼¤ÎƱ»þ²¡¤·¤Ç³«¤¤¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥¹¥¯¥ê¥×¥È¤ò¤Þ¤È¤á¤Æ¥»¡¼¥Ö¤¬¤Ç¤¤Þ¤¹¡£
¡¡¤³¤Î CameraControllerFromCinemachine ¥¹¥¯¥ê¥×¥È¤Ï MainCamera ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¤Ê¤¯¡¢
CinemachineVirtualCamera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¡¢»ØÄꤷ¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÃæ¿´¼´¤È¤·¤Æ²óž¤µ¤»¤Þ¤¹¡£
Î㤨¤ë¤È¡¢Ãϵå¤ËÂФ·¤Æ¤Î·î¤Î¸øž²óž¤Î¤è¤¦¤Ê²óž¤ò¹Ô¤¦µ¡Ç½¤ò»ý¤Ä¥á¥½¥Ã¥É¤Ç¤¹¡£
¡ã¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹¤è¤ê¡ä
¡¡¥ï¡¼¥ë¥ÉºÂɸ¤Î point ¤òÃæ¿´¤È¤·¤¿¼´( axis )¤Ç angle Åٲ󞤵¤»¤Þ¤¹¡£ ¤³¤ì¤Ï Transform ¤Î°ÌÃ֤Ȳ󞤬Ʊ»þ¤ËÊѹ¹¤µ¤ì¤Þ¤¹¡£
¡¡º£²ó¤Ï¤³¤Á¤é¤Î¸øž²óž¤Îµ¡Ç½¤ò³èÍѤ·¡¢¥×¥ì¥¤¥ä¡¼¤òÃϵå¤È¤·¤Æ¹Í¤¨¤¿¤È¤¡¢¥«¥á¥é¤ò·î¤Î¤è¤¦¤Ë¸øž²óž¤µ¤»¤Æ¤¤¤Þ¤¹¡£
¡¡// ¥«¥á¥é¤òÄɽ¾Âоݤμþ°Ï¤ò¸øž²óž¤µ¤»¤ë transform.RotateAround(targetObj.transform.position, Vector3.up, x * Time.deltaTime * cameraRotateSpeed);
¡ã»²¹Í¥µ¥¤¥È¡ä
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Transform.RotateAround
MR¤¬³Ú¤·¤¤ ÍÍ
»ØÄê¤Î¥È¥é¥ó¥¹¥Õ¥©¡¼¥à¤òÃæ¿´¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤ò²óž¤µ¤»¤ë
¥Õ¥¿¥Ð¥¼¥ß ÍÍ
¥¿¡¼¥²¥Ã¥È¤Î¼þ°Ï¤ò±ß·Á¤Ë°ÜÆ°¤¹¤ë
¡¡Transform ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï²óž¾ðÊó¤ò Rotation ÊÑ¿ô¤È¤·¤Æ´ÉÍý¤·¤Æ¤¤¤Þ¤¹¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ï Vector3 ·¿¤Î (x, y, z) ¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤ÎÃͤÏÆâÉôŪ¤Ë¤Ï Quaternion ·¿¤Ç¤¢¤ë¤¿¤á¡¢
²óž¾ðÊó¤ò¹¹¿·(ÂåÆþ)¤¹¤ë¤¿¤á¤Ë¤Ï¡¢Quaternion ·¿¤ÎÃͤò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡¤½¤ÎÊýË¡¤È¤ÏÊ̤ˡ¢¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢Vector3 ·¿¤ÎÃͤò¤½¤Î¤Þ¤ÞÂåÆþ¤·¤Æ¡¢Rotation ¤ÎÃͤò¹¹¿·¤¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
¤½¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¤Î¤¬ Transform.localEulerAngles ÊÑ¿ô¤Ç¤¹¡£
¡¡¤³¤Î Transform.localEulerAngles ÊÑ¿ô¤Ï¡¢¿Æ¤Î Transform ¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¸«¤¿¡¢ÁêÂÐŪ¤Ê¥ª¥¤¥é¡¼³Ñ¤È¤·¤Æ¤Î²óžÃͤǤ¹¡£
¡¡¤³¤ÎÊÑ¿ô¤òÍøÍѤ¹¤ë¤È¡¢Vector3 ·¿¤Î¾ðÊó¤ò¥ª¥¤¥é¡¼³Ñ¤È¤·¤ÆÍøÍѤ·¤Æ¡¢²óž¾ðÊó¤Î¹¹¿·¤¬¹Ô¤¨¤Þ¤¹¡£
¥ª¥¤¥é¡¼³Ñ¤Ë¤è¤Ã¤Æ Vector3 ·¿¤Î²óž¾ðÊó¤òɽ¸½¤¹¤ë¤È 0 ÅÙ¡Á 360 Å٤ˤʤê¤Þ¤¹¤Î¤Ç¡¢Ä¾´¶Åª¤Ë¤ï¤«¤ê¤ä¤¹¤¤·Á¤Ç¤ÎÂåÆþ½èÍý¤òµ½Ò¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡// ¥«¥á¥é¤Î²óž transform.localEulerAngles = localAngle;
¡¡¤³¤³¤Ç¤Ï¿¨¤ì¤Þ¤»¤ó¤¬¡¢Transform.eulerAngles ÊÑ¿ô¤â¤¢¤ê¤Þ¤¹¡£
¡ã»²¹Í¥µ¥¤¥È¡ä
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Transform.localEulerAngles
¡¡½èÍý¤ÎÆâÍƤò¸«Ä¾¤·¤¿¤¦¤¨¤Ç¡¢¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤·¤Þ¤¹¡£
¡¡¥«¥á¥é¤Î¾å²¼º¸±¦¤Î²óž¤ò³Îǧ¤·¤Ä¤Ä¡¢¥×¥ì¥¤¥ä¡¼¤ò°ÜÆ°¤µ¤»¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¥«¥á¥é¤Î¸þ¤¤¤Æ¤¤¤ëÊý¸þ¤Ë¥×¥ì¥¤¥ä¡¼¤¬Á°¿Ê¤·¤Æ¤¤¤±¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡¼¡¤Ï¡¡¼ê½ç£¸¡¡¡¼¥¸¥ã¥ó¥×¤Î¼ÂÁõ¡Ý¡¡¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯