#include "hgimg4.as" #packopt name pronama3 #packopt xsize 960 #packopt ysize 640 ; 暮井 慧(プロ生ちゃん) 3D model (C) Pronama LLC ; ; HGIMG4対応 HSP3用スクリプトサンプル ; ※このスクリプト及びサンプルデータは、ライセンス規約のもと ;  自作ソフトで自由にお使い頂けます ; ※詳しくは、 https://kei.pronama.jp/ ; ; 背景キューブマップ素材(res/cubesky.png)は、 ; http://www.custommapmakers.org/ ; で公開されている、Colin Lowndes氏のデータを使用させて頂きました。 ; title "HGIMG4 Test" #define GRP_SKY $8000 gpreset setreq SYSREQ_LOGWRITE,1 ; 終了時にログを出力 setcls CLSMODE_SOLID, $404040 gpload id_model,"res/pronamachan" ; モデル読み込み setscale id_model, 0.025,0.025,0.025 gpaddanim id_model,"WALK00_F" ; アニメーションクリップを設定 gpact id_model,"WALK00_F" ; アニメーションクリップを再生 ;setalpha id_model,128 sx=960:sy=640:id_render=1 buffer id_render,sx,sy,screen_offscreen sdx=512:sdy=512:id_shadow=2 buffer id_shadow,sdx,sdy,screen_offscreen gpusermat id_cubemat, "res/shaders/skybox.vert", "res/shaders/skybox.frag" gpmatprmt id_cubemat, "u_diffuseTexture", "res/cubesky.png", GPOBJ_MATOPT_NOMIPMAP|GPOBJ_MATOPT_CUBEMAP gpmatprm4 id_cubemat, "u_voffset", 0,8.0,0,0 gpbox id_box,-30,-1, id_cubemat setpos id_box,0,3,0 setobjrender id_box, GRP_SKY setobjrender GPOBJ_CAMERA, -1 gpscrmat id_texmat, id_shadow, GPOBJ_MATOPT_NOLIGHT|GPOBJ_MATOPT_NOMIPMAP|GPOBJ_MATOPT_MIRROR gpfloor id_floor, 8,8, -1,id_texmat ; 床ノードを追加 setalpha id_floor,128 gpnull id_camera gpcamera id_camera, 45.0, 1.0, 0.5, 768 camx=0.0:camy=3.0:camz=3.0 gsel 0 *main ; タッチでカメラ位置を動かす if dragmd { ; ドラッグ中 getkey a,1 if a=1 { camx=0.05*(mousex-dragx)+cx camy=0.05*(mousey-dragy)+cz } else { dragmd=0 } } else { ; ドラッグなし getkey a,1 if a { cx=camx:cz=camz dragx=mousex:dragy=mousey dragmd=1 } } ; カーソルキーでカメラ位置を動かす if key&1 : camx -=0.2 if key&4 : camx +=0.2 if key&8 : camz +=0.2 if key&2 : camz -=0.2 ;addang id_model,0,0.02 ; ノード回転 gosub *render await 1000/60 ; 待ち時間 goto *main *render stick key,15+64 if key&128 : end gpusecamera id_camera ; 使用するカメラを選択する gpcnvaxis dx,dy,dz,0,-3,3, 3 ;setpos id_camera, dx,dy,dz setpos id_camera, dx*0.8,dy*0.8,dz*0.8 ;setpos id_camera, camx,-camy,camz ; カメラ位置を設定 gplookat id_camera, 0,0,0 ; カメラから指定した座標を見る gsel id_shadow redraw 0 ; 描画開始 gpdraw GPDRAW_OPT_DRAWSCENE|GPDRAW_OPT_DRAWSCENE_LATE ; シーンの描画 redraw 1 ; 描画終了 gpusecamera GPOBJ_CAMERA ; 使用するカメラを選択する setpos GPOBJ_CAMERA, camx,camy,camz ; カメラ位置を設定 gplookat GPOBJ_CAMERA, 0,1.8,0 ; カメラから指定した座標を見る gsel id_render redraw 0 ; 描画開始 gpdraw ; シーンの描画 redraw 1 ; 描画終了 gsel 0 redraw 0 ; 描画開始 gmode 0 pos 0,0:celput id_render ;pos 0,0:celput id_shadow,0,0.25,0.25 color 255,255,255 pos 8,8:mes "HGIMG4 sample" redraw 1 ; 描画終了 return