tamane_tree.hsp

sample\hgimg4\tamane_tree.hsp » Plain Format

#include "hgimg4.as"
#include "mod_gputil.as"

	;	gpnodeinfo sample
	;	珠音(たまね)3D modelのモデル階層を表示
	;	(mod_gputilモジュールのgptree_getを使用することで全階層を取得できます)
	;	階層の一部(asi_L_)を取り出し座標を取得
	;

	title "HGIMG4 Test"

	gpreset

	setcls CLSMODE_SOLID, $404040
	gpload id_model,"res/tamane2"		; モデル読み込み
	sc = 0.01				; モデルのスケール
	setscale id_model, sc, sc, sc

	gpfloor id_floor, 8,8, $00ffff		; 床ノードを追加

	gpbox id_box, 0.2

	setpos GPOBJ_CAMERA, 0,1,5		; カメラ位置を設定

	gpact id_model

	button "TREE",*view_tree
	nodename = "asi_L_"
	infonode = 0
	x=0.0:y=0.0:z=0.0
*main
	stick key,15
	if key&128 : end

	redraw 0			; 描画開始

	;	カーソルキーでカメラ位置を動かす
	if key&1 : addpos GPOBJ_CAMERA, -0.2, 0
	if key&4 : addpos GPOBJ_CAMERA, 0.2, 0
	if key&8 : addpos GPOBJ_CAMERA, 0, 0 , 0.2
	if key&2 : addpos GPOBJ_CAMERA, 0, 0 , -0.2

	gplookat GPOBJ_CAMERA, 0,1.2,0		; カメラから指定した座標を見る

	;addang id_model,0,0.02		; ノード回転
	gpdraw				; シーンの描画

	;	特定の階層をノードとして取り出す
	gpnodeinfo infonode,id_model, GPNODEINFO_NODE, nodename
	if infonode>0 {
		getpos infonode,x,y,z
		setpos id_box,x*sc,y*sc,z*sc
		color 255,255,255
		pos 80,0:mes nodename+"("+x+","+y+","+z+")"
	}

	redraw 1			; 描画終了
	await 1000/60			; 待ち時間

	goto *main

*view_tree
	sdim s1,256
	gptree_get s1,id_model
	dialog s1
	goto *main