ãã£ã³ãã¹
ãããããªãã®ããã«åããªããOpenGLã«ã€ããŠããèããªãã§ãã ãã
ãã£ã³ãã¹ãšã¯äœã§ããïŒ ããã¯ãAndroidã§GUIãæç»ããäž»ãªæ¹æ³ã§ãã ãã¹ãŠã®ãã©ãŒã ããã¿ã³ãããã³ã¹ã€ããã¯ããã®ãã¯ãããžãŒã䜿çšããŠæç»ãããŸãã ç¹å®ã®ãµã€ãºïŒããšãã°1024x600ïŒã®ãããããããäžãããããã®äžã«æç»ããå¿ èŠããããŸãã Canvasã¯ã©ã¹ã䜿çšããŠæç»ã§ããŸããCanvasã¯ã©ã¹ã«ã¯ãæç»çšã®è±å¯ãªé«ã¬ãã«APIããããŸãã ã¢ã³ããšã€ãªã¢ã·ã³ã°ããªã³ã«ããŠç¹å®ã®è²ã®ç¹å®ã®å€ªãã®åãæãããšã¯é£ãããããŸããã ã·ã§ãŒããŒã®ãµããŒãããããŸãã
ãããããªãOpenGLã«å°ããã®ã§ããïŒ
Canvasã®æ¬ ç¹ïŒ
- äœéã ã°ã©ãã£ãã¯ã¹ã®ãã¹ãŠã®äœæ¥ã¯ãããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãªãã§è¡ãããŸãïŒ äŸå€ããããŸã ïŒã ã€ãŸããããããããã®ãµã€ãºãäžçšåºŠã®å Žåã«å¯ŸåŠããäžå€®åŠçè£ çœ®ã®åªåã§ãããããããåããŸãã æç»é床ã¯é¢ç©ã«æ¯äŸããå¢å ããã«ã€ããŠå€§å¹ ã«é ããªããŸãã
- 3Dãªããæ·»ããã®ãªãã Canvasã¯ã3Dããããªã¢ã«ããããã£ãå æºã®é 眮ã調æŽãªã©ããµããŒãããŠããŸããããã®ãªã¹ãããäœããå¿ èŠãªå Žåã¯ãèªåã§ãšãã¥ã¬ãŒãããå¿ èŠããããŸããããã«ããããã§ã«äœãã¬ã³ããªã³ã°é床ãããã«é ããªããŸãã
ãã£ã³ãã¹ã®å©ç¹ïŒ
- ã¢ããªã±ãŒã·ã§ã³ãžã®çµ±åã®å®¹æãã ãã£ã³ãã¹ã®æç»ã¯ããã«å©çšã§ããŸãã OpenGLã䜿çšããŠäœæãããç»åã衚瀺ãããç¹å¥ãªè¡šé¢ãäœæããå¿ èŠã¯ãããŸããã OpenGLãå®è¡ããã¹ããªãŒã ãäœæããå£çŽãµãŒãã¹ãšåæããå¿ èŠã¯ãããŸããïŒéåžžã«éèŠãªã¿ã¹ã¯ã§ãïŒã
- åçŽãªé«ã¬ãã«IPAââã Canvasã«ã¯ãã»ãŒãã¹ãŠã®å Žé¢ã§äœ¿çšã§ããæ¢è£œã®æç»æ©èœããããŸãã ã¯ã©ã¹ã®ããã¥ã¡ã³ããèªã¿ãæ£åžžã«äœ¿çšãéå§ããã«ã¯5åããããŸãã
ã¢ãŠãã©ã€ã³ã«æ»ããŸãããä»åºŠã¯å¥ã®ã¢ãããŒãã«ã€ããŠè©±ããŸãããã
Opengl
Canvasã倱æããå Žåãä»ã«ã¯äœãæ®ããŸããã
OpenGLãDirectX-ç§ãã¡ã¯çããããã®ãã¯ãŒã«ãªãèšèãèããŸããã Androidã§ã¯ãOpenGLã䜿çšã§ããŸãããã·ã³ãã«ã§ã¯ãããŸããïŒãã¹ã¯ããããšã¯ç°ãªããŸãïŒããåé€ãããŠããŸãã ããã«ãOpenGL ES 1.0 / 1.1ïŒã©ãã§ãåäœããŸãïŒãŸãã¯OpenGL ES 2.0ïŒAndroid 2.2以éïŒãéžæããããšãã§ããŸãã ã¿ã€ãã«ã®ESãšã¯äœã§ããïŒ ESã¯ãããã¯OpenGLã®ç°¡æããŒãžã§ã³ã§ãããAPIãå¯èœãªéãã³ã³ãã¯ãã«ããäžå€®ããã»ããµã§ãšãã¥ã¬ãŒããããããã®ãã¢ãã€ã«ããã€ã¹ã«ãã©ãã°ããªãããã«ããããã«äœåãªãã®ããã¹ãŠåé€ããŸããã ã€ãŸããéåžžã®OpenGLã«é¢ããæžç±ã®ãã¹ãŠã®äŸãæ©èœããããã§ã¯ãããŸããããååãšããŠãã¹ãŠãåããŸãŸã§ãã
æ°ã¥ããããã«ã1.0 / 1.1ãš2.0ã®2ã€ã®ããŒãžã§ã³ããããŸãã ãŠã£ãããã£ã¢ã§ãããã®éãã«ã€ããŠèªãããšãã§ããŸãïŒè±èªãéžæããŠãã ãã ïŒã ããã«ããã¹ãŠã®ããã€ã¹ããã¹ãŠã®OpenGL ESæ¡åŒµæ©èœãåçã«ãµããŒãããŠããããã§ã¯ãããŸãããäžéšã®ããã€ã¹ã䜿çšããåã«ããµããŒããããŠããããšã確èªããå¿ èŠããããŸãïŒ ãã¡ããã芧ãã ãã ïŒã
OpenGLã®æ¬ ç¹ïŒ
- ã¢ããªã±ãŒã·ã§ã³ã«çµ±åããã®ã¯é£ããã OpenGLã䜿çšããŠããã€ã¹ã®ç»é¢ã«ã°ã©ãã£ãã¯ã衚瀺ããã«ã¯ãç¹å¥ãªãµãŒãã§ã¹ãšããã®ãµãŒãã§ã¹ã«æç»ããç¹å¥ãªã¹ããªãŒã ãäœæããå¿ èŠããããŸãã ãŸããã·ã¹ãã ãšã¹ããªãŒã ã®åæã«ã泚æããå¿ èŠããããŸãã
- æŽç·Žãããäœã¬ãã«IPAââã æ£æ¹åœ¢ãæãæ©èœãç»åã衚瀺ããæ©èœã¯ãããŸããã ããããå€ãã®ãã©ã°ãšæç»ã¢ãŒãããããŸãã ããªãŽã³ã®é ç¹ã座æšå€æãããªãã¯ã¹ããã¯ã¹ãã£èªã¿èŸŒã¿é¢æ°ãããã³ãªãŒããŒã¬ã€ã³ã³ãããŒã«ãæå®ããã¡ã«ããºã ã...äžè¬ã«ãOpenGLãæ±ã£ãããšããªãå Žåããã¹ãŠãéåžžã«æ··ä¹±ããŸãã éçºã«ã¯æ°æ¥ããããŸãã
OpenGLã®å©ç¹ïŒ
- ä»äºã®é«éã Canvasã䜿çšããã¢ããªã±ãŒã·ã§ã³ã¯ãOpenGLã䜿çšãããããé«éãã€ã¹ã ãŒãºã«å®è¡ãããããšã¯ãããŸããïŒãã¡ãããçŽæ¥æãæã£ãŠããå ŽåïŒã
- 3Dãšãã«ãšãã€ãã¹ã«ã®ãµããŒãã äžæ¬¡å ã®ã¬ãŒã¹ãå°æïŒ ããã¯ãã¹ãŠOpenGLã䜿çšããŠå¯èœã§ãã å æºã®äœæãã«ã¡ã©ã®å¶åŸ¡ãæ°Žé¢ã®ãªã¢ã«ãªå¹æã®äœæãææã®äœ¿çšãªã©ã
ãããŠäœããã¹ããïŒ
Opengl ç°¡åã«ããŸãã
ããã ãã§ã¯é£ãããšããç§ãã¡ã¯å©ããæ±ããŸãã
OpenGLã䜿çšããããšã«æ±ºããã®ã¯ç§ãã¡ãåããŠã§ã¯ãªãããšã¯æããã§ãããç§ãã¡å šå¡ããã§ã«çŸããããã¡ãããã¬ã€ããããŒããåããçãŸããåµãæããŸããã ã²ãŒã ããŸã£ããæåããäœæããããšã¯ãã£ãã«ãããŸããããéåžžããã¹ãŠã®éå±ãªã¢ã¯ãã£ããã£ãåŠçãã空æ³ãå®çŸããããã®ããã·ã³ãã«ãªAPIãæäŸãããšã³ãžã³ã䜿çšãããŸãã ãããŠãã©ã€ãå£çŽã«é¢é£ããŠãç§ãã¡ãšäžç·ã«ãªãã·ã§ã³ãç°¡åã«ããããšãå€æããŸãã2 ...
3Dã©ã€ãå£çŽã«é©åããGLSurfaceView
ããã¯ãRobert Green ã«ããèšäºã®ååã§ããRobertGreenã¯ãäœæããã¯ã©ã¹ïŒã¡ã€ã³ã¯GLWallpaperServiceã§ãïŒã«ã€ããŠè©±ããŸãããããã¯ãã¹ãŠã®æ§æäœæ¥ãè¡ããŸãã æç»ããã³ãŒããæžãããšã¯ç§ãã¡ã«æ®ã£ãŠããŸãã githubãããããžã§ã¯ããã¡ã€ã«ãããŠã³ããŒããããšïŒãããžã§ã¯ãã¯ã©ã€ãã§ãæè¿æŽæ°ãããŸãïŒãçŸãããã®ã¯äœããªãïŒèæ¯å šäœãè²ã§å¡ãã€ã¶ãã ãã®ïŒæ¢è£œã®å£çŽã衚瀺ãããŸãããæ¢ã«æ©èœããŠããŸãã æç»ã«å¿ èŠãªã³ãŒããæžãã ãã§ãã ã·ã¹ãã ãšã®çžäºäœçšã®ã€ã³ã¿ãŒãã§ãŒã¹ãšOpenGLã®åºæ¬èšå®ã¯ãã§ã«åŠçãããŠããŸãã Robertã¯OpenGL 1.0 / 1.1ã䜿çšããŠããŸããã2.0ãžã®åãæ¿ãã¯é£ãããããŸããã ãŸããè¿œå ã®æç»ããŒã«ãæäŸãããŠããªãããšã«ã泚æããŠãã ãã;åãOpenGL ES APIã䜿çšããŠæç»ããå¿ èŠããããŸãã
Andengine
AndEngineã¯çã®2Dã²ãŒã ãšã³ãžã³ã§ãã ãã®ãšã³ãžã³ã¯ãç©çåŠãäœæããããã®physicsbox2dãªã©ãããã€ãã®æ¡åŒµæ©èœããµããŒãããŠããŸãã ãšã³ãžã³èªäœã¯ããªãŒãã³ãœãŒã¹ïŒJavaïŒã§éåžžã«äººæ°ããããŸãã ãã¹ãŠã®ãšã³ãžã³ããŒã«ã䜿çšããŠå£çŽãäœæã§ããŸãã ãšã³ãžã³ã®å¯äžã®ãããã¥ã¡ã³ããã§ããå€ãã®äŸããããŸãã äœããããå¿ èŠãããå Žå-ã©ã®äŸã§ãããèŠãŠèŠããŠãããããã§ã©ã®ããã«å®è£ ãããŠãããã確èªããŠãã ããã ãŸãããã«ããæ±ããããšãã§ãããã©ãŒã©ã ããããŸãïŒã¢ã¯ãã£ããªãã©ãŒã©ã ãè¿ éãªãã«ãïŒã
æªãç¹ã«ã€ããŠã
ãšã³ãžã³ããŒãžã§ã³2ãæåïŒGLES1ïŒã¯OpenGL ES 1.0 / 1.1ã䜿çšãã2çªç®ïŒGLES2ïŒã¯ES 2.0ã䜿çšããŸãã GLES2ã®APIã¯éåžžã«é«åºŠã§ãããããGLES2ã䜿çšããããšããå§ãããŸãããããŒãžã§ã³2.1ã®AndroidãŠãŒã¶ãŒã¯å€±ãããŸãïŒGLES2ã¯æ©èœããŸãããã©ã€ãå£çŽã¯æ©èœããŸãïŒã AndEngineã®äž¡æ¹ã®ããŒãžã§ã³ã䜿çšããŠå£çŽãå®è¡ã§ããŸããã ããããGLES1ã§ã¯ãç»é¢ã®åããå€æŽãããšãã«ã«ã¡ã©ã®èšå®ãå€æŽã§ããªãããšã«ããã«çŽé¢ããŸããïŒGLES2 APIã§ã¯ã軞ã®1ã€ã«æ²¿ã£ãŠã·ãŒã³ã¹ã±ãŒã«ãå€æŽããå¿ èŠããããŸãïŒã
ãšã³ãžã³ã¯2Dã²ãŒã çšã«äœæãããããã3DãµããŒãçšã®APIã¯æäŸãããŠããŸããïŒOpenGLãçŽæ¥äœ¿çšããããšãçŠæ¢ãã人ã¯ããŸããïŒã ãŸããåãäžè§åœ¢ãæããªã©ã®å¿ èŠãªæ©èœãæ¬ ããŠããããã«èŠããŸãã ãšã³ãžã³ã¯ãã¹ãã©ã€ãã«ããçŠç¹ãåãããŠããŸãã ãšã³ãžã³ã¯ã©ã¹ã·ã¹ãã ã«é©åããããã«åãåã®æç»æ©èœãè¿œå ããã®ã¯éåžžã«å°é£ã§ããããã¥ã¡ã³ãã¯ãããŸããã ãããã£ãŠãå€ãã®ã³ãŒããã·ã£ãã«ã§æããäœãäœã§ããããææ¡ããå¿ èŠããããŸãã
ãããã«
äŸãæããŠãçµè«ãå°ãåºããŸããããCanvasã䜿çšããŠäœæããå£çŽã® 1ãã¬ãŒã ã¯ãKindle Fireã§17ããªç§ã§æç»ãããŸãïŒ6ã€ã¯ãã£ã³ãã¹ããããã¯ãããã³ãããã¯è§£é€ãããŸãïŒã ããã¯ãèæ¯ã16x16pxãã¯ã¹ãã£ã§å¡ãã€ã¶ãã350x180pxã®ç»åãåºåããç°ãªã倪ããšååŸã®4ã€ã®åãæãã®ã«æé©ã§ãã OpenGLã䜿çšããå Žåãããã¯1æ¡éãå®è¡ãããŸãã è¯ãç¹ã«ã€ããŠïŒã¬ã³ããªã³ã°ã³ãŒãã1æéã§å°ãã17ããªç§å°ãã§äœæããŸãããã¢ãã¡ãŒã·ã§ã³ã¯ã¹ã ãŒãºã§ãã
ãã©ã³ã¹ã§ã
ã¢ãã¡ãŒã·ã§ã³ãããã»ã©è€éã§ã¯ãªãã倧ããªèšç®ãªãœãŒã¹ãå¿ èŠãšããªãå Žåã3Dãæ°ã«ããªãå Žåã¯ãã£ã³ãã¹ã䜿çšããŸãã
2Då£çŽãäœæããå Žåã¯ãAndEngineã䜿çšããŸãã ãµã³ãã«ãåŠç¿ãããã©ãŒã©ã ãèªããšãã¢ãã¡ãŒã·ã§ã³ã®äœæãããã«éå§ã§ããŸããè¿œå ã®ãšã³ãžã³æ¡åŒµæ©èœã䜿çšãããšãã¢ãã¡ãŒã·ã§ã³ã«å¹æçãªãœãªã¥ãŒã·ã§ã³ïŒç©çãããŒãã£ã¯ã«ã·ã¹ãã ãªã©ïŒãç°¡åã«å®è£ ã§ããŸãã
Robert Greenã®GLWallpaperServiceã䜿çšããŸãã OpenGLãåŸæã§ã3Dã®å£çŽãäœæããã°ãã«ãŒãã³ã«æ°ãåãããããšãªããããã«ã¢ãã¡ãŒã·ã§ã³ã®ã³ãŒãã£ã³ã°ãéå§ã§ããŸãã
ãæ°ã«å ¥ãã®OpenGLã°ã©ãã£ãã¯ãšã³ãžã³ã®å€ããé©å¿ãããŠãã©ã€ãå£çŽãäœæããããšãã§ããŸãã äŸãšããŠGLWallpaperServiceããã³/ãŸãã¯AndEngineã³ãŒãã䜿çšããŸãã