Blueprintsã¯ãUnreal Engine 4ã®ããžã¥ã¢ã«ã¹ã¯ãªããã·ã¹ãã ã§ãããã²ãŒã ã®ãããã¿ã€ãããã°ããäœæããæ¹æ³ã§ãã ã³ãŒãã1è¡ãã€èšè¿°ãã代ããã«ããã¹ãŠãèŠèŠçã«è¡ãããšãã§ããŸããããŒãïŒããŒãïŒããã©ãã°ã¢ã³ãããããããã€ã³ã¿ãŒãã§ã€ã¹ã§ããããã£ãèšå®ãããã¯ã€ã€ããæ¥ç¶ããŸãã
ã©ããããããã¿ã€ãã³ã°ã«å ããŠããã«ãŒããªã³ãã¯ããã°ã©ããŒä»¥å€ã®äººã®ããã®ã¹ã¯ãªããäœæãç°¡çŽ åããŸãã
ãã¥ãŒããªã¢ã«ã®ãã®éšåã§ã¯ã次ã®æäœã«ãã«ãŒããªã³ãã䜿çšããŸãã
- ããããã¥ãŒã«ã¡ã©ã®ã»ããã¢ãã
- åçŽãªåãã§ãã¬ãŒã€ãŒå¶åŸ¡ã®ä¿³åªãäœæ
- ãã¬ãŒã€ãŒå
¥åèšå®
- ãã¬ãŒã€ãŒãšæ¥è§Šãããšæ¶ããèŠçŽ ãäœæãã
泚ïŒãã®ããŒãã§ã¯ãUnreal Engine 4ã®ã€ã³ã¿ãŒãã§ãŒã¹ãç解ããŠããããšãåæãšããŠãããããã³ã³ããŒãã³ããããŒããªã©ã®åºæ¬çãªãã«ãŒããªã³ãã®æŠå¿µãç解ããå¿
èŠããããŸãã ç¥èãæŽæ°ããå¿
èŠãããå Žå
ã¯ãUnreal Engine 4ãã¥ãŒããªã¢ã«ã®æåã®éšåãèªãã§
ãã ãã ã
ãã®éšåã§ã¯ãã¯ã¿ãŒã䜿çšãããŸãã ãããã«æ
£ããŠããªãå Žåã¯ãgamedev.netã®ãã¯ã¿ãŒã«é¢ãã
ãã®èšäºããå§ãããŸãã
泚ïŒãã®èšäºã¯ãUnreal Engineãã¥ãŒããªã¢ã«ã®8ã€ã®ããŒãã®1ã€ã§ãã
ä»äºãå§ãã
åæãããžã§ã¯ããããŠã³ããŒãããŠè§£åããŸãã ãããžã§ã¯ããéãã«ã¯ããããžã§ã¯ããã©ã«ããŒã«ç§»åããŠ
BananaCollector.uprojectãéã
ãŸã ã
泚ïŒãããžã§ã¯ããã¢ã³ãªã¢ã«ãšãã£ã¿ã®ä»¥åã®ããŒãžã§ã³ã§äœæãããããšãéç¥ãããŠã£ã³ããŠãéãå Žåããã¹ãŠãæ£åžžã«æ©èœããŠããŸãïŒãšã³ãžã³ã¯é »ç¹ã«æŽæ°ãããŸãïŒã ã³ããŒãäœæãããªãã·ã§ã³ãéžæãããããããžã§ã¯ãèªäœãå€æãããªãã·ã§ã³ãéžæã§ããŸãã
äžã®ç»åã¯ã·ãŒã³ã瀺ããŠããŸãã ãã¬ãŒã€ãŒããªããžã§ã¯ãã移åããŠåéããã®ã¯ããã®äžã«ãããŸãã
ããã²ãŒã·ã§ã³ãç°¡åã«ããããã«ãå³ã«ç€ºãããã«ããããžã§ã¯ããã¡ã€ã«ããã©ã«ããŒã«åå²ããŸããã
èµ€ã§åŒ·èª¿è¡šç€ºããããã¿ã³ã¯ããœãŒã¹ããã«ã®è¡šç€ºãŸãã¯é衚瀺ã«äœ¿çšã§ããŸãã
ãã¬ã€ã€ãŒäœæ
ã³ã³ãã³ããã©ãŠã¶ã§ã
ãã«ãŒããªã³ããã©ã«ããåç
§ããŸãã [
æ°èŠè¿œå ]ãã¿ã³ãã¯ãªãã¯ããŠã
ãã«ãŒããªã³ãã¯ã©ã¹ãéžæããŸãã
ãã¬ãŒã€ãŒãå
¥åããæ
å ±ãã¢ã¯ã¿ãŒã«åä¿¡ããŠã»ããã®ã§ã
Pawnã¯ã©ã¹ãé©ããŠããŸãã ãããã¢ãããŠã£ã³ããŠã§
Pawnãéžæãã
BP_Playerãšããååã
ä»ããŸãã
æ³šïŒ æåã¯ã©ã¹ã
åé¡ãããŸããã ããã©ã«ãã®moveã³ã³ããŒãã³ãããããŸãã ãã ããç¬èªã®ç§»åã·ã¹ãã ãå®è£
ããããã
Pawnã¯ã©ã¹ã§ååã§ãã
ã«ã¡ã©ã¢ã¿ããã¡ã³ã
ã«ã¡ã©ã¯ããã¬ã€ã€ãŒãäžçãèŠãæ¹æ³ã§ãã ãã¬ãŒã€ãŒãèŠäžããã«ã¡ã©ãäœæããŸãã
ã³ã³ãã³ããã©ãŠã¶ã§ã
BP_Playerã
ããã«ã¯ãªãã¯ããŠããã«ãŒããªã³ããšãã£ã¿ã§éã
ãŸã ã
ã«ã¡ã©ãäœæããã«ã¯ã[ã³ã³ããŒãã³ã]ããã«ã«ç§»åããŸãã [
ã³ã³ããŒãã³ãã®è¿œå ]ãã¯ãªãã¯ããŠã[
ã«ã¡ã©]ãéžæããŸãã
ã«ã¡ã©ãäžããäžã«åããã«ã¯ããã¬ãŒã€ãŒã®äžã«ã«ã¡ã©ãé
眮ããå¿
èŠããããŸãã ã«ã¡ã©ã³ã³ããŒãã³ããéžæããåŸã[ãã¥ãŒããŒã]ã¿ãã«ç§»åããŸãã
WããŒãæŒããŠã¢ãŒã·ã§ã³ããããã¢ã¯ãã£ãã«ããã«ã¡ã©ã
ïŒ-1100ã0ã2000ïŒã«ç§»åããŸãã ãŸãã¯ã[
å Žæ]ãã£ãŒã«ãã«åº§æšãå
¥åã§ããŸãã 詳现ããã«ã®
å€æã»ã¯ã·ã§ã³ã«ãããŸãã
ã«ã¡ã©ãèŠå€±ã£ãå Žåã¯ã
FããŒãæŒããŠçŠç¹ãåãããŸãã
次ã«ã
EããŒãæŒããŠå転ãããã¥ã¬ãŒã¿ãŒãã¢ã¯ãã£ãã«ããŸãã ã«ã¡ã©ã
Y軞ã«æ²¿ã£ãŠ
-60床äžã«å転ãããŸãã
ãã£ã¹ãã¬ã€ãã¬ãŒã€ãŒ
ãã¬ã€ã€ãŒã®ãã£ã©ã¯ã¿ãŒãèµ€ãç«æ¹äœã§æå®ãããããéçã¡ãã·ã¥ã³ã³ããŒãã³ãã䜿çšããŠè¡šç€ºããå¿
èŠããããŸãã
æåã«ãã³ã³ããŒãã³ãããã«ã®ç©ºãã¹ããŒã¹ã
å·Šã¯ãªãã¯ããŠã
ã«ã¡ã©ã³ã³ããŒãã³ãã®éžæã解é€ããŸãã ãããè¡ãããªãå Žåã次ã«è¿œå ãããã³ã³ããŒãã³ãã¯ã«ã¡ã©ã®åã«ãªããŸãã
[
ã³ã³ããŒãã³ãã®è¿œå ]ãã¯ãªãã¯ããŠã[
éçã¡ãã·ã¥]ãéžæããŸãã
èµ€ãç«æ¹äœã衚瀺ããã«ã¯ã
éçã¡ãã·ã¥ã³ã³ããŒãã³ããéžæãã[詳现]ã¿ãã«ç§»åããŸãã
Static Meshã®å³åŽã«ãã
ããããããŠã³ãªã¹ããã¯ãªãã¯ããŠã
SM_CubeãéžæããŸãã
次ã衚瀺ãããŸãïŒè¡šç€ºãããŠããªãå Žåã¯ããã¥ãŒããŒãå
ã§
FãæŒããŠãã¥ãŒãã«çŠç¹ãåãããããšãã§ããŸãïŒã
ä»ããã俳åªPawnãã¬ã€ã€ãŒãã¹ããŒã³ãããšãã§ãã [
ã³ã³ãã€ã«]ãã¯ãªãã¯ããŠãã¡ã€ã³ãšãã£ã¿ãŒã«æ»ããŸãã
ãã¬ã€ã€ãŒã¹ããŒã³
ãã¬ã€ã€ãŒãããŒã³ãã³ã³ãããŒã«ããã«ã¯ã次ã®2ã€ã®ããšãèšããŸãã
- ãã¬ãŒã€ãŒãå¶åŸ¡ããPawnã¯ã©ã¹ã
- ããŒã³ã¹ããŒã³ãã¬ã€ã¹
æ°ãã
ã²ãŒã ã¢ãŒãã¯ã©ã¹ãäœæããŠãæåã®ã¿ã¹ã¯ãå®äºããããšãã§ã
ãŸã ã
ã²ãŒã ã¢ãŒãã®äœæ
ã²ãŒã ã¢ãŒãã¯ã©ã¹ã¯ããã¬ãŒã€ãŒã®ã²ãŒã ãžã®åå æ¹æ³ãå¶åŸ¡ããã¯ã©ã¹ã§ãã ããšãã°ããã«ããã¬ã€ã€ãŒã²ãŒã ã§ã¯ãã²ãŒã ã¢ãŒãã䜿çšããŠåãã¬ã€ã€ãŒã®ã¹ããŒã³ãèšå®ããŸãã ããã«éèŠãªããšã¯ãã²ãŒã ã¢ãŒãã決å®ããããšã§ãã ãã¬ã€ã€ãŒã䜿çšããããŒã³ã
ã³ã³ãã³ããã©ãŠã¶ã«ç§»åãã
ãã«ãŒããªã³ããã©ã«ãã«ç§»åããŸãã [
æ°èŠè¿œå ]ãã¿ã³ãã¯ãªãã¯ããŠã
ãã«ãŒããªã³ãã¯ã©ã¹ãéžæããŸãã
ãããã¢ããã¡ãã¥ãŒãã[
ã²ãŒã ã¢ãŒãããŒã¹ ]ãéžæãã
GM_Tutorialãšããååã
ä»ããŸãã
ããã§ãããã©ã«ãã§äœ¿çšãããPawnã¯ã©ã¹ãæå®ããå¿
èŠããããŸãã
GM_Tutorialã
ããã«ã¯ãªãã¯ããŠéããŸãã
[詳现]ããã«ã«ç§»åãã[
ã¯ã©ã¹]ã»ã¯ã·ã§ã³ã確èªããŸãã [
ããã©ã«ãã®ããŒã³ã¯ã©ã¹] ããããããŠã³ãªã¹ããã¯ãªãã¯ã
ã [
BP_Player]ãéžæããŸãã
æ°ããã²ãŒã ã¢ãŒãã䜿çšããã«ã¯ã䜿çšããã²ãŒã ã¢ãŒããã¬ãã«ã«äŒããå¿
èŠããããŸãã ããã¯ã
ã¯ãŒã«ãèšå®ã§æå®ã§ããŸãã [
ã³ã³ãã€ã«]ãã¯ãªãã¯ããŠããã«ãŒããªã³ããšãã£ã¿ãŒãéããŸãã
åã¬ãã«ã«ã¯ç¬èªã®ãã©ã¡ãŒã¿ãŒããããŸãã ãããã®ãªãã·ã§ã³ã«ã¢ã¯ã»ã¹ããã«ã¯ã
Window \ World SettingsãéžæããŸãã ãŸãã¯ãããŒã«ããŒã«ç§»åããŠã[
èšå®] \ [ã¯ãŒã«ãèšå®]ãéžæããŸãã
[詳现]ã¿ãã®æšªã«ãæ°ãã[ã¯ãŒã«ãèšå®]ã¿ããéããŸãã ãã®äžã§ã
GameMode Override ããããããŠã³ãªã¹ããã¯ãªãã¯ã
ã GM_TutorialãéžæããŸãã
ããã§ãã¯ã©ã¹ã
GM_Tutorialã§éžæãããã¯ã©ã¹ã«å€æŽãããããšã
ããããŸãã
æåŸã«ããã¬ã€ã€ãŒã®ã¹ããŒã³ãã€ã³ããèšå®ããå¿
èŠããããŸãã ããã¯ã
ãã¬ãŒã€ãŒã®éå§ã¢ã¯ã¿ãŒã¬ãã«ã«é
眮ããããšã«ãã£ãŠè¡ãããŸãã
ãã¬ãŒã€ãŒã®éå§ã®é
眮
ãã¬ãŒã€ãŒãã¹ããŒã³ããããã»ã¹ã§ãã²ãŒã ã¢ãŒãã¯ãã¬ãŒã€ãŒéå§ã¢ã¯ã¿ãŒãæ€çŽ¢ããŸãã ã²ãŒã ã¢ãŒãããããèŠã€ãããšãããã§ãã¬ã€ã€ãŒãã¹ããŒã³ããããšããŸãã
Player Startãé
眮ããã«ã¯ã[ã¢ãŒã]ããã«ã«ç§»åãã
Player StartãèŠã€ããŸãã Players
Startã å·Šã¯ãªãã¯ããŠãã¢ãŒãããã«ãããã¥ãŒããŒãã«ãã©ãã°ã
ãŸã ã
ããŠã¹ã®
å·Šãã¿ã³ã
æŸããŠé
眮ããŸãã
ã©ãã«ã§ãé
眮ã§ããŸãã å®äºããããããŒã«ããŒã«ç§»åããŠ[
åç ]ãã¯ãªãã¯ããŸãã Player Startã®å Žæã«ã¹ããŒã³ãããŸãã
ã²ãŒã ãçµäºããã«ã¯ãããŒã«ããŒã®[
åæ¢ ]ãã¿ã³ãã¯ãªãã¯ãããã
EscããŒãæŒããŸã ã ã«ãŒãœã«ã衚瀺ãããªãå Žåã¯ã
Shift + F1ãæŒã
ãŸã ã
移åã§ããªãå Žåãããã¯ã²ãŒã ã®ããã§ã¯ãããŸããã 次ã®ã¿ã¹ã¯ã¯ãå
¥åãã©ã¡ãŒã¿ãŒãæ§æããããšã§ãã
å
¥åèšå®
ããŒãã¢ã¯ã·ã§ã³ã«å²ãåœãŠãããšãããŒãã€ã³ãã£ã³ã°ãšåŒã³ãŸãã
Unrealã§ã¯ãæŒããããšãã«
ã€ãã³ããããªã¬ãŒããããã«ããŒãã€ã³ãã£ã³ã°ãèšå®ã§ããŸãã ã€ãã³ãã¯ãç¹å®ã®ã¢ã¯ã·ã§ã³äžã«å®è¡ãããããŒãã§ãïŒãã®å Žåãæå®ãããããŒãæŒããããšãïŒã ã€ãã³ããããªã¬ãŒããããšãã€ãã³ãã«æ¥ç¶ãããŠãããã¹ãŠã®ããŒããå®è¡ãããŸãã
ãã®ããŒãã€ã³ãã£ã³ã°æ¹æ³ã¯ãã³ãŒãå
ã®ããŒãããŒãã³ãŒãã£ã³ã°ããå¿
èŠããªãããšãæå³ããããã䟿å©ã§ãã
ããšãã°ãããŠã¹ã®å·Šãã¿ã³ãã¹ãããããŠShootãšããååãä»ããããšãã§ããŸãã å°æã§ãã俳åªã¯ãå°æã€ãã³ãã䜿çšããŠããã¬ãŒã€ãŒãããŠã¹ã®å·Šãã¿ã³ãæŒãã¿ã€ãã³ã°ãç¥ãããšãã§ããŸãã ããŒãå€æŽããå Žåã¯ãå
¥åãã©ã¡ãŒã¿ãŒã§ãããå®è¡ã§ããŸãã
ããŒãããŒãã«èšå®ããå Žåãåã¢ã¯ã¿ãŒã«å
¥ããããŒãåå¥ã«å€æŽããå¿
èŠããããŸãã
軞ãšã¢ã¯ã·ã§ã³ã®ãã€ã³ã
å
¥åãªãã·ã§ã³ã«ç§»åããã«ã¯ã
ç·šé\ãããžã§ã¯ãèšå®ã«ç§»åããŸãã [
ãšã³ãžã³]ã»ã¯ã·ã§ã³ã§ãå·ŠåŽã®[
å
¥å]ãéžæããŸãã
Bindingsã»ã¯ã·ã§ã³ã¯å
¥åãæ§æããŸãã
ã¢ã³ãªã¢ã«ã¯ãããŒãã€ã³ãã£ã³ã°ãäœæãã2ã€ã®æ¹æ³ãæäŸããŸãã
- ãã€ã³ãã£ã³ã°ã¢ã¯ã·ã§ã³ïŒæŒãããç¶æ
ãšæŒãããªãç¶æ
ã®2ã€ã®ç¶æ
ã®ã¿ãå¯èœã§ãã ã¢ã¯ã·ã§ã³ã€ãã³ãã¯ãããŒãæŒããæŸãããšãã«ã®ã¿çºçããŸãã å€§ç ²ã®çºå°ãªã©ãäžéç¶æ
ãæããªãã¢ã¯ã·ã§ã³ã«äœ¿çšãããŸãã
- 軞ãã€ã³ãã£ã³ã°ïŒè»žã¯ã軞å€ãšåŒã°ããæ°å€ãéä¿¡ããŸã ïŒããã«ã€ããŠã¯åŸã§èª¬æããŸãïŒã Axisã€ãã³ãã¯ãã¹ãŠã®ãã¬ãŒã ãçºçãããŸãã éåžžãã¹ãã£ãã¯ãŸãã¯ããŠã¹ã®å¶åŸ¡ãå¿
èŠãšããã¢ã¯ã·ã§ã³ã«äœ¿çšãããŸãã
ãã®ãã¥ãŒããªã¢ã«ã§ã¯ã
軞ãã€ã³ãã£ã³ã°ã䜿çšããŸãã
ã¢ãŒã·ã§ã³ã¹ãããã®äœæ
æåã«ã
è»è»žãã€ã³ãã£ã³ã°ã® 2ã€ã®
ã°ã«ãŒããäœæã
ãŸã ã ã°ã«ãŒãã䜿çšãããšãè€æ°ã®ããŒãåäžã®ã€ãã³ãã«ãã€ã³ãã§ããŸãã
æ°ãã
軞ã¹ãããã°ã«ãŒããäœæããã«ã¯ã
軞ãããã³ã°ã®å³åŽã«ãã
+ã¢ã€ã³ã³ãã¯ãªãã¯ããŸãã 2ã€ã®ã°ã«ãŒããäœæãããããã«
MoveForwardããã³
MoveRightãšããååãä»ããŸãã
MoveForwardã¯
ååŸã«é§åããŸãã
MoveRightã¯ãå·Šå³ã®åããå¶åŸ¡ããŸãã
ã ãŒãã¡ã³ãã4ã€ã®ããŒ
W ã
A ã
S ã
Dã«ãã€ã³ãããŸã
ã ãããŸã§ã®ãšãããããŒãã€ã³ãçšã®ã¹ãããã¯2ã€ãããããŸããã
ã°ã«ãŒãåãã£ãŒã«ãã®æšªã«ãã
+ã¢ã€ã³ã³ãã¯ãªãã¯ããŠãåã°ã«ãŒãã«ãã1
ã€ã®è»žãã€ã³ãã£ã³ã°ãè¿œå ããŸãã
ããŒããã€ã³ãããã«ã¯ãããŒã®
ãªã¹ããå«ã
ããããããŠã³ãªã¹ããã¯ãªãã¯ããŸãã
WããŒãš
SããŒã
MoveForwardã«ãã€ã³ãããŸãã
AããŒãš
DããŒã
MoveRightã«ãã€ã³ãããŸãã
次ã«ãã
ã¹ã±ãŒã«ããã£ãŒã«ãã«å€ãèšå®ããå¿
èŠããããŸãã
軞å€ãšå
¥åã¹ã±ãŒã«
ã¹ã±ãŒã«ãã£ãŒã«ããå®çŸ©ããåã«ã
軞ã®å€ãæäœããæ¹æ³ã«ã€ããŠããã«åŠç¿ããå¿
èŠããã
ãŸã ã
軞ã®å€ã¯ãå
¥åã®çš®é¡ãšãã®äœ¿çšæ¹æ³ã«ãã£ãŠæ±ºãŸãæ°å€ã§ãã ãã¿ã³ãšããŒãæŒããšã1ãåºåãããã¹ãã£ãã¯ã®æ¹åãšåŸãã«å¿ããŠãã¹ãã£ãã¯ã®åºåå€ã¯-1ã1ã«ãªããŸãã
軞ã®å€ã䜿çšããŠãããŒã³ã®é床ãå¶åŸ¡ã§ããŸãã ããšãã°ãã¹ãã£ãã¯ãæåŸãŸã§æŒããå Žåã軞ã®å€ã¯1ã«ãªããŸããååæŒããå Žåãå€ã¯0.5ã«ãªããŸãã
軞ã®å€ã«å¯å€é床ãæãããšãã¹ãã£ãã¯ã§åãã®é床ã調æŽã§ããŸãã
軞ã®å€ã䜿çšããŠã軞ã«æ²¿ã£ãæ¹åãèšå®ããããšãã§ããŸãã Pawnã®é床ã«æ£ã®è»žå€ãæãããšãæ£ã®ãã€ã¢ã¹ãåŸãããŸãã è² ã®è»žå€ã䜿çšãããšãè² ã®ãªãã»ãããåŸãããŸãã ãã®ãªãã»ãããPawnã®äœçœ®ã«è¿œå ããŠããã®ç§»åã®æ¹åãèšå®ããŸãã
ããŒããŒãããŒã¯å€1ãŸãã¯0ã®ã¿ãåºåã§ããŸãããã®åŸã
ã¹ã±ãŒã«ã䜿çšããŠããããè² ã®æ°å€ã«å€æã§ããŸãã ããã¯ã軞ã®å€ãååŸããããã«ã¹ã±ãŒã«ãæããããšã§å®è¡ã§ããŸãã
æ£ïŒè»žå€ïŒã«è² ïŒã¹ã±ãŒã«ïŒãæãããšãè² ã®å€ãåŸãããŸãã
Scaleãã£ãŒã«ããã¯ãªãã¯ããŠ
-1ãå
¥åããããŒ
Sãš
Aãã¹ã±ãŒãªã³ã°ããŸãã
ä»ãã楜ãã¿ãå§ãŸããŸãïŒPawnãåãããŸãïŒ ãããžã§ã¯ãèšå®ãéãããã«ãŒããªã³ããšãã£ã¿ãŒã§
BP_Playerãããã«ã¯ãªãã¯ããŠéããŸãã
ãã¬ã€ã€ãŒã®åã
ãŸããã¢ãŒã·ã§ã³ãã€ã³ãã£ã³ã°ã®ã€ãã³ããéžæããå¿
èŠããããŸãã ã€ãã³ãã°ã©ãã®ç©ºã®ã¹ããŒã¹ã
å³ã¯ãªãã¯ããŠãããŒãã®ãªã¹ããéããŸãã ãã®ã¡ãã¥ãŒã§
MoveForwardãèŠã€ããŸãã
Axis Eventsãªã¹ããã
MoveForwardããŒããè¿œå ããŸãã 軞ã®å€ã«ã¯ç·ã®ããŒãã§ã¯ãªãã軞ã®ã€ãã³ãã«ã¯èµ€ã®ããŒããå¿
èŠã§ããããšã«æ³šæããŠãã ããã
MoveRightã«å¯ŸããŠããã»ã¹ãç¹°ãè¿ããŸãã
次ã«ã
MoveForwardã®ããŒããæ§æããŸãã
å€æ°ã䜿çšãã
移åããã«ã¯ãããŒã³ã®ç§»åé床ãæå®ããå¿
èŠããããŸãã é床ã瀺ãç°¡åãªæ¹æ³ã®1ã€ã¯ãé床ã
å€æ°ã«æ ŒçŽããããš
ã§ã ã
å€æ°ãäœæããã«ã¯ã[ãã€ãã«ãŒããªã³ã]ã¿ãã«ç§»åãã[
å€æ°]ã»ã¯ã·ã§ã³ã®å³åŽã«ãã[
+ ]ã¢ã€ã³ã³ãã¯ãªãã¯ããŸãã
æ°ããå€æ°ãéžæãããã[詳现]ã¿ãã«ç§»åããŸãã å€æ°åã
MaxSpeedã«å€æŽããŸãã ãã®åŸãå€æ°ã®åã
Floatã«çœ®ãæããŸãã ãããè¡ãã«ã¯ã[
å€æ°ã®çš®é¡]ã®æšªã«ãã
ããããããŠã³ãªã¹ããã¯ãªãã¯ããŠã[
ãããŒã]ãéžæããŸãã
次ã«ãããã©ã«ãå€ãèšå®ããå¿
èŠããããŸãã ãã ããèšå®ããã«ã¯ãããŒã«ããŒã®ã
ã³ã³ãã€ã«ããã¯ãªãã¯ããå¿
èŠããããŸãã
å€æ°ãéžæããåŸãã詳现ãã¿ãã«ç§»åããŸãã [
ããã©ã«ãå€]ã»ã¯ã·ã§ã³ã«ç§»åãã
ããã©ã«ãã® MaxSpeedã
10ã«å€æŽããŸãã
次ã«
ã MaxSpeedå€æ°ã[ãã€ãã«ãŒããªã³ã]ã¿ãããã€ãã³ãã°ã©ãã«
ãã©ãã°ããŸãã ã¡ãã¥ãŒããã
ååŸããéžæããŸãã
ããã§
ã MaxSpeed ã«è»žã®å€ãä¹ç®ããŠãæçµçãªé床ãšæ¹åãååŸããå¿
èŠããããŸãã
float * floatããŒããè¿œå ãã
Axis Valueãš
MaxSpeedãã¢ã¿ãã
ããŸã ã
ãã¬ã€ã€ãŒã®éé ãååŸãã
åé²ããã«ã¯ãPawnãã©ããèŠãŠããã®ããç¥ãå¿
èŠããããŸãã 幞ããªããšã«ãUnrealã«ã¯ãã®ããã®ããŒãããããŸãã
Get Actor Forward VectorããŒããè¿œå ããŸãã
次ã«ã
éåå
¥åããŒãã
è¿œå ããŸãã ãã®ããŒãã¯æ¹åãšå€ãååŸããããããä¿åããããªãã»ããã«å€æããŸãã 次ã®ããã«ããŒããæ¥ç¶ããŸãã
çœãç·ã¯å®è¡ãã§ãŒã³ã瀺ããŸãã ã€ãŸãããã¬ãŒã€ãŒãå
¥å軞ã移åãããšã
InputAxis MoveForwardããŒããå®è¡ããã€ãã³ããçæãããŸãã çœãç·ã¯ããã®åŸã
移åå
¥åã®
è¿œå ããŒããå®è¡ãããããšã瀺ããŠããŸãã
移åå
¥åã®
è¿œå ããŒãã¯ã
å
¥åã§æ¬¡ã®ããŒã¿ãåãåããŸãã
- ã¿ãŒã²ãã ïŒèªå·±ãèšå®ããŸãããã®å Žåãããã¯ãã¬ã€ã€ãŒã®ãã£ã©ã¯ã¿ãŒïŒèµ€ãç«æ¹äœïŒã§ãã
- World Direction ïŒã¿ãŒã²ããã移åããæ¹åããã®å Žåããã¬ã€ã€ãŒãèŠãŠããæ¹åã§ãã
- ã¹ã±ãŒã«å€ ïŒãã¬ãŒã€ãŒã移åããè·é¢ããã®å Žåãããã¯max_speed * axis_valueïŒããã¯æãåºãããã«ã-1ãã1ã®ç¯å²ã®å€ã§ãïŒã§ãã
MoveRightã®ããã»ã¹ã
ç¹°ãè¿ããŸããã
Get Actor Forward Vectorã
Get Actor Right Vectorã«çœ®ãæããŸãã äžèšã®æé ãåç
§ããã«èªåã§è©ŠããŠã¿ãŠãã ããïŒ
ãªãã»ãããè¿œå
Pawnãå®éã«ç§»åããã«ã¯ãAdd Movement Inputã«ãã£ãŠèšç®ããããªãã»ãããååŸããPawnã®å Žæã«è¿œå ããå¿
èŠããããŸãã
æ¬è³ªçã«ã¯ãã²ãŒã ã®åãã¬ãŒã ã§ãã¬ãŒã€ãŒãå°ãåããããšã«ãªãã®ã§ããã¬ãŒã ããšã«çæããã
ã€ãã³ããã£ãã¯ã€ãã³ãã«ã ãŒããè¿œå ããå¿
èŠããããŸãã
ã€ãã³ãã°ã©ãã®
ã€ãã³ããã£ãã¯ããŒãã«ç§»åããŸãã éã¢ã¯ãã£ãã§å·ŠåŽã«ããå¿
èŠããããŸãããååšããªãå Žåã¯ãèªåã§ããŒããäœæããŸãã
ãªãã»ãããååŸããã«ã¯ã
Consume Movement Input VectorããŒããäœæããŸãã ãªãã»ãããè¿œå ããã«ã¯ã
AddActorLocalOffsetããŒããäœæããŸãã ãã®åŸã次ã®ããã«æ¥ç¶ããŸãã
ããã¯ãã²ãŒã ã®åãã¬ãŒã ã§ã ãŒãã®å
¥åå
šäœãä¿åãããããã¢ã¯ã¿ãŒã®çŸåšã®å Žæã«è¿œå ããããšãæå³ããŸãã
[
ã³ã³ãã€ã« ]ãã¯ãªãã¯ããã¡ã€ã³ãšãã£ã¿ãŒã«ç§»åããŠ[
åç ]ãã¯ãªãã¯ããŸãã ããã§ã·ãŒã³å
ã移åã§ããŸãïŒ
ãã ããå°ããªåé¡ããããŸãã 匷åãªã³ã³ãã¥ãŒã¿ãŒã¯ããã¬ãŒã ãããéãã¬ã³ããªã³ã°ã§ããŸãã ã€ãã³ããã£ãã¯ã¯ãã¬ãŒã ããšã«åŒã³åºããããããããŒãã®ç§»åã¯ããé »ç¹ã«å®è¡ãããŸãã ããã¯ãããŒã³ã匷åãªã³ã³ãã¥ãŒã¿ãŒäžã§ããéã移åããããšãæå³ããŸãã
ãã®åé¡ã解決ããã«ã¯ãåã
ããã¬ãŒã ã¬ãŒãã«äŸåããªãããã«ããå¿
èŠããããŸãã
泚ïŒãã¬ãŒã ã¬ãŒãäŸåæ§ã®åœ±é¿ã瀺ãããã«ããŒãã€ã³ãã£ã³ã°ãèšå®ããŸããã
0ãæŒããŠåšæ³¢æ°ã1ç§ããã60ãã¬ãŒã ã«å¶éãã
1ãæŒããŠå¶éã解é€ããŸãã äž¡æ¹ã®ãã¬ãŒã ã¬ãŒãã§ç§»åããŠã¿ãŠãã ãããé床ã®éããããããŸãã
ãã¬ãŒã ã¬ãŒãã®ç¬ç«æ§
ãã¬ãŒã ã¬ãŒãããç¬ç«ããŠããããããã¬ãŒã ã¬ãŒãã«é¢ä¿ãªããåžžã«åãçµæãåŸãããŸãã 幞ããªããšã«ãUnrealã§ãã®ãããªç¬ç«æ§ãå®çŸããã®ã¯ç°¡åã§ãã
ã²ãŒã ãçµäºãã
BP_Playerãéã
ãŸã ã 次ã«ã
ã€ãã³ããã£ãã¯ããŒãã«ç§»åããŠã
ãã«ã¿ç§ã確èªããŸãã
ãã«ã¿ç§ã¯ãåã®ã€ãã³ããã£ãã¯ããçµéããæéã§ãã ãªãã»ããã«ãã«ã¿ç§ãæããããšã§ããã¬ãŒã ã¬ãŒãã«äŸåããªãåãã«ãªããŸãã
ããšãã°ãããŒã³ã®æ倧é床ã¯100ã§ããåã®ã€ãã³ããã£ãã¯ãã1ç§ãçµéãããšãããŒã³ã¯å®å
šãª100ãŠãããã«ç§»åããŸãã 0.5ç§ãçµéãããšã50åäœç§»åããŸãã
åãããã¬ãŒã ã¬ãŒãã«äŸåããŠããå ŽåãããŒã³ã¯ãã¬ãŒã éã®æéã«é¢ä¿ãªããåãã¬ãŒã ã§100ãŠãããã移åããŸãã
ãªãã»ããã«ãã«ã¿ç§ãä¹ç®ããã«ã¯ã
vector * floatããŒããè¿œå ããŸãã ãã®åŸã次ã®ããã«ããŒããæ¥ç¶ããŸãã
ãã¬ãŒã éã®æéïŒãã«ã¿ç§ïŒã¯éåžžã«çããããããŒã³ã®ç§»åã¯ã¯ããã«é
ããªããŸãã ããã¯ãããã©ã«ãã®
MaxSpeedå€ã
600ã«çœ®ãæããããšã§ä¿®æ£ã§ããŸãã
ããã§ãšãããããŸããããªãã¯ãªããšããã¬ãŒã ã¬ãŒãããã®ç¬ç«ãéæããããšãã§ããŸããïŒ
ãã¥ãŒãããã¹ãŠã®ãªããžã§ã¯ããééããããšã«æ°ä»ããããããŸããã ãããä¿®æ£ããããã«ã
è¡çªã«ç²Ÿéããå¿
èŠããããŸãã
ä»ãç§ãã¡ã¯çè«ã«
çŽé¢ããªããã°ãªããªãã®ã§ããã«ã¡ãããççšããŠãã ããïŒ
ã¢ã¯ã¿ãŒã®è¡çª
è¡çªãæãåºããšããèªåè»äºæ
ãæ³åããŸãã 幞ããªããšã«ãUnrealã§ã®è¡çªã¯ã¯ããã«å®å
šã§ãã
ãªããžã§ã¯ããšè¡çªã§ããããã«ããã«ã¯ãã¢ã¯ã¿ã¯è¡çªç©ºéã®æå®ïŒéåžžã¯ã³ãªãžã§ã³ãšåŒã°ããŸãïŒãå¿
èŠã§ãã 次ã®ã¹ããŒã¹ã®ããããã䜿çšã§ããŸãã
- ã³ãªãžã§ã³ã¡ãã·ã¥ïŒã¡ãã·ã¥ãã€ã³ããŒããããšãã«èªåçã«çæãããŸãïŒãã®ãªãã·ã§ã³ãéžæããå ŽåïŒã ãŠãŒã¶ãŒã¯ã3Dãšãã£ã¿ãŒã§ä»»æã®è¡çªã¡ãã·ã¥ãäœæããããšãã§ããŸãã èµ€ãç«æ¹äœã«ã¯ãã§ã«èªåçæãããè¡çªã¡ãã·ã¥ããããŸãã
- è¡çªã³ã³ããŒãã³ãïŒå¹³è¡å
é¢äœãã«ãã»ã«ãçã®3ã€ã®åœ¢åŒã®ããããã§ãã ã³ã³ããŒãã³ãããã«ã§è¿œå ã§ããŸãã éåžžãåçŽãªè¡çªã«äœ¿çšãããŸãã
以äžã¯ããã£ã©ã¯ã¿ãŒãšãã®è¡çªã®äŸã§ãã
è¡çªã¯ã俳åªã®è¡çªãå¥ã®ä¿³åªã®è¡çªã«è§ŠãããšçºçããŸãã
次ã«ãè¡çªããªã³ã«ããŸãã
è¡çªä»åšç©
è¡çªã¡ãã·ã¥ã¯ããã®ã«ããªããã¥ãŒãããªããžã§ã¯ããšè¡çªããªãã®ãçåã«æãããã§ãããã ã¢ã¯ã¿ãŒã移åãããšããUnrealã¯è¡çªã®
ã«ãŒãã³ã³ããŒãã³ãã®ã¿ãèæ
®ããŸãã Pawnã®ã«ãŒãã³ã³ããŒãã³ãã«ã¯è¡çªããªãããããã¹ãŠã®ãªããžã§ã¯ããééããŸãã
泚ïŒã«ãŒãã³ã³ããŒãã³ãã«è¡çªããªãã¢ã¯ã¿ãŒã¯ãä»ã®ã¢ã¯ã¿ãŒããããã¯ããå¯èœæ§ããããŸãã ããã
ã俳åªã
åããã°ã圌ã¯äœã«ãééããŸããã
ãããã£ãŠãè¡çªã¡ãã·ã¥ã䜿çšããã«ã¯ã
StaticMeshã
rootã§ãªããã°ãªããŸããã ãããè¡ãã«ã¯ã[ã³ã³ããŒãã³ã]ããã«ã«ç§»åããŸãã 次ã«
ãããŠã¹ã®å·Šãã¿ã³ãæŒããªãã StaticMeshã
DefaultSceneRootã« ãã©ãã°ã
ãŸã ã
StaticMeshãæ°ããã«ãŒãã³ã³ããŒãã³ãã«ããã«
ã¯ãããŠã¹ã®
å·Šãã¿ã³ã
æŸããŸã ã
è¡çªãæ©èœãå§ããã«ã¯ããã1ã€ã®ã¢ã¯ã·ã§ã³ãå®è¡ããå¿
èŠããããŸãã ã€ãã³ãã°ã©ãã«åãæ¿ããŠã
AddActorLocalOffsetããŒãã«ç§»åããŸãã
Sweepå
¥åãèŠã€ãã
ãã§ãã¯ããã¯ã¹ã å·Šã¯ãªãã¯ããŠå€ã
trueã«å€æŽã
ãŸã ã
AddActorLocalOffsetã¯ãã¢ã¯ã¿ãŒãæ°ããå Žæã«ãã¬ããŒãããããšãçŽæããŸãã
Sweepã¯ãã¢ã¯ã¿ãŒãå€ãå Žæãšæ°ããå Žæã®éã«ãããã¹ãŠã®ãã®ã«çŽé¢ããããšãä¿èšŒããŸãã
ã¡ã€ã³ãšãã£ã¿ãŒã«ç§»åãã[
åç ]ãã¯ãªãã¯ããŸãã ããã§ããã¥ãŒãã¯ã¬ãã«ãšã®è¡çªã«å¿çããŸãïŒ
æåŸã«äœæããã®ã¯ããã¬ã€ã€ãŒã®ãã£ã©ã¯ã¿ãŒãšæ¥è§Šãããšæ¶ãã
ã¢ã€ãã ã§ãã
ã¢ã€ãã äœæ
äžè¬çã«ãã¢ã€ãã ã¯ãã¬ã€ã€ãŒãåéãããªããžã§ã¯ãã§ãã
BP_Bananaãã¢ã€ãã ãšããŠäœ¿çšããŸãã
ãã¥ãŒããšãªããžã§ã¯ãã®æ¥è§Šãèªèããã«ã¯ãè¡çªã«ãã£ãŠããªã¬ãŒãããã€ãã³ãã®ããŒããå¿
èŠã§ãã ãã®ãããªã€ãã³ããçæããã«ã¯ã
è¡çªåå¿ã䜿çšã§ããŸãã
è¡çªåå¿ã¯ãã¢ã¯ã¿ãŒãä»ã®ã¢ã¯ã¿ãŒãšã®è¡çªã«ã©ã®ããã«åå¿ãããã決å®ããŸãã è¡çªåå¿ã«ã¯ã
ç¡èŠ ã
éè€ã ãããã¯ã® 3ã€ã®ã¿ã€ãããããŸãã çžäºäœçšã®æ¹æ³ã¯æ¬¡ã®ãšããã§ãã
ããã§ã¯ãªãŒããŒã©ãããšãããã¯ã®äž¡æ¹ã䜿çšã§ããŸããããã®ãã¥ãŒããªã¢ã«ã§ã¯ãªãŒããŒã©ããã®ã¿ã䜿çšããŸãã
競ååå¿ã¿ã¹ã¯
ã²ãŒã ãéããŠ
BP_Bananaãéã
ãŸã ã
StaticMeshã³ã³ããŒãã³ããéžæãã詳现ããã«ã«ç§»åããŸãã
è¡çªåå¿ã¯
è¡çªã»ã¯ã·ã§ã³ã§å®çŸ©ãããŸãã
ã芧ã®ãšãããã»ãšãã©ã®ãã©ã¡ãŒã¿ãŒã¯éã¢ã¯ãã£ãã§ãã ããããå€æŽå¯èœã«ããã«ã¯ã
è¡çªããªã»ããã®æšªã«ãã
ããããããŠã³ãªã¹ãã ã¯ãªãã¯ã
ãŸã ã ãªã¹ãããã
ã«ã¹ã¿ã ããéžæããŸãã
次ã«ãã¢ã€ãã ãšãã¥ãŒãã®è¡çªã«å¯Ÿããåå¿ã瀺ãå¿
èŠããããŸãã
ã³ã³ããŒãã³ãã«ã¯
object typeãšããå±æ§ããããŸãã ãªããžã§ã¯ãã¿ã€ãã¯ãåæ§ã®ã¢ã¯ã¿ãŒãã°ã«ãŒãåãã䟿å©ãªæ¹æ³ã§ãã ãªããžã§ã¯ãã¿ã€ãã®è©³çŽ°ã«ã€ããŠã¯ã
ãã¡ããã芧ãã ãã ã
ãã¥ãŒãã®ã¿ã€ãã¯
WorldDynamicãªã®ã§ ããã®ã¿ã€ãã®è¡çªã«å¯Ÿããåå¿ãå€æŽããå¿
èŠããããŸãã
Collision Responsesã»ã¯ã·ã§ã³ã§ã
WorldDynamic collisionsãžã®å¿çã
Overlapã«å€æŽããŸãã ããã¯ã
WorldDynamic ã®å³åŽã«ãã
äžå€®ã®ãã§ãã¯ããã¯ã¹ã ã¯ãªãã¯ããŠå®è¡ã§ããŸãã
è¡çªåŠç
è¡çªãåŠçããã«ã¯ã
ãªãŒããŒã¬ã€ã€ãã³ãã䜿çšããå¿
èŠããããŸãã ã³ã³ããŒãã³ãããã«ã«ç§»åãã
StaticMeshã
å³ã¯ãªãã¯ã
ãŸã ã ã³ã³ããã¹ãã¡ãã¥ãŒã§ã[
ã€ãã³ãã®è¿œå ]
\ [
OnComponentBeginOverlapã®è¿œå ]ãéžæããŸãã
ããã§ã
OnComponentBeginOverlapïŒStaticMeshïŒããŒããã€ãã³ãã°ã©ãã«è¿œå ããŸãã
æåŸã«ã
DestroyActorããŒããäœæããããã
OnComponentBeginOverlapïŒStaticMeshïŒããŒãã«æ¥ç¶ã
ãŸã ã ååã瀺ãããã«ãã²ãŒã ããã¿ãŒã²ããã¢ã¯ã¿ãŒãåé€ããŸãã ãã ããã¿ãŒã²ããã¢ã¯ã¿ãŒããªããããã¿ãŒã²ããã¢ã¯ã¿ãŒãç Žå£ããŸãã
ã¢ã€ãã ã®é
眮
ãã«ãŒããªã³ããšãã£ã¿ãŒãéããŠããã«ãŒ
ããªã³ããã©ã«ããŒã«ç§»åããŸãã
å·ŠããŠã¹ãã¿ã³ãæŒãããŸãŸ BP_Bananaããã¥ãŒ
ããŒãã«
ãã©ãã° ã㊠ããããã®
é
眮ãéå§
ã ãŸã ã
[
åç]ãã¯ãªãã¯ããŠããããã®åéãéå§ããŸãã
次ã¯ã©ãã«è¡ããŸããïŒ
å®æãããããžã§ã¯ãã¯
ããããããŠã³ããŒãã§ã
ãŸã ã
Unreal Engineã®ã¹ãã·ã£ãªã¹ãã«ãªãããã®å¥ã®ã¹ããããèžã¿åºããŸããã
ãã¬ãŒãã³ã°ãç¶ãããå Žå
ã¯ãã·ãªãŒãºã®æ¬¡ã®æçš¿ããèªã¿ãã ãããUnrealEngineã®ãããªã¢ã«ã詳ããèŠãŠãããŸãã