sample\pronama3d\pronama3.hsp » Plain Format
#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