éèŠãªèŠå ã¯ãUnityïŒcïŒïŒã®çµéšããŸã£ããç°ãªããã©ãããã©ãŒã ã«ç§»ãããšããããšã§ãã ãããŠããã¯é倧ãªééãã§ããã Blend4Web-WebGLã¢ããªã±ãŒã·ã§ã³ã®äœæå°çšã«åŒ·åãããããŒã«ã§ãã¯ãã¹ãã©ãããã©ãŒã ã®Unityã«æ¯ã¹ãŠç¢ºããªå©ç¹ããããŸãããããã€ãã®å¶éããããŸãã Webãã¬ãŒã€ãŒã®ãµããŒããçµäºããUnity WebGLãšã¯ã¹ããŒã¿ãŒã®ããã©ãŒãã³ã¹ãäœããããBlend4Webãã©ãããã©ãŒã ã¯éåžžã«èå³æ·±ãããã§ãã ãããã£ãŠãå¿ èŠãªå Žåã¯ããããªããããããææ¡ããå¿ èŠããããŸãã
ãã®ã¬ãã¹ã³ã¯ãããªãèªèº«ã®çµéšãb4wéçºè ããã®ãã³ããããã³å ¬åŒããã¥ã¡ã³ãããŸãšãããã®ã§ãã äž»ã«åå¿è åãã«èšèšãããŠãããç§ã®ã²ãŒã ãããžã§ã¯ãã«åºã¥ããŠããŸãã
ç§ã®ç解ã§ã¯ãã²ãŒã ãã£ã©ã¯ã¿ãŒã¯ãä»ã®ãªããžã§ã¯ããšåãããèãããçžäºäœçšã§ãããªããžã§ã¯ãã§ãã AIã®å®è£ ã¯æ¬¡ã®èšäºã®ããã«æ®ããŸãããããã§ã¯åºæ¬çãªã¢ã¯ã·ã§ã³ã«ã€ããŠèª¬æããŸãã
Blend4Webã¯Blenderã«åºã¥ããŠãããããã¢ãã«ãšã·ãŒã³ã®ãã¹ãŠã®èšå®ã¯ãã®ãšãã£ã¿ãŒã§å®è¡ãããb4wãšä»ã®ãœãªã¥ãŒã·ã§ã³ã¯åºå¥ãããŸãã
ã²ãŒã ã¬ãã«ã¯ããŸããŸãªæ¹æ³ã§äœæã§ããŸãã
- éç ãã¹ãŠã®ã¢ãã«ããªããžã§ã¯ãã¯ããŒã¹ã¹ããŒãžã«äºåã«é 眮ãããŠããŸãã ãã®å ŽåããµãŒãããŒãã£ã®ãã¬ã³ããã¡ã€ã«ïŒãªã³ã¯ïŒãããªããžã§ã¯ããæ¥ç¶ããããã«ãæšæºã®Blenderé¢æ°ã䜿çšãããŸãã ãããã£ãŠãã¬ãã«å šäœãã¡ã¢ãªã«å®å šã«ããŒããããéçºè ã¯Blend4Web APIã䜿çšããŠãªããžã§ã¯ãã«ã¢ã¯ã»ã¹ã§ããŸãã ããã¯ç°¡åãªæ¹æ³ã§ãããæ¬ ç¹ããããŸã-ãã©ãŠã¶ã²ãŒã ã«ãšã£ãŠéèŠãªé·æéã®ããŠã³ããŒãã§ãã
- ãã€ãããã¯ã ã¡ã€ã³ã·ãŒã³ããããå¿ èŠãªãªããžã§ã¯ãã¯ãã¹ãŠåå¥ã®ãã¡ã€ã«ã§ãããBlend4Web APIã䜿çšããŠããŒããããŸãã
èšç»ã©ããããã®ã²ãŒã ã«ã¯éãããŸã-æªã§ã¯ãªããéåžžã«éããé ãã倧ãããå°ããããããŸããã ããããã¬ãã«ã«ãã£ãããšé 眮ãããŠããå Žåãåçå¯èœæ§ã¯æé«ã§ã¯ãããŸããã ããããç°ãªãå Žæãå質ãéã§çæãããå Žåãããã¯ã¯ããã«èå³æ·±ãã§ãã ã¯ãããããã¯ãŒã¯ãã©ãã£ãã¯ã¯ä¿åãããŸãã ãããã£ãŠãç§ã¯ééããªã2çªç®ã®ããŒããªãã·ã§ã³ãéžæããŸããã
ããã«ãç§ã¯æŒæã®ãã£ã©ã¯ã¿ãŒã«å°ãçŠç¹ãåœãŠãŸãã ç§ã®ã²ãŒã ã§ã¯ãéæ¥å¶åŸ¡ãåããçããã²ãŒã ãã¬ã€ãæãã€ããŸããã å®éããã¬ãŒã€ãŒã¯å©ããŸãããäž»äººå ¬ã«ã¯åœ±é¿ããŸããã ããã§ã¯ããã¹ãŠã®ãã£ã©ã¯ã¿ãŒãäºåã«äœæããããã¹ã«æ²¿ã£ãŠç§»åããããšãéèŠã§ããããã¹ãšå®å ã¯ã©ã³ãã ã«ããŸãã¯æ¢åã®ã¿ã¹ã¯ã«å¿ããŠçæãããŸãã
ãã£ã©ã¯ã¿ãŒã«ã¯2ã€ã®äž»èŠãªã¢ã¯ã·ã§ã³ãå¿ èŠã§ãã
- ã«ãŒãã«åŸã£ãŠãã ããã
- ã¿ã¹ã¯ãå®äºããããã«ããŸãã¯å¥ã®ãªããžã§ã¯ããšäŒããšãã«ãè»éããå€ããŸãã
ãããã®èŠä»¶ã«ãããç©çåŠã®äœ¿çšãšæ§æãç°¡çŽ åãããŸãã åçŽãªã³ã©ã€ããŒã®ã¿ãå¿ èŠã§ãã
ã¹ããã1. Blenderã§ã¢ãã«ãã»ããã¢ãããã
ãããã£ãŠãæ¢è£œã®ã²ãŒã ã¢ãã«ãããããã®ãªãœãŒã¹ãç®çã®SDKãã©ã«ããŒã«ãããšããŸãã ãšã³ãžã³ã®ææ°ããŒãžã§ã³ã§ã¯ãWebã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠã¢ã»ã³ããªããã³ãããã°ããã»ã¹ãèªååã§ããããã«ãªã£ãããããã®èŠä»¶ãæºããããšãæãŸããã§ãã ãã ããèŠä»¶ã¯ç°¡åã§ãã
ã·ãŒã³ãã¡ã€ã«ïŒãã¬ã³ãïŒã¯ã sdk \ blender \ projectãã£ã¬ã¯ããªã«é 眮ããå¿ èŠããããŸãã
ãªãœãŒã¹ãã¡ã€ã«ãšãã·ãŒã³ãããšã¯ã¹ããŒããããJSONã¯ã sdk \ deploy \ asset \ projectã«ãããŸãã
sdk \ apps_dev \ projectãã©ã«ããŒå ã®ã¹ã¯ãªãããHTMLãCSSã
b4wãšã³ãžã³ã¯å ã®ãã¬ã³ããã¡ã€ã«ã§ã¯ãªããJSON圢åŒã§æ©èœããŸãã ãšã¯ã¹ããŒãã¯ãBlenderã¡ãã¥ãŒããå®è¡ããŸãã ãã¡ã€ã«| ãšã¯ã¹ããŒã| Blend4WebïŒJSONïŒ ã ãšã¯ã¹ããŒã¿ãŒã¯Blenderã·ãŒã³å šäœãè¿œãè¶ãããšã«æ³šæããŠãã ããã ãããã£ãŠãã²ãŒã ã«é¢ä¿ã®ãªããªããžã§ã¯ããããšãã°ãã€ããªã®ãªãªãžãã«ãåé€ããå¿ èŠããããŸãã ãã¡ãããAPIã䜿çšãããšãã·ãŒã³ããç®çã®ãªããžã§ã¯ããéžæã§ããŸããããã¡ã€ã«å šäœããããã¯ãŒã¯çµç±ã§ããŠã³ããŒããããŸãã
2çªç®ã®æ©èœã¯ã修食åã®äœ¿çšã§ãã ããããé©çšããå¿ èŠã¯ãªããããã«ãããã¢ãã«ãä¿®æ£ããæ©èœãé®æããŸãã Apply Modifiersãªãã·ã§ã³ããã§ãã¯ãããã Apply ScaleãšModifiersã§ããã«è¯ãããŸãã ãããã®ãã©ã¡ãŒã¿ãŒã¯ãéžæãããªããžã§ã¯ãã®ãªããžã§ã¯ãããã«ã«ãããŸãã

ãããªã¢ã«ããªããžã§ã¯ãããã¯ã¹ãã£ã«äººéãèªããååãä»ããããšãéèŠã§ãã å®éãå°æ¥ãã³ãŒãããããããžã®ã¢ã¯ã»ã¹ã¯ååã䜿çšããŠå®è¡ãããŸãã ã©ãã³ãã¢ã³ããŒã¹ã³ã¢ãããã³æ°åãé©åã§ãã ããªãªãã䜿çšããæšæºã®Blenderèªååã¯é¿ããŠãã ããã
ã¢ãã«èšå®ã確èªããæãç°¡åãªæ¹æ³ã¯ãç¹å¥ãªãŠãŒãã£ãªãã£ã䜿çšããŠãã©ãŠã¶ã§è¡šç€ºããããšã§ãã ãã¥ãŒã¢ãŒã§å®è¡ãªãã·ã§ã³ãæå¹ã«ãããšãJSONã®ãšã¯ã¹ããŒãåŸã«ããã°ã©ã ãèªåçã«éå§ã§ããŸãïŒB4W Export JSONããã«ã®å·ŠåŽïŒã ãã®ãªãã·ã§ã³ã¯ããããžã§ã¯ããsdk \ blender \ãã©ã«ããŒã«ä¿åããå Žåã«ã®ã¿äœ¿çšã§ããŸããããã¯SDKã«é©ããŠããŸãã
ãã¥ãŒã¢ãŒã䜿çšãããšãJSONã§çºçããå¯èœæ§ã®ããåé¡ã«é¢ããã·ã°ãã«ãããã€ã¹ãããã¹ãŠã®åŽé¢ããã¢ãã«ã衚瀺ãã·ãŒã³ã®ãã©ã¡ãŒã¿ãŒã調æŽãããã³æãéèŠãªããšãã§ããŸãã ç»é¢ã®é ã«ããå°ããªä¿¡å·æ©ïŒå³ãåç §ïŒããæ£è ãã®ç¶æ ã«ã€ããŠèŠåããŸãã èµ€ãšé»è²ã¯äœããééã£ãŠããããšãæå³ãããã©ãŠã¶ã³ã³ãœãŒã«ã§ãã°ã衚瀺ããå¿ èŠããããŸãã

ãã®æ®µéã§ãã¹ãŠãããŸãããã°ãç©çåŠãè¡ãæã§ãã éåžžãé床ãšå質ã®ãã©ã³ã¹ããšãããã«ãã¢ãã«ã®å ã®åœ¢åŒã§ã¯ãªããåçŽåãããããªãšãŒã·ã§ã³ã䜿çšãããŸãã ããã«ãç«æ¹äœãçãã«ãã»ã«ãªã©ã®åçŽãªããªããã£ããæããã䜿çšãããŸãã å人çã«ã¯ãã²ãŒã ã§ã¯æ£ç¢ºãªç©ççå¹æã§ã¯ãªãè¡çªãèšç®ããå¿ èŠããããããåçŽãªç«æ¹äœã«æ±ºããŸããã

ãããè¡ãããã«ãæ°ãããã¥ãŒãããªããã£ããã·ãŒã³ã«è¿œå ããŸããã ã¢ãã«ã«å¯ŸããŠã«ãŒãïŒèŠªïŒã«ãããã¹ãŠã1ã€ã«ã°ã«ãŒãåããŸããã ãããè¡ãæ¹æ³ãããããªãå Žåã¯ãã¹ããããã€ã¹ãããã®ã¢ã«ãŽãªãºã ã次ã«ç€ºããŸãã
- ã¢ãã«ãéžæããŠããã³ã©ã€ããŒãéžæããŸãã CTRL + PãæŒããŠã衚瀺ãããã¡ãã¥ãŒãããªããžã§ã¯ããéžæããŸãã
- éžæãããªããžã§ã¯ããã°ã«ãŒãåããã«ã¯ãCTRL + GãæŒããŸã
ãããã®ã¢ã¯ã·ã§ã³ã®åŸãFishãšããååã®ã³ã©ã€ããŒãã«ãŒãã«ãªããŸããïŒäžèšã®å³ãåç §ïŒã ç©ççãªè¡åã«åå ããã¹ããŒãžãåãåãã®ã¯åœŒã§ãããã¢ãã«ã¯åãªããä¹å®¢ãã«ãªããŸãã
ãããã£ãŠããã¹ãŠã®ç©çèšå®ã¯ãã¥ãŒãã³ã©ã€ããŒã«é¢ããŠå®è¡ãããŸãã æåã«ããããšã¯ããã¥ãŒã§ã¯ãªããã®åœ¢ç¶ã®ã¿ãå¿ èŠãªããããšã³ãžã³ã®ã¬ã³ããªã³ã°ã§èŠèŠåããªãã«ããããšã§ãã äžã®å³ã®ããã«ãèšå®ã§[ ã¬ã³ããªã³ã°ããªã ]ãªãã·ã§ã³ããªã³ã«ããŸãã 2ã€ç®ã¯ã[ åçãªããžã§ã¯ãã®åŒ·å¶ ]ãªãã·ã§ã³ãæå¹ã«ããããšã§ãã ããã¯ãå¿ èŠãªAPIé¢æ°ã®äžéšã®æ©èœã«å¿ èŠã§ãã ãã ããä»ã®ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒã¯[ç©ç]ããã«ã«ãããŸãã

å®éãBlend4Webã®ãªããžã§ã¯ãã®ç©çã¯ã¢ã¯ãã£ãåããã®ãéåžžã«ç°¡åã§ãã Object Physicsã®ããã¯ã¹ããã§ãã¯ããã ãã§ãã¢ãã«ã¯å€çãšçžäºäœçšããŸãã çžäºäœçšã®ã¿ã€ãã¯ãTypeãã©ã¡ãŒã¿ãŒã«ãã£ãŠæ±ºå®ãããŸãã å³ã§ã¯åçãéžæãããŠããŸãããããã¯å¶ç¶ã§ã¯ãããŸãããéã¢ãã«ã¯å¯åæ§ãããããã§ãã å£ãé段ããã®ä»ã®é害ç©ãªã©ãã·ãŒã³ã®åºå®èŠçŽ ã«ã€ããŠã¯ãéçã¿ã€ããèšå®ããå¿ èŠããããŸãã
ã³ã©ã€ããŒãã¥ãŒã¯ã[ è¡çªç¯å² ]ã¿ãã§éžæãããŸãã ããã¯ã¹ã«ã¯ãããã¯ã¹ã«æé©ãªåœ¢ç¶ãšããŠå³ã«ç€ºãããŠããŸãã ãã¡ãããã¢ãã«ã«ã¯ã䜿çšå¯èœãªç©çããªããã£ãã®ãããããéžæã§ããŸãã
ãããŠæåŸã®1ã€ã¯Charasterãªãã·ã§ã³ã§ãã ååã«ãã£ãŠããããã¢ã¯ãã£ãã«ãªãããšã¯ãã§ã«æããã§ãã ã¯ãã確ãã«ãBlend4Webéçºè ã¯ãŠãŒã¶ãŒã®é¢åãèŠãŠããã£ã©ã¯ã¿ãŒã®åãã®äž»èŠãªãã©ã¡ãŒã¿ãŒã®ã¯ã€ãã¯èšå®ãè¿œå ããŸããïŒãŠã©ãŒãã³ã°ããžã£ã³ããã©ã³ãã³ã°ããŠã©ãŒãã³ã°ãªã©ã ãã¡ãããããã¯ç¹ã«éã«ã¯åœãŠã¯ãŸããŸãããããã®ãªãã·ã§ã³ãæå¹ã«ããªããšãäžéšã®APIé¢æ°ãæ©èœããŸããã
ååãšããŠãããã ãã§ãã ã·ãŒã³ããšã¯ã¹ããŒãããŠãããã°ã©ãã³ã°ã«é²ãããšãã§ããŸãã
ã¹ããã2.ããã°ã©ã ã³ãŒãã
èšäºã® 1ã€ã§ãBlend4Webã¢ããªã±ãŒã·ã§ã³ãäœæããæ©èœã«ã€ããŠæ¢ã«èª¬æããŸããã ãããã£ãŠãç§ã¯ç¹°ãè¿ããŸããããã¬ãã¹ã³ã®ãããã¯ã«çŽè¡ããŸãã
ãåãã®ããã«ãBlend4Web APIé¢æ°ã¯åå¥ã®ã¢ãžã¥ãŒã«ã«ã°ã«ãŒãåãããŠããããããã®ã¢ãžã¥ãŒã«ã¯äœ¿çšåã«å®£èšããå¿ èŠããããŸãã
// , AI b4w.register("game_fish", function(exports, require) { // var m_scenes = b4w.require("scenes"); var m_cfg = b4w.require("config"); var m_data = b4w.require("data"); var m_trans = b4w.require ("transform"); var m_phy = b4w.require ("physics"); var m_obj = b4w.require ("objects"); ⊠var APP_ASSETS_PATH = m_cfg.get_std_assets_path() + "waterhunter/"; exports.new_fishes = function() { //- } }
ã²ãŒã ã®ã¡ã€ã³ã·ãŒã³ãæ¢ã«èªã¿èŸŒãŸããŠããŠãæåã®éããããŒã«ãã«æŸãå¿ èŠãããç¶æ³ãæ³å®ããŸãã 次ã«ãã¡ã€ã³ã¹ã¯ãªããã«æ¬¡ã®è¡ããããŸãã
// AI var m_fish = b4w.require("game_fish"); ⊠// m_fish.new_fishes();
ã¢ãžã¥ãŒã«ãæåã«ãã¹ãããšã¯ãã¢ãã«ãšãšãã«ãã¡ã€ã«ãã¢ããããŒãããããšã§ãã
exports.new_fishes = function() { //- m_data.load(APP_ASSETS_PATH +âfish.jsonâ, fish_loaded_cb,null,true,true); }
m_data.loadé¢æ°ã¯ãJSONãã¡ã€ã«ãããŒãããŸãã äœæ¥ã«ã¯ããã€ãã®åŸ®åŠãªç¹ããããŸãããæåã«ããšã³ãžã³ã®èŠ³ç¹ããã·ãŒã³éå±€ãäœã§ããããæ確ã«ããå¿ èŠããããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠã®ã·ãŒã³ã«ã¯ããã¡ã€ã«ã®ããŠã³ããŒãæã«å²ãåœãŠãããç¹å®ã®ã·ãªã¢ã«çªå·ããããŸãã æãäœãåºæ¬ã¬ãã«ã¯æåã«ããŒããããã·ãŒã³ã§ããããã®çªå·ã¯0ã§ããä»ã®ãã¹ãŠã¯æ¬¡ã®æ°å1,2,3 ... nãåãåããŸãã
ãŒãã¬ãã«ã¯ãä»ãšæ¯èŒããŠç¹ã«éèŠã§ãã ãã¹ãŠã®ã°ããŒãã«èšå®ãNLAããžãã¯ïŒäœ¿çšããå ŽåïŒãç §æãã«ã¡ã©ã¯ãã®ã·ãŒã³ããååŸãããŸãã ãããã£ãŠãåŸç¶ã®ãã¡ã€ã«ã¯ã°ããŒãã«å€æ°ãªãã§ã¢ããªã±ãŒã·ã§ã³ã«ããŠã³ããŒããããæ¢åã®ã«ã¡ã©ãšå æºã¯ç¡èŠãããŸãã
ããŒããããã¬ãã«ã«å²ãåœãŠãããã·ãªã¢ã«çªå·ã«ããããªããžã§ã¯ããèå¥ã§ããŸãã ç°ãªãã·ãŒã³ã«åãååã®ãªããžã§ã¯ãã空ã§ãããšããŸãã ååãšã·ãŒã³çªå·ãæå®ãããšãç®çã®ãªããžã§ã¯ãã«ã¢ã¯ã»ã¹ã§ããŸãã
ããŠã³ããŒãã«æ»ããŸãã
m_data.load(APP_ASSETS_PATH +âfish.jsonâ, fish_loaded_cb,null,true,true);
é¢æ°ã«æž¡ãããæåã®å€ã¯ããã¡ã€ã«ã®ååïŒãfish.jsonãïŒã§ãã ãŸããå®æ°ã䜿çšããŠãã£ã¬ã¯ããªãæå®ããããšããå§ãããŸãã å®éã®ãšããããããžã§ã¯ãã®æçµã¢ã»ã³ããªã®åŸãSDKãã©ã«ããŒå ã®åæ£ãã¡ã€ã«ã¯1ãæã«ã°ã«ãŒãåãããŸãã ãã®ã¢ã¯ã·ã§ã³ã¯èªåçã«è¡ãããããã倱ããããã¡ã€ã«ã«åé¡ããªãããã«ããã®å®æ°ãå¿ èŠã§ãã 以åã¯ãå€æ°ã®ã¹ã³ãŒãã§å®£èšãããŠããŸããã
var APP_ASSETS_PATH = m_cfg.get_std_assets_path() + "waterhunter/";
2çªç®ã®å€ïŒfish_loaded_cbïŒã¯ãããŠã³ããŒãã®å®äºåŸã«åŒã³åºãããé¢æ°ã®ååã§ãã ç¥ã£ãŠããã¹ãããã€ãã®ãã¥ã¢ã³ã¹ããããŸã...
å®éã®ãã¡ã€ã«ã®ããŠã³ããŒãã¯éåæã«å®è¡ãããå ã®ããŒãé¢æ°ã¯ãããŠã³ããŒããå®äºããåã«ã¡ã€ã³ã¹ã¬ããã«å¶åŸ¡ãè¿ããŸãã æ®å¿µãªããšã«ããã®ç¹ã¯SDKã®å ¬åŒããã¥ã¡ã³ãã§ã¯æå®ãããŠããªããããã³ãŒããæ©èœããªãçç±ãèŠã€ããããšãããšãã«ç§ã®æéãå€§å¹ ã«å€±ãããšã«ãªããŸããã
3çªç®ã®å€ïŒnullã§ç€ºãããïŒã¯ãèªã¿èŸŒã¿ããã»ã¹ã«é¢ããããŒã¿ãéä¿¡ããé¢æ°ã®ååã§ãã ããªããŒããŒã®äœæã«åœ¹ç«ã¡ãŸãã ä»ã¯å¿ èŠãããŸããã ãã®èšäºã®ããªããŒããŒã®äœæã«ã€ããŠèªãã§ãã ãã ã
ãšã³ãžã³SDKã®4çªç®ã®å€ïŒtrueã«èšå®ïŒã¯ãwait_complete_loadingãšããŠç€ºãããŸãã å®éãããã¯ä»¥åç§ãæ··ä¹±ãããŸããã å®éããã®ãã©ã¡ãŒã¿ãŒã¯fish_loaded_cbã®åŒã³åºãã®ã¿ãæ åœããŸãã trueã«èšå®ãããšããã¹ãŠã®ãã¡ã€ã«ããŒã¿ãããŒããããåŸã«ã³ãŒã«ããã¯ãå®è¡ãããŸãã False-ããŒãªããžã§ã¯ããããŒãããåŸã®é¢æ°ã®æ©æåŒã³åºãïŒããšãã°ãé³ã¯ããã§ã¯ãããŸããïŒã
æåŸã®å€ã¯ãã·ãŒã³ã«è¿œå ãããæ°ãããªããžã§ã¯ãã®ç¶æ ãæ åœããŸãã ãã®å Žåããããã¯ãªãã«ãªããèŠããªããªããç©çåŠã«åå¿ããŸããã ããã«ãããããããé 眮ããŠã¢ã¯ã·ã§ã³ã®æºåãããããšãã§ããŸãã
ãããã£ãŠããªããžã§ã¯ãã¯ã·ãŒã³ã«ããŒããããŸãã ããã§ããã¹ãŠã®ã¢ã¯ã·ã§ã³ãé¢æ°ã«ãªããŸãã
function fish_loaded_cb (data_id) { //data_id - //- }
ãªããžã§ã¯ãã®ããžãã¯ã«é¢é£ããããã€ãã®ã³ãŒãã¯ãã§ã«ããã§æ³å®ãããŠããŸã-ããã¯æ¬¡ã®èšäºã®ãããã¯ã§ãã ããããç§ã¯äœããè¿œå ããŸãã
ãªããžã§ã¯ãã®äž»ãªã¢ãŒã·ã§ã³ã³ã³ãããŒã«ã¯ãå€æãç©çã®2ã€ã®ãšã³ãžã³ã¢ãžã¥ãŒã«ã«éäžããŠããŸãã
å€æã«ã¯ããªããžã§ã¯ãã®ç§»åãå転ãã¹ã±ãŒãªã³ã°ã®ããã®åºæ¬çãªæ©èœãå«ãŸããŠããŸãã ãããŠãããã¯ãã¬ãŒã ã®å€æŽããšã«å³åº§ã«èµ·ãããŸãã ãããã£ãŠãé£ç¶çã«çæãããã€ãã³ãã䜿çšããå Žåã«ã®ã¿ã移åãå¯èœã§ãã Blend4Web APIã¯ç¬èªã®ã€ãã³ãå®è£ ãæäŸããŠããããšã«æ³šæããŠãã ããã
ç©çåŠã¯ãç©çåŠã«é¢é£ããå€æ°ã®æ©èœãæäŸããã¢ãžã¥ãŒã«ã§ãã ãããã®ããã€ãã¯Blenderã®Charasterèšå®ã®ã¢ã¯ãã£ããŒã·ã§ã³ãå¿ èŠãšããããšã«æ³šæããŠãã ããïŒäžèšåç §ïŒã ããã¯äž»ã«ããã£ã©ã¯ã¿ãŒã®åãã®å¶åŸ¡ã«é¢é£ããŠããŸãã ã¢ã¯ã·ã§ã³ã¯ç©çã«åºã¥ããŠãããããã€ãã³ãã䜿çšããå¿ èŠã¯ãããŸããã
ãã£ã©ã¯ã¿ãŒãåé²ããç°¡åãªäŸãèããŠã¿ãŸãããã
function fish_loaded_cb (data_id) { // data_id var obj_fish = m_scenes.get_object_by_name ("fish", data_id); // m_phy.set_character_move_dir(obj_fish,1, 0); }