ç§ã¯å€ããã©ãŠã¶ã²ãŒã ã®æ°ããããŒãžã§ã³ããªãªãŒã¹ããããšã«ããŸãããããã¯ãæ°å¹ŽåãããœãŒã·ã£ã«ãããã¯ãŒã¯äžã®ã¢ããªã±ãŒã·ã§ã³ãšããŠæåããŠããŸãã ä»åã¯ãWindowsçšã¢ããªã±ãŒã·ã§ã³ïŒ7-8-10ïŒãšããŠãèšèšããããŸããŸãªã¹ãã¢ã«é
眮ããŸããã ãã¡ãããå°æ¥çã«ã¯ãMacOSããã³Linuxçšã®ã¢ã»ã³ããªãäœæã§ããŸãã
ã²ãŒã ã³ãŒãã¯å®å
šã«çŽç²ãªjavascriptã§èšè¿°ãããŠããŸãã 3Dã°ã©ãã£ãã¯ã衚瀺ããã«ã¯ãthree.jsã©ã€ãã©ãªãã¹ã¯ãªãããšWebGLéã®ãªã³ã¯ãšããŠäœ¿çšããŸãã ãã ããããã¯å€ããã©ãŠã¶ããŒãžã§ã³ã®å Žåã§ãã ç§ã«ãšã£ãŠãã®ãããžã§ã¯ãã§æãéèŠãªããšã¯ãã²ãŒã ãšäžŠè¡ããŠãã·ãŒã³ãªããžã§ã¯ããã¢ãã¡ãŒã·ã§ã³ããã®ä»ã®å€ãã®æ©èœã䜿ããããããããã®ããŒã«ã§three.jsãè£å®ããããã«èšèšãããç¬èªã®ã©ã€ãã©ãªãè¿œå ããçç±ã§ããã ããããç§ã¯åœŒå¥³ãé·ãéèŠæšãŠãŸããã 圌女ã«æ»ã£ãŠããæéã§ãã
ç§ã®ã©ã€ãã©ãªã«ã¯ãã·ãŒã³ã®ãªããžã§ã¯ãã®è¿œå ãšåé€ããªããžã§ã¯ãã®åã
ã®éšåïŒã¡ãã·ã¥ïŒã®ããããã£ã®å€æŽã3Dãªããžã§ã¯ãã®ãã¬ãŒã ã«äŸåããªãã¢ãã¡ãŒã·ã§ã³ãå€ã®æ空ãã¯ã¹ãã£ãåããã¹ã«ã€ã·ã§ãŒããŒãªã©ã®äŸ¿å©ãªããŒã«ãå«ãŸããŠããŸãã ãããã®ããã€ãã«ã€ããŠèª¬æããŸãã 空ã«é¢ããŠã¯ãããã€ãã®å
¥åãã©ã¡ãŒã¿ãŒãåãåããã·ã§ãŒããŒãåæåããå¿
èŠã«å¿ããŠã¯ã©ãŠããã¯ã¹ãã£ãããŒãããæå®ãããå埩ã§ç©ºã®æŽæ°ãéå§ããåäžã®é¢æ°ã§äœæãå®è£
ããŸããã
ãã ãããã¹ãŠãå°ãè€éã§ã-å®æçã«ããã ããã£ãã«åŒã³åºãããªãé¢æ°ã«ã€ããŠã¯ãå¥ã®æ§æãå®éã«åäœããŸããsetIntervalïŒïŒã䜿çšãããšãç°ãªãééã§ã€ãã³ããã¹ããŒã§ããŸãããªã¹ãäžã®ã€ãã³ãã«å¿
èŠãªæéã ããã§ã空ã®æŽæ°ééãã¹ããŒããããšãã§ããŸãã ãããã3Dã²ãŒã ãªããžã§ã¯ãã®åãã¯ãrequestAnimationFrameïŒïŒã«ãã£ãŠæ¢ã«ã¹ã ãŒãºã«å®è£
ãããŠããŸã...
ããã§ãç§ãã¡ã¯ç©ºã«ã€ããŠè©±ããŠããã®ã§ã空ããå§ããŸãã
空
倧空ãã·ãŒã³ã«è¿œå ããæ¹æ³ã¯æ¬¡ã®ãšããã§ãã
ãŸããæšæºã©ã€ãthree.jsãæ倧ïŒåæïŒèŒåºŠå€ã§ã·ãŒã³ã«è¿œå ããå¿
èŠããããŸãã ã°ããŒãã«ã¹ããŒã¹ãæ··ä¹±ãããªãããã«ããªããžã§ã¯ããã©ã€ãããã®ä»ã®å±æ§ãå«ãã·ãŒã³å
šäœãapsceneåå空éã«ä¿åãããŸãã
ãã®åŸãç§ã®é¢æ°ã®1ã€ãä»ããŠãã·ã§ãŒããŒããã¯ã¹ãã£ïŒãã©ãã¯ãžã£ãã¯ãªã©ïŒã§ç©ºã®ã¢ãã¡ãŒã·ã§ã³ãå®è¡ã§ããŸãã
m3d.graph.skydom.initWorld(
ãã®çµæãåçãªç©ºãã·ãŒã³ã«è¡šç€ºããã倪éœã®é«ããæ»ããã«å€åããããã«å¿ããŠæå»ãå€åããŸãã
ã¹ããŒãžã§ãã¹ãŠã®ã¿ã€ãã®ç
§æã䜿çšããå¿
èŠã¯ãããŸããã ãŸããæå»ã«å¿ããŠãã¹ãŠã®ãã©ã¡ãŒã¿ãŒãå€æŽããå¿
èŠã¯ãããŸããã ãããããã®æããã§éãã§ããæŒãšå€ã®å€åãããªããªã¢ã«ã«åçŸã§ããŸãã ãã©ã¡ãŒã¿ãŒã«ã¯å¥œããªååãä»ããããšãã§ããŸããäž»ãªããšã¯ãthree.jsã§æå®ãããŠããããã«ããã©ã¡ãŒã¿ãŒå
ã®ãªããžã§ã¯ãã®ããŒã芳å¯ããããšã§ãã
ã©ã®ããã«èŠãããããã¢ã·ãŒã³ãããããªãèŠãããšãã§ããŸãïŒ
ããã¯å¥ã®ã²ãŒã ã§ãã ãã ããã®å°å¹³ç·ã«ã¯ããŸããŸãªãªããžã§ã¯ããæ£ãã°ã£ãŠããªãããããã®ã¹ã¯ãªããã®äœæ¥ãæãã¯ã£ãããšèŠããŸãã ããããã¹ããŒãªãŒãè°è«ãããŠããã²ãŒã ã§ã¯ããŸã£ããåãã¢ãããŒãã䜿çšãããŸãã ããã§ã®æéã®çµéã®é«éã¯ããã¢ã³ã¹ãã¬ãŒã·ã§ã³ã®ç®çã®ããã«ã®ã¿èšå®ãããŠããããããã¡ããããã£ãããšæµããŸããå埩ã®åãã¹ãããã§å€§ç©ºãæŽæ°ãããŸãã ã¡ãªã¿ã«ããã®ãã¢ã§ã¯ã倪éœã®é«ãã«å¿ããŠå¯å€ãã©ã¡ãŒã¿ãŒãåãããŠã©ãŒã¿ãŒã·ã§ãŒããŒãå«ãŸããŠããŸã...ãããããŸã å®æããŠããŸããã
æ§èœ
ããã¯ãã¹ãŠãéã«å¯ŸããèŠæ±ãã»ãšãã©ãããŸããã Chromeãã©ãŠã¶ã§åäœããXeon E5440ãLGA775ïŒããã³4ã®ã¬ãã€ãã®RAMïŒã§20ïŒ
èªã¿èŸŒã¿ãGT730ã°ã©ãã£ãã¯ã¹ã«ãŒãã®ã³ã¢ã45ïŒ
èªã¿èŸŒã¿ãŸãã ããããããã¯çŽç²ã«æ°Žã®ã¢ãã¡ãŒã·ã§ã³ã«ãããã®ã§ãã æ°Žã¯ãªããéœåžã¯ããã²ãŒã ã«ã€ããŠè©±ããšãããã¯ïŒ
ãã®åŸãè»ãè¡ãåãåã-ããŒã»ã³ã45ïŒ
ããããªã«ãŒã50ïŒ
ã ååãšããŠãããã€ãã®fpsãããŒããŠã³ïŒæ倧çŽ30ãã¬ãŒã /ç§ïŒã§ãPentium4 3GHzïŒ1Gb RAMïŒããã³Intel Atom 1.3GHzïŒ2Gb RAMïŒã®ã¿ãã¬ããäžã§ãéåžžã«ããŸãæ©èœããŸãã
ãã®ããŒããŠã§ã¢ã¯ãã¹ãŠéåžžã«è匱ã§ãããWebGLãHTML5äžã®ä»ã®åæ§ã®ã²ãŒã ã2Dã§ãããã²ãŒã ããã¬ã€ããããšãã§ããªããªããŸã§ãããã¯ç§ãã²ã©ãé
ãããŸãã 圌ããèšãããã«ãå¿
èŠã«å¿ããŠèªåã§ã²ãŒã ãæžããŠãã¬ã€ããŠãã ããã
ã·ãŒã³
three.jsã®3Dã·ãŒã³ã¯ã·ãŒã³ãªããžã§ã¯ãã§ããããã®åé
åã¯å®éãã·ãŒã³ã«ããŒãããããã¹ãŠã®3Dã¢ãã«ã§ãã åã¢ãã«ã®ããŒãããŒããŒã³ãŒã«ãç»é²ããªãããã«ãã²ãŒã ã·ãŒã³å
šäœãç¹å®ã®æ§æã®åœ¢åŒã§èšå®ããã1ã€ã®å€§ããªé£æ³é
ålocdïŒ{}ïŒäœçœ®ããŒã¿ãªã©ïŒã«ãã¹ãŠã®èšå®ïŒã©ã€ããããªããŒãããããã¯ã¹ãã£ã®ãã¹ïŒã€ã³ã¿ãŒãã§ã€ã¹ã®ç»åãã¹ããŒãžã«ããŒãããå¿
èŠããããã¹ãŠã®ã¢ãã«ãžã®ãã¹ãªã©ã äžè¬çã«ãããã¯ã·ãŒã³ã®å®å
šãªæ§æã§ãã ã²ãŒã ã®jsãã¡ã€ã«ã«äžåºŠèšå®ãããã·ãŒã³ããŒããŒã«äŸçµŠãããŸãã
ãããŠããã®locdïŒ{}ãªããžã§ã¯ãã«ã¯ãç¹ã«ãããŒãããå¿
èŠãããåã
ã®3Dã¢ãã«ãžã®ãã¹ãå«ãŸããŠããŸãã ãŒããã¹ã¯å
±éãã¹ã§ããã次ã«åãªããžã§ã¯ãã®çžå¯Ÿãã¹ã§ãã
['path/myObj', scale, y, x,z, r*Math.PI, 1, '', '', '', 1, ['','','',''], 'scene']
ãã¹ãŠã®ã¢ãã«ã¯3Dãšãã£ã¿ãŒããjson圢åŒã«ãšã¯ã¹ããŒããããŸããã€ãŸãããããã«ã¯path / myObj.jsonã®ãããªãã¹ããããŸãã 次ã«ãã¹ã±ãŒã«ïŒã²ãŒã ã«é©ããªãã¹ã±ãŒã«ã§ãšãã£ã¿ãŒãä¿åã§ããããïŒããªããžã§ã¯ãã®é«ãïŒyïŒã®äœçœ®ã軞ïŒxïŒããã³ïŒzïŒã«æ²¿ã£ãŠãã¢ãã«ã®å転è§åºŠÂ®ïŒyïŒãããã€ãã®ãªãã·ã§ã³ãã©ã¡ãŒã¿ãŒãã¢ãã«ãããŒãããã·ãŒã³ã®åå-ã¡ã€ã³ã·ãŒã³ïŒã·ãŒã³ïŒãŸãã¯ããã¯ã°ã©ãŠã³ãïŒã·ãŒã³bïŒã
ã¯ãããããåçŽãªåœ¢åŒã§ã¯ãªããé£æ³é
åã®åœ¢åŒã§å®è£
ããå¿
èŠããããŸããã ãã®ãããããã¥ã¡ã³ãããªããŠãããŸãã¯å°ãªããšããããã®ãã©ã¡ãŒã¿ãåãé¢æ°ã®çš®é¡ããªããŠãããã©ã¡ãŒã¿ã®é åºã¯ç解ã§ããŸãããç解ã§ããŸããã å°æ¥ããããã®è¡ãé£æ³é
åã«åäœæãããšæããŸãã ãããŸã§ã¯ã次ã®ããã«ãªããŸãã
landobj: [ ['gamePath/'], [ ['landscape/ground', 9.455, 0, 0,0, 0*Math.PI, 1, '', '', '', 1, ['','','',''], 'scene'], ['landscape/plants', 9.455, 0, 0,0, 0*Math.PI,1, '', '', '', 1, ['','','',''], 'scene'], ['landscape/buildings/house01', 2, 0, -420,420, -0.75*Math.PI, 1, '', '', '', 1, ['','','',''], 'scene'], ... ] ],
ãããã®ã¢ãã«ã¯ã¹ããŒãžã«ããŒããããããã§æå®ããã空éã®åº§æšã«é
眮ãããŸãã ååãšããŠããã¹ãŠã®ã¢ãã«ã¯åäžã®ãªããžã§ã¯ããšããŠããŒãã§ããŸããã€ãŸããã²ãŒã ã·ãŒã³å
šäœãšããŠãšãã£ã¿ãŒãããšã¯ã¹ããŒããã座æšïŒ0; 0; 0ïŒã«ããŒãã§ããŸãã 次ã«ã1è¡ã ãã衚瀺ãããŸããlandscape/ ground-ground.jsonããããŸã-ããã¯ã²ãŒã ã®äžçã®äž»èŠéšåã§ãã ãã ãããã®å Žåãæåã«ãã©ãŠã¶ã³ã³ãœãŒã«ãèŠãŠããã®å·šå€§ãªå°é¢ã®åãã©ãã§ããããèŠããŠããå¿
èŠããããããã·ãŒã³ã®åã
ã®ãªããžã§ã¯ããæäœããããšã¯å°é£ã§ãã ãããŠãçªå·ã§é£çµ¡ããŸãã ãããã£ãŠãããŒãã³ã°ã²ãŒã ã¢ãã«ã«ã¯åå¥ã®ãªããžã§ã¯ããããŒãããã®ãæé©ã§ãã 次ã«ãé£æ³é
åããååã§ã¢ã¯ã»ã¹ã§ããŸããé£æ³é
åã¯ããã®ç®çã®ããã«ç¹å¥ã«èªåçã«äœæãããŸãã
ã²ãŒã ã®å®å
šãªæ§æã¯ãããšãã°æ¬¡ã®ããã«ãªããŸãã
locd:{
ã¯ãããããã®ãã¹ãŠã®ãµãé
åãé£æ³é
åã«åäœæããããšããå§ãããŸããããããªããšããµãé
åå
ã®ãã©ã¡ãŒã¿ãŒã®é åºãæ確ã«ãªããŸãã...
3Dã¢ãã«
å¥ã®èå³æ·±ãããšã ã¢ãã«ã®èªã¿èŸŒã¿ã ç§ã®ã©ã€ãã©ãªã¯ããã¯ã¹ãã£ä»ãã®3Dã¢ãã«ãåãå
¥ããååã«å¿ããŠããã€ãã®ãã©ã¡ãŒã¿ãŒãåã
ã®èŠçŽ ïŒã¡ãã·ã¥ïŒã«èªåçã«èšå®ããŸãã å®éãããšãã°ã¢ãã«ã®å Žåã圱ãèœãšãããã«èšå®ãããŠããå Žåããã®ã³ã³ããžã·ã§ã³ã«å«ãŸããåã¡ãã·ã¥ã«ãã£ãŠãã£ã¹ããããŸãã ã¢ãã«å
šäœãå®å
šã«åœ±ãèœãšããããããã©ãŒãã³ã¹ã«åŒ·ã圱é¿ããä»ã®ããããã£ãååŸãããããå¿
èŠã¯å¿
ããããããŸããã ãããã£ãŠãåã¡ãã·ã¥ãåå¥ã«èæ
®ããå¿
èŠãããããšã瀺ãç¹å®ã®ãã©ã°ããªã³ã«ãããšãããŒãæã«ããã®ã¡ãã·ã¥ãŸãã¯ãã®ããããã£ãæã€ã¡ãã·ã¥ãšæããªãã¡ãã·ã¥ã決å®ã§ããŸãã ããšãã°ã家ã®å¹³ããªæ°Žå¹³ãªå±æ ¹ãã倧ããªèæ¯ã«å¯ŸããŠã¢ãã«ã®å°ããªç¡é¢ä¿ãªçŽ°éšã®å€ãã«ãã£ãŠåœ±ãèœãšãå¿
èŠã¯ãŸã£ãããããŸããã ããã§ãããã¬ãŒã€ãŒã¯ãããã®åœ±ãèŠãããšãã§ããããããªããã»ããµã®é»åããããã®åœ±ãåŠçããããã«äœ¿çšãããŸãã
ãããè¡ãã«ã¯ãã°ã©ãã£ãã¯ãšãã£ã¿ãŒïŒBlenderãMaxãªã©ïŒã§ãç¹å®ã®ã«ãŒã«ã«åŸã£ãŠïŒãªããžã§ã¯ãåãã£ãŒã«ãã§ïŒã¡ãã·ã¥ã®ååãããã«æå®ã§ããŸãã ã¢ã³ããŒã¹ã³ã¢ïŒ_ïŒãå¿
èŠã§ãã æ¡ä»¶ä»ãå¶åŸ¡æåã¯å·ŠåŽã«é
眮ããå¿
èŠããããŸããããšãã°ãd-ããã«ãµã€ãïŒã¡ãã·ã¥ã¯åæ¹åãããã§ãªãå Žåã¯-çæ¹åïŒãcïŒãã£ã¹ãã·ã£ããŠïŒ-ã·ã£ããŠããã£ã¹ããrïŒã·ã£ããŠãåä¿¡ïŒ-ã·ã£ããŠãååŸããŸãã ã€ãŸããããšãã°ã家ã®ãã€ãã¡ãã·ã¥ã®ååã¯cr_tubeã«ãªããŸãã ä»ã®å€ãã®æåã䜿çšãããŸãã ããšãã°ããlãã¯ã³ã©ã€ããŒã§ããã€ãŸããcrl_wall01ãšããååã®å®¶ã®å£ã¯ããã¬ãŒã€ãŒãèªåèªèº«ãéãæããããšãã§ããã圱ãèœãšããŸãã å±æ ¹ããã¢ãã³ãã«ãªã©ã®ã³ã©ã€ããŒãäœæããå¿
èŠã¯ãªããããã«ãã£ãŠããã©ãŒãã³ã¹ãäœäžããŸãã æ¢ã«ç解ããŠããããã«ãã¢ãã«ãããŒããããšããç§ã®ã©ã€ãã©ãªã¯ã¡ãã·ã¥ã®ååã解æãããããã«ã·ãŒã³äžã®å¯Ÿå¿ããããããã£ãäžããŸãã ãã ãããã®ããã«ã¯ã3Dãšãã£ã¿ãŒããã¢ãã«ããšã¯ã¹ããŒãããåã«ããã¹ãŠã®ã¡ãã·ã¥ã«æ£ããååãä»ããå¿
èŠããããŸãã ããã«ãããããã©ãŒãã³ã¹ã倧å¹
ã«ç¯çŽãããŸãã
ãªããžã§ã¯ãå
ã®ã¡ãã·ã¥ã®ãã¹ãŠã®å¶åŸ¡ãã©ã°ïŒ
col_ ...ã¯ã³ã©ã€ããŒã§ãã ãã®ãããªã¡ãã·ã¥ã¯ãåçŽã«éæã§èŠããªãã³ã©ã€ããŒãšããŠè¡šç€ºãããŸãã ãšãã£ã¿ãŒã§ã¯ã圌ã¯äœã«ã§ãèŠããŸããããã®åœ¢ã ããéèŠã§ãã ããšãã°ããã¬ãŒã€ãŒããã®ã¢ãã«ïŒå»ºç©ã倧ããªç³ãªã©ïŒãééã§ããªãããã«ããå¿
èŠãããå Žåãã¢ãã«å
šäœãå¹³è¡å
é¢äœã«ããããšãã§ããŸãã
l_ ...ã¯è¡çªå¯èœãªãªããžã§ã¯ãã§ãã ã¡ãã·ã¥ã«ã³ã©ã€ããŒããããã£ãäžããã
i_ ...-亀差ç¹ã ã¡ãã·ã¥ã¯äº€å·®ãªã¹ãã«è¿œå ãããŸãããã®ãªã¹ãã䜿çšããŠãããšãã°ãã¯ãªãã¯ãããã€ãŸãã²ãŒã å
ã§åæ¹åæ§ãæäŸã§ããŸãã
j_ ...亀差ç¹ãã äžèšãšåããæ°ããããŒãžã§ã³ã®ã¿-ã²ãŒã å
ã®äº€å·®ç¹ãèŠã€ããããã®ã¢ã«ãŽãªãºã ãæ¹åããããªãœãŒã¹æ¶è²»ãå°ãªããªããŸããã
e_ ...-家ã®ãã¢ã®äº€å·®ç¹ïŒå
¥å£/åºå£ïŒã ä»ã®ãªããžã§ã¯ãã¡ãã·ã¥äžã®äº€å·®ãé€å€ããŸãã ä»ã®ãã¹ãŠã®ã€ã³ã¿ã©ã¯ãã£ããªèŠçŽ ãé€å€ããŠããã¢ã ããã€ã³ã¿ã©ã¯ãã£ãã«ããããšã家ã§å¿
èŠãªå Žåã«äœ¿çšãããŸãã æ³ååã§ãããªãã¯ãããšä»ã®ãã³ã®çšéãæãã€ãããšãã§ããŸãã
c_ ...-圱ãèœãšããŸãã ã¡ãã·ã¥ã¯åœ±ãèœãšããŸãã
r_ ...-圱ãåãåããŸãã ã¡ãã·ã¥ã¯ãããããæ圱ããä»ã®ãã¹ãŠã®ã¡ãã·ã¥ããã®åœ±ãåãå
¥ããŸãã
d_ ...-äž¡é¢ïŒäž¡é¢ïŒã äž¡åŽã«è¡šç€ºããããã¯ã¹ãã£ã¯äž¡åŽã«éããããŸãã
t_ ...-éæïŒéæïŒãthree.jsã§ãªããžã§ã¯ãå
šäœãalphatestã«èšå®ãããŠããå Žåã
u_ ...-ãªããžã§ã¯ãå
šäœãthree.jsã§alphatestãæå®ããŠããªãå Žåãåºå®å¯åºŠïŒ0.4ïŒã®éæïŒéæïŒã
g_ ...-ã¬ã©ã¹ã åºå®éæ床ãèšå®ãããŠããŸãïŒ0.2ïŒã
h_ ...-äžå¯èŠïŒé衚瀺ïŒã ãªããžã§ã¯ããã·ãŒã³ã«è¿œå ãããšãã«é衚瀺ã«ããå¿
èŠããããªããžã§ã¯ãã®éšåïŒã¡ãã·ã¥ïŒã é衚瀺ã®ãªã¹ãã«å
¥åãããŸããã
v_ ...衚瀺ãããŸãã ãhãã®ããŒã¯ãä»ãããªããžã§ã¯ããé€ããã¹ãŠã®ãªããžã§ã¯ãã¯ãã§ã«è¡šç€ºãããŠããŸããããã©ã°ãvãã䜿çšãããšãå¥ã®ãªã¹ãã«å
¥åãããããã«é衚瀺ãŸãã¯ä»ã®æäœãå¯èœã«ãªããŸãã
ãã®çµæãã¡ãã·ã¥ã®ååã¯æ¬¡ã®ããã«ãªããŸãïŒcrltj_box1ïŒãã£ã¹ããã·ã£ããŠãåãå
¥ãããã³ã©ã€ããŒãéæãã€ã³ã¿ã©ã¯ãã£ãïŒã ãããŠãåãã¢ãã«ã®äžéšãšããŠã®å¥ã®ã¡ãã·ã¥ïŒcr_box2ïŒãã£ã¹ãã®ã¿ãè¡ãã圱ãåããŸãïŒåœç¶ãå¶åŸ¡æåã¯ä»»æã®é åºã§èšå®ã§ããŸãã ãããã£ãŠããšãã£ã¿ãŒãããã²ãŒã å
ã®ãªããžã§ã¯ãã®äžéšã®å°æ¥ã®è¡šç€ºãå¶åŸ¡ããããããããããã®ããããã£ã®äžéšãå¶åŸ¡ããããåæã«èšç®èœåãç¯çŽãããã§ããŸãã
ã²ãŒã ã®æ¬è³ª
å®éãç©èªãæ£æ¹åœ¢ã®ãã£ãŒã«ãã®åšå²ãåãåããäŒæ¥ãè²·åãããšããã²ãŒã ã®æå³ã ãã£ãŒã«ãã¯3Dã¹ããªãŒãã®åœ¢ã§äœæãããŸãã ã²ãŒã ã®çµæžã¢ãã«ã¯ããã®çš®é¡ã®ãã®ãšã¯å€§ããç°ãªããŸãã ç§ã®ã²ãŒã ã§ã¯ã誰ããããžãã¹ãå§ãããšãããªãã®æåŸ
å©çã¯äžãããŸãã éã«ãäœããçºèŠãããšå¢å ããŸãã æçã®èšç®ã¯ãã¹ãŠãéå§ãã£ãŒã«ãã®çšå調æ»å®ã§è¡ãããŸãã ãŸããéè¡ããèè³ãåãããã蚌åžãååŒããããä»ã®å€ãã®ããšãè¡ãããšãã§ããŸãã å€ãããŒãžã§ã³ãšæ¯èŒããŠAIã®åäœãæ¹åããŸããã ã²ãŒã ã®ã»ãŒãã¹ãŠã®3Dã¢ãã«ãšãã¯ã¹ãã£ãæé©åããããã©ãŒãã³ã¹ãæé©åããŸããã ããå€ãã®èšå®ãè¡ããŸããã
ã¢ãã¡ãŒã·ã§ã³
ã²ãŒã ãªããžã§ã¯ãã®åããã¢ãã¡ãŒã·ã§ã³åããããã«ãæãåçŽãªãšã³ãžã³ã䜿çšãããŸããããã¯ãç¹å®ã®ãã¬ãŒã ã¬ãŒãïŒ60çªç®ã«å¶éãããŸãïŒã§ãç¹å®ã®æéééã®æ°å€ãã©ã¡ãŒã¿ãŒãå€æŽããäžéå€ããã³ãã©ãŒã«æž¡ããŸãã ãŸãããã³ãã©ãŒã§ã¯ãããšãã°ãã¢ãã«ã衚瀺ãããŸãã
ããšãã°ã 空éå
ã®ãªããžã§ã¯ãobjãäœçœ®ïŒ10; 10; 50ïŒãããã€ã³ãïŒ100; 300; 60ïŒã«ç§»åããå¿
èŠããããŸãã åæå€ãšæçµå€ãæå®ããŠã3ã€ã®ãã©ã¡ãŒã¿ãŒãèšå®ããŸãã x座æšã¯10ãã100ãŸã§ãyã¯10ãã300ãŸã§ãzã¯50ãã60ãŸã§å€åããŸããããã¯ãã¹ãŠãããšãã°4ç§ã§çºçããŸãã
m3d.lib.anim.add( 'moveobj', 1, 4000, 'and', {userpar1:111, obj:my3DObject}, [ {lim1:10, lim2:100, sstart:10, sfin:100, t:0}, {lim1:10, lim2:300, sstart:10, sfin:300, t:0}, {lim1:50, lim2:60, sstart:50, sfin:60, t:0} ], function(){ myPeriodicFun(this); }, function(){ myFinishFun(this); } ); m3d.lib.anim.play();
5ã€ã®ãã©ã¡ãŒã¿ãŒã®æåã®è¡ïŒmoveobj-ã¢ãã¡ãŒã·ã§ã³ã®ååïŒä»»æïŒã1-ã¹ããªãŒã çªå·ïŒç¡å¶éã®æ°ã®ã¹ããªãŒã ã§ãªããžã§ã¯ãã䞊è¡ããŠã¢ãã¡ãŒã·ã§ã³åã§ããŸãïŒã4000-ã¢ãã¡ãŒã·ã§ã³æé4ç§ãããã³-æªäœ¿çšã®ãã©ã¡ãŒã¿ãŒïŒå°æ¥çã«é·ç§»ããžãã¯ãæ
åœããŸãïŒãŸã§åãã¹ããªãŒã å
ã®ã¢ãã¡ãŒã·ã§ã³éã§ãuserparã¯ãã©ã¡ãŒã¿ãŒãšããŠãã³ãã©ãŒã«æž¡ãããé£æ³é
åã§ããããšãã°ãèšç®ãããååŸãæ£åŒŠãäœåŒŠãããã³äžè¬ã«ãã®ã¢ãã¡ãŒã·ã§ã³ã«å¯ŸããŠèšç®ãããå€ã§ãããããèšç®ããªã åå埩ã®æéã«ã€ããŠã ãŸãã¯ãå®éã«ã¢ãã¡ãŒã·ã§ã³åãã3Dãªããžã§ã¯ããåç
§ããŸãã
次ã¯ãå¯å€ãã©ã¡ãŒã¿ãŒãæã€é
åã§ãã æåã®ãã©ã¡ãŒã¿ãŒã¯x座æšã®å€åã2çªç®ã¯yã3çªç®ã¯zã§ããããšãããããŸãã lim1ãšlim2ã«ãããããã®ãµã€ãºãšãµã€ãºãå€æŽããŸãã sstartãšsfinã§ã¯ãåãå€ãæå®ããŸãã ããã§ãããšãã°ä»ã®å€ããéå§ãæå®ã§ããŸãããã©ã¡ãŒã¿ã¯ãããããåã«ãã¹ã¯ããŒã«ãããlim2ããã€ãã¹ããlim1ã§æ°ãããå転ããéå§ããŸãã ããšãã°ãã¢ãã¡ãŒã·ã§ã³ãããã€ãã®å€ïŒlim1ãšlim2ïŒã®éã§ã«ãŒãããå Žåãããã¯å¿
èŠã§ãããæåããïŒã€ãŸããlim1ããã§ã¯ãªãïŒäžéå€ããéå§ããå¿
èŠããããŸãã
tïŒ0ã¯ããã®ãã©ã¡ãŒã¿ãŒã®ã¢ãã¡ãŒã·ã§ã³ããåèšæéïŒ4000ïŒã«å¿ããŠ1åå®è¡ãããããã«èšå®ããŸãã ã¡ã€ã³æéãããçãå¥ã®æ°å€ãèšå®ãããšããã®ãã©ã¡ãŒã¿ãŒã¯ã«ãŒããããã¡ã€ã³ã¢ãã¡ãŒã·ã§ã³ã®æéïŒ4000ïŒãŸã§ç¹°ãè¿ãããŸãã ããã¯ãããšãã°ãè§åºŠã360床ã®å¢çãç¹°ãè¿ã亀差ããŠ0ã«ãªã»ããããå¿
èŠãããå Žåã«ããªããžã§ã¯ãã®å転ãèšå®ããã®ã«äŸ¿å©ã§ãã
次ã«2ã€ã®ã³ãŒã«ããã¯ããããŸã-åå埩ã§å®è¡ãããã³ãŒã«ããã¯ãšãã¢ãã¡ãŒã·ã§ã³å
šäœã®çµäºæã«1åå®è¡ãããã³ãŒã«ããã¯ïŒçµäºãã€ã³ãïŒã
ããšãã°ãæåã®ã³ãŒã«ããã¯myPeriodicFunïŒthisïŒã¯ã次ã®ããã«ãªããŸãã
myPeriodicFun:function(self) { var state=self.par[0].state, state_old=self.par[0].state_old; var state2=self.par[1].state, state_old2=self.par[1].state_old; var state3=self.par[2].state, state_old3=self.par[2].state_old; if ((state!=state_old)||(state2!=state_old2)||(state3!=state_old3)) { var obj=self.userpar.obj; obj.position.x=state; obj.position.y=state2; obj.position.z=state3; ap.cameraFollowObj(obj); }; },
ã€ãŸããåãã®åå埩ã§ãäžãããããã¹ãŠã®ã¢ãã¡ãŒã·ã§ã³ãã©ã¡ãŒã¿ãŒã®èšç®ãããäžéå€ãå«ããã©ã¡ãŒã¿ãŒïŒselfïŒããã®é¢æ°ã«ã¹ããŒãããŸãïŒself.par [0] .stateãself.par [1] .stateãself.par [2] .stateã ããã¯çŸåšã®xãyãzã§ãã ããšãã°ãã¢ãã¡ãŒã·ã§ã³ã4ç§ç¶ãå Žåã2ç§åŸã«xã¯ïŒ100-10ïŒ/ 2 = 45ã«çãããªããŸãããã¹ãŠã®åº§æšã«ã€ããŠãåæ§ã§ãã ãããã£ãŠãmyPeriodicFunã§ã¯ããããã®åº§æšã§ãªããžã§ã¯ãã衚瀺ããã ãã§ãã
ãã©ãŠã¶ãé
ãå§ãããããã®ããŒããŠã§ã¢äžã§ãã£ãããšåäœãããããå Žåãæããªãããã§ã¯ãããŸãããåèšã¢ãã¡ãŒã·ã§ã³æéã¯å€ãããããã¬ãŒã ã¬ãŒãã®ã¿ãäœäžããç»åãã¹ã©ã€ãã·ã§ãŒã«å€ãããŸããfïŒïŒstateïŒ= State_oldïŒ...ãã€ãŸããæ°ããèšç®å€ãå€ãå€ãšçãããã©ããïŒstate_oldãåã®å埩ã§èšç®ãããå€ãèšæ¶ããŠããïŒã確èªããçç±1æªæºã®å Žåããªããžã§ã¯ãå
šäœãåæç»ãããã·ã¹ãã ã®ãã¯ãŒãæ¶è²»ãããã¢ãã¡ãŒã·ã§ã³ãšã³ãžã³ã¯stateããã³state_oldã®æŽæ°ãçæããŸãã 1ãã¯ã»ã«ã§ããåæç»ããå¿
èŠã¯ãããŸãããç»é¢äžã®äœçœ®ã¯å€ãããŸãããäžè¬ã«ãã¢ãã¡ãŒã·ã§ã³ã¯ãã³ãŒã«ããã¯é¢æ°ãžã®äžéå€ã®é
ä¿¡ã«ããç¹å®ã®æéå
ã®ä»»æã®æ°ã®ãã©ã¡ãŒã¿ãŒã®åçŽãªå€åãšããŠç解ãããŸããããšãã°ããªããžã§ã¯ãã®å転è§åºŠãæ
åœããå¥ã®4çªç®ã®ãã©ã¡ãŒã¿ãŒãè¿œå ã§ããŸãããŸããå€ãã®ãªããžã§ã¯ãã®ãã©ã¡ãŒã¿ãŒãäœããã®åœ¢ã§åäžã«ç§»åããå Žåãéåžžã¯1ã€ã®ã¢ãã¡ãŒã·ã§ã³ã«è©°ã蟌ãããšãã§ããŸããã¢ãã¡ãŒã·ã§ã³ãç°ãªãã¹ããªãŒã ã«é
眮ãããšãã¢ãã¡ãŒã·ã§ã³ã䞊ååŠçãããŸãã ïŒm3d.lib.anim.addïŒïŒïŒã1ã€ã®ã¹ããªãŒã ã«ã¢ãã¡ãŒã·ã§ã³ã®ã·ãŒã±ã³ã¹å
šäœãè¿œå ãããšããããã¯æ¬¡ã
ã«å®è¡ãããŸããããã«ãåã¹ã¬ããã«ã¯ç¬èªã®ç¬ç«ããã·ãŒã±ã³ã¹ããããŸããäž»ãªããšã¯ãã·ã¹ãã ã«ååãªé»åãããããã¹ãŠãã¹ã©ã€ãã·ã§ãŒã«ãªããªãããšã§ããããã§ã®PSã¹ããªãŒã ã¯ããã¹ãŠã®äžŠåã¢ãã¡ãŒã·ã§ã³ã®åå埩ã§ã®é 次åæãšããã¹ãŠã®ãã©ã¡ãŒã¿ãŒã®äžéå€ã®ããããã®èšç®ã«ãã£ãŠåçŽã«å®è£
ãããŸããã€ãŸããjavascriptã«ã¯å®éã®ãã«ãã¹ã¬ããã¯ãããŸãããåãããšã³ãžã³ãã䜿çšããŠãç»é¢ãã¬ãŒã³äžã®2ã€ã®åº§æšãå€æŽããããã«èšå®ããååŸããäžéå€ã«åŸã£ãŠã³ãŒã«ããã¯é¢æ°ã«ãããã®èŠçŽ ã衚瀺ããããšã«ãããã€ã³ã¿ãŒãã§ã€ã¹ã®èŠçŽ ãã¢ãã¡ãŒã·ã§ã³åããããšãã§ããŸã å®éãããã¯ç§ã®ã²ãŒã ã§è¡ãããŸãããã€ãããã¯ã·ã£ããŠ
ã·ãŒã³å
šäœã«åœ±ã衚瀺ããããšã¯éåžžã«ç¡é§ã§ããããšãå€æããããã圱ããªã³ã«ãããšãfpsãæ°åäœäžããŸãããããã¯ãã¡ã§ãããã¬ãŒã€ãŒã®åšå²ã®ç¹å®ã®å°ããªæ£æ¹åœ¢ã«ãªããžã§ã¯ãã®åœ±ã衚瀺ããŸãããã®ãããªææ³ã¯ããã¬ãŒã ã¬ãŒãã倧å¹
ã«åäžããããšããã«èšããŸããããã§è€éãªããšã¯ãããŸããã
Three.jsã·ã£ããŠã¯ãããã¯ã¹ã§å®çŸ©ãããç¹å®ã®ã·ã£ããŠã«ã¡ã©ïŒshadowCameraLeftãshadowCameraRightãshadowCameraTopãshadowCameraBottomïŒå
ã«æ圱ãããŸããã·ãŒã³å
šäœã«åŒã䌞ã°ãããšããã¡ã€ã³ã«ã¡ã©ã«è¿œåŸããŠãã®åšèŸºã®ã¿ã«åœ±ãèœãšãããã«äœæããããšãã§ããŸãããã®ã·ã¹ãã ã«è¿œå ããã®ã¯ãã·ã£ããŠãæŽæ°ããã¹ãããã ãã§ããã·ã¹ãã ã«èšç®ãããŒããããããããã¬ã€ã€ãŒãã²ãã€ããã³ã«ãã®æŽæ°ãè¡ãå¿
èŠã¯ãŸã£ãããããŸããã圱ãæŽæ°ãããããã«ã3ã€ã®è»žã®ããããã«æ²¿ã£ãŠç¹å®ã®æå°è·é¢ãè¶
ããŠãã ãããç§ã®ã©ã€ãã©ãªã§ã¯ã3Dã¯ãŒã«ããåæåãããšãã«ãcontrãªããžã§ã¯ããäœæãããŸãããã®ãªããžã§ã¯ãã«ã¯ãåžžã«ã«ã¡ã©ã®åº§æšãå«ãŸããŸããããã«ã«ã¹ã¿ã ãã©ã¡ãŒã¿contr.cameraForShadowStepãèšå®ããããšãã§ããŸããããã«ã¯ãã·ã£ããŠã«ã¡ã©ã®äœçœ®ãå€åããã«ã¡ã©äœçœ®ã®ã¹ããããå«ãŸããŸããããšãã°ãã·ã£ããŠã«ã¡ã©ã®å¹³è¡å
é¢äœã®å¯žæ³ã700x700x700ã®å Žåãcontr.cameraForShadowStepã¯ãããšãã°20ã«èšå®ã§ããŸãããŸãããã¬ãŒã€ãŒãããããã®è»žã«æ²¿ã£ãŠ20移åãããšãåæäœçœ®ãåã³èšæ¶ããããã¬ãŒã€ãŒã®åšå²ã®ã·ã£ããŠãæŽæ°ãããŸãã 3Dãšãã£ã¿ãŒã§ãã¹ãŠã®ã¢ãã«ãäœæãããã¹ã±ãŒã«ã«å¿ããŠã3Dã¯ãŒã«ãã®ã¹ã±ãŒã«ã¯ä»»æã§ãããŸãã700x700x700ãš20ã®ä»£ããã«ã7000x7000x7000ãš200ã䜿çšããå¿
èŠãããå¯èœæ§ããããŸããããããããã¯æ¬è³ªãå€ãããã®ã§ã¯ãããŸããããšããã§ã倪éœã空ã移åãããšãã圱ã®æ¹åã¯ããã§å€åããã¯ããªã®ã§ã圱ã¯ãã®ã·ã¹ãã ãšã¯ç¡é¢ä¿ã«æŽæ°ãããŸããã€ãŸãããã¬ãŒã€ãŒã移åããã«ç«ã£ãŠããå Žåã§ãæŽæ°ãããŸããããã§ã¯ã空ãæŽæ°ããæéãŸã§ã«åœ±ãæŽæ°ããæ©èœãæãã«åŒã°ããŠããŸãããã€ã³ãã©ã€ãã·ã¹ãã
ã¹ããŒãžäžã«12ãè¶
ããç¹å
æºãååšãããšããã€ãããã¯ã·ã£ããŠãšåããããfpsã«åœãããŸãããããŠãå€ãã麻ããæŒå¥ããããšããäžå¯èœã«ããŸããããã«ããããã®ãœãŒã¹ããã¬ãŒã€ãŒã®èŠéå
ïŒäžçã®ã¬ã³ããªã³ã°ã®ç¯å²ãèšå®å¯èœïŒã«ããããããªãã®è·é¢ã«ãããã¯é¢ä¿ãããŸãããããããã¹ããŒãžäžã«æãã«ååšããå Žåããã¹ãŠããã£ããåäœããŸãããããã£ãŠã3Dã¯ãŒã«ããèªã¿èŸŒãåã«åŒã³åºãããšãã§ããã²ãŒã ã®èšå®ã¡ãã¥ãŒã§ããç¯ç± ã®ç¯ããšåŒã°ãããã®ãããªãœãŒã¹ã®æ°ïŒ2ã4ããŸãã¯8ïŒã®ãªãã·ã§ã³ãæäŸããŸããããã®ãããå€éãã¹ããŒãžã«çœ®ããããã¹ãŠã®ã©ã€ããåæã«ç¹ç¯ããŠãæ©èœããŸãããäžèšã§ã¯ãã¯ãŒã«ãåæåã¹ããŒã ã®èª¬æã§ãuserPointLightsãšlightsPDynamicArã®é
åã玹ä»ããŸããã userPointLightsã§ã¯ãã¹ããŒãžäžã®ãã¹ãŠã®ã©ã³ãã®åº§æšãé
åã«èšå®ãããŸãã lightsPDynamicArã«ã¯ã8ã€ã®ã€ã³ã¹ã¿ã³ã¹ãã¹ãŠã®ã©ã€ãèšå®ãå«ãŸããŠããŸããã©ã€ãã®æ°ã®èšå®ã«å¿ããŠãã©ã€ãã©ãªã¯æåã®ã©ã€ããååŸãããã¬ãŒã€ãŒã®èŠéå
ã®ã·ãŒã³ã«è¿œå ããŸããå®éããã¬ãŒã€ãŒã®ç§»åäžã«ãuserPointLightsã©ã³ã¿ã³åº§æšã®é
åã䜿çšããŠããã¬ãŒã€ãŒã«æãè¿ã2ã8åã®ã©ã³ã¿ã³ãæ€çŽ¢ãããŸãããããŠãç¹å
æºã¯ãããã®äžã移åããŸããã€ãŸãã2ã8åã®ç
§æã©ã³ãããã¬ã€ã€ãŒãåãå²ã¿ããã¬ã€ã€ãŒãå²ãã§ããŸããããã«ãããã¯fpsã®ãã¹ãŠã®ãã¬ãŒã ã§ã¯ãªããç¹å®ã®ã¹ãããã§å®è¡ãããŸããç¹ã«ãã¬ãŒã€ãŒãåããŠããªãå Žåã¯ãæ€çŽ¢æ©èœãæ¯ç§60åéå§ããå¿
èŠã¯ãŸã£ãããããŸããããã®å Žåãåšå²ã§æ¢ã«èŠã€ãã£ãŠããã©ã€ããçãããŸãããããåãã®æ§åã§ãïŒXeon E5440ãGeForce GT730ïŒïŒé
åžãã«ã
é«åºŠãªã¡ã¢åž³ãé€ãé«åºŠãªéçºç°å¢ã䜿çšããŠããªããããå* .jsãã¡ã€ã«ã®ã³ãŒããé£èªåããããã«Google Closure CompilerãåŒã³åºãããbatãã¡ã€ã«ãäœæããŸããããããŠãnw.jsãã³ãã«ã®nwjc.exeãããã§åŒã³åºãããjsããã€ããªïŒ* .binïŒã«ã³ã³ãã€ã«ããŸãããã¡ã€ã«ã®1ã€ã®äŸã瀺ããŸããjava -jar DïŒ\ webservers \ Closure \ compiler.jar --js DïŒ\ webservers \ proj \ m3d \ www \ game \ bus \ bus.js --js_output_file DïŒ\ webservers \ proj \ nwProjects \ bus \ game \ bus \ bus.js
cd DïŒ\ "Program Files" \ Web2Exe \ down \ nwjs-sdk-v0.35.5-win-ia32
DïŒ\ "Program Files" \ Web2Exe \ down \ nwjs-sdk-v0.35.5-win -ia32 \ nwjc.exe DïŒ\ webservers \ proj \ nwProjects \ bus \ game \ bus \ bus.js DïŒ\ webservers \ proj \ nwProjects \ bus \ game \ bus \ bus.bin
del DïŒ\ webservers \ proj \ nwProjects \ãã¹\ã²ãŒã \ãã¹\ bus.js
次ã«ãåçŽãªWeb2ExecutableãŠãŒãã£ãªãã£ã䜿çšããŠãWindowsçšã®ã¢ã»ã³ããªãå«ãexeãã¡ã€ã«ãäœæããŸããæ°ãããã®ãå©çšå¯èœã§ãããç§ã¯nw.jsããŒãžã§ã³0.35.5ãéžæããŸãããã¢ã»ã³ããªã®ãµã€ãºã倧ããããããšãé€ããŠããããã®å¹æã«æ°ä»ããŸããã§ããããã®ãŠãŒãã£ãªãã£ã¯ãéžæããããŒãžã§ã³ã®nw.jsãæå®ãããã©ã«ããŒèªäœã«ããŠã³ããŒãã§ããŸããåºåã¯ã¢ã»ã³ããªã§ãã35ã¡ã¬ãã€ãã®å®è¡å¯èœãã¡ã€ã«ã«ã¯ãå®éã«ã¯ã²ãŒã èªäœãå«ãŸããŠããŸãããã以å€ã¯ãã¹ãŠnode-webkitã§ããlocalesãã©ã«ããŒã«ã¯ãæããã«ãããã€ãã®ç°ãªãèšèªã®ãªãœãŒã¹ãæã€ãã¡ã€ã«ãå«ãŸããŠããŸããããããåé€ããè±èªã«é¢é£ãããã®ã ããæ®ããŸããããšããã§ãããã¯ã²ãŒã ã®ãã·ã¢èªçã®èµ·åã劚ããŸããã§ããïŒã²ãŒã ã§ã¯ãèšèªã¯ãã·ã¢èªãšè±èªã®éã§åãæ¿ãããŸãïŒããªãããããã¹ãŠã®ãã¡ã€ã«ã¯ãç§ã«ã¯ããããŸãããããããè±èªããªããã°ãäœãå§ãŸããŸãããã¢ã»ã³ããªå
šäœã¯æçµçã«167 MBããããŸããã次ã«ããã®ç®çã®ããã«èšèšãããç¡æã®ãŠãŒãã£ãªãã£ã®ããããã䜿çšããŠããã¹ãŠã1ã€ã®å®è¡å¯èœãªé
åžãã¡ã€ã«ã«ããã¯ããåºåã¯70.2 MBã®Businessman3DSetup.exeã§ããã転èš
ã¢ã»ã³ããªãããŸããŸãªã¢ããªã¹ãã¢ã«éä¿¡ããŸããããããã®ã»ãšãã©ã¯ãŸã ç§ã®ã²ãŒã ãã¢ãã¬ãŒãããããã»ã¹ã«ãããŸããçŸæç¹ã§ã¯ãããã¿ã®ã¿ããããå
¬éããŠããŸããç§ã¯ããã«èŠåããŸããã²ãŒã ã¯æ¯æãããŸããäŸ¡æ Œã¯3ãã«ã§ãããŸã 賌å
¥ããŠããŸããããç§ã¯ãŸã ãã®ããã¢ãŒã·ã§ã³ã«åŸäºããŠããŸããã GOGã¯ãã²ãŒã ãéåžžã«ã·ã³ãã«ã§ãããã§ãããšããäºå®ãåŒçšããŠãå
¬éãæåŠããŸãããç§ã¯ååãšããŠåæããŸãã Epic StoreãåãããšããããšæããŸããã²ãŒã ã®å
¬éããŒãžã§ã³ã¯1ã5ã®ããããæã€ã·ã³ã°ã«ãŠãŒã¶ãŒã§ããèšèª-ãã·ã¢èªãšè±èªããããã¯ãŒã¯ããŒãžã§ã³ãçµäºããäºå®ã§ããããããèããªãã-åãã¢ããªã±ãŒã·ã§ã³ã®åœ¢ã§ããŸãã¯WindowsãLinuxãiOãMacOã§ããã«å©çšå¯èœãªWebãã©ãŠã¶ãŒããŒãžã§ã³ã®åœ¢ã§ãäžè¬çã«ãã©ãŠã¶ãŒãWebGLããµããŒãããŠããå Žæã§ãªãªãŒã¹ããããšãå®éãwebkitã¯ãã©ãŠã¶ã§ãããFirefoxãEdgeãWindowsã®IE11ã§ãã²ãŒã ã¯æ£åžžã«åäœããŸãããåŸè
ã§ã¯éåžžã«é
ãã§ããçµè«
ãšã³ãžã³ã¯ãŸã å®æããŠããªãã®ã§ãäžè¬çãªäœ¿çšã®ããã«ãšã³ãžã³ãã¬ã€ã¢ãŠãããæºåããŸã æŽã£ãŠããªããšæããŸãããŸããå¥ã®ã²ãŒã ãäœæããŸããè¹ã«é¢ãããã¢ãããªã®ã²ãŒã ã§ãããã®ã²ãŒã ã§ã¯ããŠã©ãŒã¿ãŒã·ã§ãŒããŒã䜿çšããŠäœæ¥ããå®è¡ãã§ããããã§ããããã«ãããã«ç°¡åãªç©çãšã³ãžã³ãå®è£
ããäºå®ã§ããã¯ããä»ã®ãã¹ãŠã®æ©èœãçµäºãããã¹ãŠã®æ¬ é¥ãä¿®æ£ããå¿
èŠããããŸããããã€ãã®ãã¥ã¢ã³ã¹ãå¯èœã§ããããã1ã€ã§ã¯ãªã2ã€ã®ã²ãŒã ã§ãããè¡ãããšããå§ãããŸããäžæ¹ã§ãç§ã®æèŠã§ã¯ãç§ã®ãšã³ãžã³ã¯1ã€ã®ã²ãŒã ã«å¯ŸããŠã¯ããŸãã«ãéããªããããŠããŸããããã«ãç§ã¯èª°ããããããã¹ãŠå¿
èŠãšããŠãããšã¯ãŸã£ãã確信ããŠããŸãããå°å³ã«èŠãã°ã誰ãçŽç²ãªjavascriptã§ã²ãŒã ãæžããŠããªããããããã²ãŒã ã¯ãã©ãŠã¶ã«ãšã£ãŠéåžžã«ç°¡åã§é«éãªã®ã§ãç§ã¯ããã奜ãã§ãããããã¯é«éã§ããŒããããå€ãã®RAMãå¿
èŠãšããã2Dãšæ¯èŒããŠããhtml5ã®ç«¶åä»ç€Ÿãšæ¯èŒããŠéåžžã«é«éã«åäœããŸããããããã¹ãŠã®éçºã§ãè€æ°ã®ãã©ãŠã¶ã²ãŒã ïŒã ãã§ãªãïŒããªãªãŒã¹ãããšæããŸãã