1. ã¯ããã«
ååã®èšäºãã²ãŒã ãšã³ãžã³ãšã¯äœãïŒæ¯èŒãããã§ã¯ãUnityã»Unreal Engineã»Godotãªã©ã代衚çãªãšã³ãžã³ã®ç¹åŸŽãæ¯èŒããŸããããã ãæ¯èŒããŠãããã¡ã«äžã€çåãæµ®ãã³ãŸããããããããã²ãŒã ãšã³ãžã³ã¯ãå éšã§ã©ãããä»çµã¿ã§ã²ãŒã ãåãããŠããã®ãããšããããšã§ãã
æ®æ®µäœ¿ã£ãŠãããšãã£ã¿ã¯ãã³ãŒããæžãéå ·ã§ã¯ãã£ãŠããããèªäœãããã°ã©ã ãå®è¡ããä»çµã¿ã¯æã£ãŠããŸãããäžæ¹ã§ã²ãŒã ãšã³ãžã³ã¯ãæžããã³ãŒããå®éã«ç»é¢äžã§åããä»çµã¿ãã®ãã®ãå éšã«æã£ãŠããŸããä»åã¯ããã®äžèº«ãåè§£ããŠæŽçããŠã¿ãŸãã
2. ãã®èšäºã¯ãããªæ¹ã«ãããã
- ååã®èšäºãã²ãŒã ãšã³ãžã³ãšã¯äœãïŒæ¯èŒããããèªãã§ããšã³ãžã³ã®äžèº«ãæ°ã«ãªã£ãæ¹
- ã²ãŒã ãšã³ãžã³ããäœãããŠãããŠããã®ããããå éšæ§é ã®ã¬ãã«ã§ç¥ãããæ¹
- ãã²ãŒã ã«ãŒãããã¬ã³ããªã³ã°ããç©çãšã³ãžã³ããšãã£ãèšèãèããããšã¯ããããããããã®åœ¹å²ãæŽçã§ããŠããªãæ¹
- æ®æ®µã®IDEãšãã²ãŒã ãšã³ãžã³ã®éããæ°ã«ãªã£ãŠããæ¹
3. å 容
å¿èéšã«ãããã²ãŒã ã«ãŒãã
ã²ãŒã ãšã³ãžã³ã®äžæ žã«ããã®ããã²ãŒã ã«ãŒããšåŒã°ããä»çµã¿ã§ããã·ã³ãã«ãª2Dã²ãŒã ããå€§èŠæš¡ãªãªãŒãã³ã¯ãŒã«ãRPGãŸã§ããã¹ãŠåãåºæ¬æ§é ã®äžã§åããŠããŸãããå ¥åãåãåãâç¶æ ãæŽæ°ããâç»é¢ã«æç»ããããšããäžé£ã®åŠçãã1ç§éã«äœååãç¹°ãè¿ãããšããæ§é ã§ãã
ãã®ã«ãŒãã1ç§éã«ç¹°ãè¿ãããåæ°ããããããããã¬ãŒã ã¬ãŒãïŒfpsïŒãã§ãã60fpsãªãã1ç§éã«ãã®äžé£ã®åŠçã60åç¹°ãè¿ããŠããããšã«ãªããŸãã
ããã§äžã€åé¡ããããŸãããæŽæ°ãã®åŠçããæç»ãšãŸã£ããåãé »åºŠã»åãééã§è¡ã£ãŠããŸããšãåäœãããã·ã³ã®æ§èœã«ãã£ãŠç©çæŒç®ã®çµæãå€ãã£ãŠããŸããŸãã髿§èœãªPCã§ã¯ç©ãéãèœã¡ãäœã¹ããã¯ãªç«¯æ«ã§ã¯åãç©ããã£ããèœã¡ãããšããäžå ·åãèµ·ããã®ã§ãããã®åé¡ãé¿ãããããå€ãã®ãšã³ãžã³ã§ã¯ãç©çæŒç®ãªã©ã®ããžãã¯ã¯ã決ãŸã£ãééïŒåºå®ã¿ã€ã ã¹ãããïŒã§å¿ ãäžå®åæ°å®è¡ããç»é¢ã®æç»ã¯ããŒããŠã§ã¢ãèš±ãéãã§ããã ãæ»ããã«è¡ãããšããã2ã€ã®ç°ãªãé床ãçµã¿åãããèšèšãæ¡çšããŠããŸãã
åãšã³ãžã³ã§ã®å®è£ äŸ
ãã®ãåºå®ã¿ã€ã ã¹ãããïŒå¯å€ãã¬ãŒã ã¬ãŒãã®æç»ããšããèãæ¹ã¯ãUnityã»Unrealã»Godotã®ãããã«ãå ±éããèšèšã§ãããã ããåŒã³æ¹ãå ·äœçãªå®è£ ã¯å°ããã€ç°ãªããŸãã
-
UnityïŒ
Updateãšãã颿°ããã¬ãŒã ããšã«åŒã°ããäžæ¹ãç©çæŒç®ãªã©ã¯FixedUpdateãšããå¥ã®é¢æ°ã§åŠçãããŸããæ¢å®å€ã§ã¯0.02ç§ïŒ1ç§éã«50åïŒééã§å®è¡ããããã¬ãŒã ã¬ãŒããäœããšãã¯1ãã¬ãŒã ã®éã«FixedUpdateãè€æ°åãŸãšããŠåŒã°ããããšããããŸãã -
GodotïŒUnityã®
Update/FixedUpdateã«ããããã®ãã_processïŒæ¯ãã¬ãŒã ïŒãš_physics_processïŒåºå®ééïŒãšãã2ã€ã®é¢æ°ã«åãããŠããŸããèãæ¹ã¯Unityãšã»ãŒåãã§ãã -
Unreal EngineïŒUEïŒïŒUnityã»Godotã®ããã«ãå°çšã®é¢æ°ãæžãã°æžãã圢ã«ã¯ãªã£ãŠãããã
Project Settings > Physicsã«ããMax Physics Delta TimeïŒç©çã·ãã¥ã¬ãŒã·ã§ã³ã1åã«é²ããæå€§ã®æéïŒããMax SubstepsïŒ1ãã¬ãŒã ãæå€§äœåã«åå²ããŠèšç®ãããïŒãšãã£ãèšå®å€ãéããŠãéçºè èªèº«ãã©ããŸã§çްããå¶åŸ¡ããããéžã¶ä»çµã¿ã«ãªã£ãŠããŸãã
åããåºå®ééã§èšç®ããããšããç®çã«å¯ŸããŠãUnityãšGodotã¯ã颿°ãåããããšã§ãéçºè ã«æèãããã«æžãŸãããæ¹åããUnreal Engineã¯ãèšå®ãå ¬éããããšã§ãéçºè ã«å§ãããæ¹åãéžãã§ããããšããã®ãå¯Ÿç §çã§è峿·±ãç¹ã§ããããã©ã«ãã®ãŸãŸã§ãåããŸãããUEã§ã¯å¿ èŠã«å¿ããŠæ°å€ã調æŽããåæã®äœãã«ãªã£ãŠããŸãã
åŒã³æ¹ã¯éã£ãŠãããããžãã¯ã¯äžå®ééã§ãæç»ã¯ã§ããéãæ»ããã«ããšããèšèšææ³ãã®ãã®ã¯ãäž»èŠãªãšã³ãžã³ã§ã»ãŒå ±éããŠããŸãã
ãèŠããããã«ãããã¬ã³ããªã³ã°ãšã³ãžã³
ã²ãŒã ã«ãŒãã®äžã§ãå®éã«ç»é¢ã«çµµãæã圹å²ãæ ãã®ããã¬ã³ããªã³ã°ãšã³ãžã³ïŒæç»ãšã³ãžã³ïŒã§ãã3Dã¢ãã«ã®é ç¹åº§æšããã¯ã¹ãã£ãšãã£ãæ å ±ãããšã«ãã©ã®ç©äœãèŠããŠããŠãã©ã®ç©äœãé ããŠããããèšç®ããæçµçã«1æã®ç»åïŒ1ãã¬ãŒã åã®æ åïŒãšããŠãŸãšãäžããŸãã
ãã®åŠçã¯ããã©ã®ãªããžã§ã¯ããç»é¢ã«æ ãããçµã蟌ããã圱ãèšç®ãããã奥ã«ããç©äœããæåã®ç©äœã®é ã«æç»ããããéæãªãªããžã§ã¯ããåŠçããããæåŸã«ç»é¢å šäœã®ãšãã§ã¯ãããããããšãã£ããããã€ãã®æ®µéãçµãŠè¡ãããŸãããã®äžé£ã®æµãã¯ãã¬ã³ããªã³ã°ãã€ãã©ã€ã³ããšåŒã°ãããšã³ãžã³ããšã«æé©åã®æ¹æ³ãç°ãªããŸããååã®èšäºã§è§ŠããUnreal Engineã®ãLumenãããNaniteããããã®ã¬ã³ããªã³ã°ãã€ãã©ã€ã³ãããé«ç²Ÿçްã»é«å¹çã«ããããã®æè¡ã§ãã
ãåããèšç®ãããç©çãšã³ãžã³
ãã£ã©ã¯ã¿ãŒããžã£ã³ãããã°éåã§èœã¡ãŠãããç©å士ãã¶ã€ããã°è·³ãè¿ãããããããçŸå®äžçã®ç©çæ³åã«è¿ãåããèšç®ããã®ãç©çãšã³ãžã³ã§ããéåã»æ©æŠã»è¡çªå€å®ãªã©ã®ã«ãŒã«ã«åºã¥ããŠããªããžã§ã¯ããæ¬¡ã®ç¬éã«ã©ãåãã¹ãããèšç®ããŸãã
ãã®ãšãè£åŽã§è¡ãããŠããã®ããè¡çªå€å®ïŒã³ãªãžã§ã³æ€åºïŒãã§ãããã¹ãŠã®ãªããžã§ã¯ãã®æ£ç¢ºãªåœ¢ç¶åå£«ãæ¯åã¶ã€ããŠå€å®ãããšèšç®ãéããªãããããããå€ãã®ãšã³ãžã³ã§ã¯ããŸãçãç®±ãªã©åçŽãªåœ¢ã§ã倧ãŸãã«è¿ãã«ãããã©ããããçµã蟌ã¿ãããã§åããŠè©³çްãªåœ¢ç¶å士ã®å€å®ãè¡ãããšãã2段éã®åŠçãããŠããŸãããã£ã©ã¯ã¿ãŒã®åœããå€å®ããèŠãç®ããå°ãã ãå°ããã»å€§ããç®±ãåã§è¡šçŸãããŠããããšãå€ãã®ã¯ããã®èšç®è² è·ãæããããã®å·¥å€«ã§ãã
çŽ æããŸãšãããã¢ã»ãã管çã
ç»åã3Dã¢ãã«ãé³å£°ãã¢ãã¡ãŒã·ã§ã³ãšãã£ãçŽ æïŒã¢ã»ããïŒãããããžã§ã¯ãã®äžã§èªã¿èŸŒã¿ã»ç®¡çããä»çµã¿ããã²ãŒã ãšã³ãžã³ã®éèŠãªæ©èœã§ããçŽ æãã©ã®ã¿ã€ãã³ã°ã§ã¡ã¢ãªã«èªã¿èŸŒã¿ããã€è§£æŸããããšãã管çãäžååã ãšãã²ãŒã ã®åäœãéããªã£ãããã¡ã¢ãªäžè¶³ã«ã€ãªãã£ããããããšããããŸãã
IDEãšã®éãããæ¹ããŠæŽçãã
åé ã®çåã«æ»ããŸããEclipseãVSCodeã¯ãã³ãŒããæžããä¿åããå®è¡ãæç€ºããããã®éå ·ã§ããå®è¡ãã®ãã®ã¯å¥ã®ã©ã³ã¿ã€ã ã«å§ããŸãã
äžæ¹ã§ã²ãŒã ãšã³ãžã³ã¯ãã³ãŒããæžããšãã£ã¿æ©èœã«å ããŠãã²ãŒã ã«ãŒãã»ã¬ã³ããªã³ã°ãšã³ãžã³ã»ç©çãšã³ãžã³ã»ã¢ã»ãã管çãšãããã²ãŒã ãå®éã«åããããã®ä»çµã¿ãã®ãã®ãå
éšã«æ±ããŠããŸãã æžããã³ãŒãã¯ãUpdateã_processãšãã£ã圢ã§ããããã®ä»çµã¿ã®äžã«ãæ¯ãã¬ãŒã åŒã³åºãããåŠçããšããŠçµã¿èŸŒãŸãããšã³ãžã³ãçšæããåå°ã®äžã§å®è¡ãããŸããIDEããç·šéããçµæããå®è¡ããä»çµã¿ã®å€éšã«æãæž¡ããéå
·ã ãšããã°ãã²ãŒã ãšã³ãžã³ã¯ãå®è¡ããä»çµã¿ãã®ãã®ãå
åŽã«æ±ã蟌ãã§ãããéå
·ã ããšããéãã§ãã
4. ãŸãšã
ã²ãŒã ãšã³ãžã³ã®äžèº«ã¯ãã²ãŒã ã«ãŒããäžå¿ã«ãã¬ã³ããªã³ã°ãšã³ãžã³ã»ç©çãšã³ãžã³ã»ã¢ã»ãã管çãšãã£ãä»çµã¿ãçµã¿åããã£ãŠæãç«ã£ãŠããŸããfpsãšããèšèèªäœã¯ç¥ã£ãŠããŸãããããã®è£ã§ãããžãã¯ã¯åºå®ééãæç»ã¯å¯å€é床ããšãã2段æ§ãã®ä»çµã¿ãåããŠããããšãŸã§ã¯ãä»å調ã¹ãŠã¿ããŸã§æèããŠããŸããã§ããã
ç¹ã«å°è±¡çã ã£ãã®ã¯ãUnityã®FixedUpdateãšGodotã®_physics_processããååããéãã©é©ãã»ã©äŒŒãèšèšææ³ãæ¡çšããŠããããšã§ããä»åŸãã©ããã®ãšã³ãžã³ãè§Šããšãã¯ã衚é¢çãªæ©èœã ãã§ãªããäžèº«ã®ä»çµã¿ãæèããªããåãããŠã¿ãããšæããŸãã