------------------------------------------------------------------------------
HGIMG4 REFERENCE MANUAL                High Performance Graphic Image Plugin  
grog^Ct@X      copyright 2001-2017 (c) onion software  
------------------------------------------------------------------------------

E͂߂

	HGIMG4́AHot Soup Processor ver3.5ȍ~ƂƂɎgp邱ƂŁA
	ʂ̕`ɊւlXȋ@\g񋟂܂B

	HGIMG4̓

	EOpenGL/ES܂DirectX9ɂ`AVF[_[T|[g
	EV[ǗƓꂽGW(Bullet)T|[g
	EFBX`̃ft@Cǂݍ݁AAj[VT|[g
	E}`eNX`Aov}bvAnCg}bvALODT|[g
	EtHgf[^(TTF)̃_OT|[g
	EItXN[_Oyъe|XgGtFNgT|[g
	EWindowsłȂLinux,iOS,Android,WebGLł̓T|[g
	EHSPyHSP3DishƓl̃CZXKAI[v\[X 


E

	HGIMG4́AOpenGLłDirectX9(angle)łI邱Ƃł܂B
	OpenGLł́AWindows7ȍ~ŁAOpenGLo[W3.1ȏオCXg[ꂽœ삵܂B
	DirectX9(angle)ł́AWindows7ȍ~ŁADirectX9ŐVł̃^CCXg[ꂽœ삵܂B
	DirectX9(angle)ł́AsɂĈȉDLLKvƂ܂B
	(DLĹAHSPCXg[tH_ɕtĂ܂B
	[U[삵AvP[Vzzꍇ́ADLLzz
	Kv܂)

		d3dcompiler_47.dll	ǉDLL
		libEGL.dll		ǉDLL
		libGLESv2.dll		ǉDLL

	DLĹAOpenGLłgpꍇ͕Kv܂B

	HGIMG4́Aȉ̂悤ȃt@Cō\Ă܂B

		hsp3gp.exe (OpenGLsp^C)
		hsp3gpdx.exe (DirectXsp^C)

		docs/hgimg4.txt (̃t@C)
		commontH_ (HGIMG4wb_t@C)
		hsphelptH_ (HGIMG4wvt@C)
		runtimetH_ (HGIMG4JX^^C)
		sampletH_ (HGIMG4TvXNvg & f[^)

	HGIMG4́AHSP3Dish̏ʃ^CƈʒutĂ܂B
	HSP3Dish̋@\͓ŁA@\ȕ`@\Ă܂B
	ʏHSP3Dish̃XNvg𓮍삳邱Ƃ\łB
	}`vbgtH[ƂāAȉ̊T|[gĂ܂B

		Windows 7ȍ~(OpenGL)AXPȍ~(DirectX9)
		Android 2.3.3ȍ~
		iOS 6ȍ~
		Raspberry Pi (raspbian)
		SDL/OpenGLT|[gLinux
		WebGL/html5T|[gewebuEU

	AndroidAiOSł́AHSP3DishƓlC++R[hϊ@\ɂ
	lCeBuȃR[h𐶐AXgAAvƂĂo^\łB


Egp@

	HGIMG4gpXNvg쐬ꍇɂ́AXNvg̐擪

	#include "hgimg4.as"

	ƂsǉĂB
	ȏŁAHSP̋@\gÃt@XŐĂ閽߂
	gp邱Ƃł悤ɂȂ܂B

	HGIMG4 DirectX9Ń^Cgpꍇɂ́A

	#include "hgimg4dx.as"

	XNvg̐擪ɋLqĂB

	#include "hgimg4.as"

	Lqꍇ́AOpenGLŃ^Cgp܂B
	ǂ̃^Cgpł@\ɈႢ͂܂B

	܂ŏɁAt̃TvXNvgsĂ݂ĂB
	gꂽ@\̊ȒPȎgp邱Ƃł͂łB
	TvXNvǵAHSPCXg[tH_ȉsample/hgimg4
	ɗpӂĂ܂B


E\[XtH_ɂ

	HGIMG4ł́ANɎsXNvgƓtH_ɂ
	uresvtH_Kvȃ\[Xǂݍ݂܂B
	\[Xt@ĆAusample/hgimg4/resṽtH_Ɋ܂܂Ă܂B
	ȉ̃t@ĆAN̂߂ɕKvł̂ŁAst@C쐬ȂǂKĂĂB

	res/font.gpb
	res/shaders/colored.frag
	res/shaders/colored.vert
	res/shaders/font.frag
	res/shaders/font.vert
	res/shaders/lighting.frag
	res/shaders/lighting.vert
	res/shaders/skinning.vert
	res/shaders/skinning-none.vert
	res/shaders/sprite.frag
	res/shaders/sprite.vert
	res/shaders/spritecol.frag
	res/shaders/spritecol.vert
	res/shaders/terrain.frag
	res/shaders/terrain.vert
	res/shaders/textured.frag
	res/shaders/textured.vert


Eӓ_

	HGIMG4́AODLLt@CɂgvOCł͂܂B
	HSP3DISH̋@\^Ct@CƂĒ񋟂Ă܂B
	KAHGIMG4̃^CɑΉo[W̃RpC
	(hspcmp.dll)XNvgGfB^gpB
	܂AHSP3͎s^CɑΉR[hWFl[^[(hspcmp.dll)
	gpB(HSP3.5ȏ𐄏)

	DirectX9Ń^C̎st@C쐬ɂ́Aud3dcompiler_47.dllv
	ulibEGL.dllvulibGLESv2.dllv3t@Cst@CƓtH_
	KvƂȂ܂̂ŒӂĂB


E߈ꗗ(C)

	setcls mode,color,tex				ʏݒ
	gpviewport x,y,sx,sy				r[|[gݒ
	setborder sx,sy,sz,option			IuWFNgL͈͐ݒ
	gpgetlog var					HGIMG4G[O擾

	gpreset	option					V[`
	gppostefx  postid,opt1,opt2			|XgGtFNg
	gpuselight objid				CgIuWFNg̐؂ւ
	gpusecamera objid				JIuWFNg̐؂ւ
	gpusescene sceneid				V[̐؂ւ

	gpobjpool start,num				IuWFNgID̐ݒ
	delobj objid					IuWFNg̔j
	gpsetprm objid,prmid,value			IuWFNg̃RAp[^[ݒ
	gpgetprm var,objid,prmid			IuWFNg̃RAp[^[擾
	setobjname objid,"name"				IuWFNg̃m[hݒ肷
	getobjname var,objid				IuWFNg̃m[h擾
	setobjmode id,mode,sw				IuWFNg̃[hݒ
	setcoli id,mygroup,enegroup			IuWFNg̃RWݒ
	getcoli val,id,distance				IuWFNg̃RW
	findobj exmode,group				IuWFNg
	nextobj val					̃IuWFNg

	gpcolormat var,color,opt			J[}eA̐
	gptexmat var,"file",opt				eNX`}eA̐
	gpusermat var,"vsh","fsh","defs",color,opt	JX^}eA̐
	gpmatprm objid,"name",x,y,z			}eÃp[^[ݒ
	gpmatprm objid,"name",value			}eÃp[^[ݒ(2)
	gpmatprm objid,"name",x,y,z,w			}eÃp[^[ݒ(3)
	gpmatstate objid,"name","value"			}eÃXe[gݒ

	gpbox var,size,color,matobj			m[h𐶐
	gpfloor var,sizex,sizey,color,matobj		m[h𐶐
	gpplate var,sizex,sizey,color,matobj		m[h𐶐
	gpload var,"file","name"			3Dfm[h𐶐
	gpspr var,bufid,celid,gmode			2DXvCgm[h
	gpnull var					km[h𐶐

	gplight id,opt,range,inner,outer		Cgm[hݒ
	gpcamera id,fov,aspect,near,far			Jm[hݒ

	gpclone var,objid				m[h𕡐
	setobjmode objid,value,mode			IuWFNg̃[hݒ
	setalpha objid,value				IuWFNg̓x(l)ݒ
	gplookat objid,x,y,z				wWɌăm[h]

	gppbind objid,mass,friction			m[hɕWIȕݒ
	gppset objid,prmid,x,y,z			m[h̕p[^[ݒ
	gppapply objid,action,x,y,z			m[hɕIȗ͂Kp

	celputm vxpos,vypos,vcelid,bufid,count		Z܂Ƃ߂ĕ`悷
	gpdraw option					V[̑SIuWFNg`悷

	gpaddanim objid,"name",start,end,option		Aj[VNbvǉ
	gpact objid,"name",option			Aj[VNbvĐ/~
	gpgetanim var,objid,index,prmid			Aj[VNbvݒ擾
	gpsetanim objid,index,prmid,value		Aj[VNbvݒXV


E߈ꗗ(IuWFNg)

	getpos id,x,y,z					m[hW擾
	setpos id,x,y,z					m[hWݒ
	addpos id,x,y,z					m[hWZ
	getposi id,x,y,z				m[hW擾(l)

	setang id,x,y,z					m[h]ݒ
	setangr id,x,y,z				m[h]ݒ(l)
	addang id,x,y,z					m[h]Z
	addangr id,x,y,z				m[h]Z(l)

	getscale id,x,y,z				m[h{擾
	setscale id,x,y,z				m[h{ݒ
	addscale id,x,y,z				m[h{Z
	getscalei id,x,y,z				m[h{擾(l)

	getdir id,x,y,z					m[hړʂ擾
	setdir id,x,y,z					m[hړʂݒ
	adddir id,x,y,z					m[hړʂZ
	getdiri id,x,y,z				m[hړʂ擾(l)

	getwork id,x,y,z				m[h[Nl擾
	setwork id,x,y,z				m[h[Nlݒ
	addwork id,x,y,z				m[h[NlZ
	getworki id,x,y,z				m[h[Nl擾(l)

	getwork2 id,x,y,z				m[h[Nl2擾
	setwork2 id,x,y,z				m[h[Nl2ݒ
	addwork2 id,x,y,z				m[h[Nl2Z
	getwork2i id,x,y,z				m[h[Nl2擾(l)

	getcolor id,x,y,z				m[hRGBJ[擾
	setcolor id,x,y,z				m[hRGBJ[ݒ
	addcolor id,x,y,z				m[hRGBJ[Z
	getcolori id,x,y,z				m[hRGBJ[擾(l)


E߈ꗗ(⏕)

	selpos id					ړWMOCɐݒ
	selang id					]pxMOCɐݒ
	selscale id					XP[MOCɐݒ
	seldir id					ړʂMOCɐݒ

	objsetf3 x,y,z					I𒆂MOCݒ
	objaddf3 x,y,z					I𒆂MOCZ

	objgetfv fv					I𒆂MOC擾
	objsetfv fv					I𒆂MOCݒ
	objaddfv fv					I𒆂MOCZ

	fvset fv,x,y,z					xNgݒ
	fvseti fv,x,y,z					lxNgݒ
	fvadd fv,x,y,z					xNgZ
	fvsub fv,x,y,z					xNgZ
	fvmul fv,x,y,z					xNgZ
	fvdiv fv,x,y,z					xNgZ
	fvdir fv,x,y,z					xNg]
	fvmin fv,x,y,z					xNgől
	fvmax fv,x,y,z					xNgŏl
	fvouter fv,x,y,z				xNgO
	fvinner fv,x,y,z				xNg
	fvface fv,x,y,z					Wpx𓾂
	fvunit fv						xNgK
	fsin fval,rot					TC߂
	fcos fval,rot					RTC߂
	fsqr fval,prm					߂
	froti fval,prm					lpxlɕϊ

	fv2str fv					xNg𕶎ɕϊ
	str2fv fv,"x,y,z"				xNgɕϊ


EHGIMG4̐

	HGIMG4́AHSP3Dish^Cg`ŎĂ܂B
	HSP3Dish߂ׂăT|[gĂقA̊gsȂĂ܂B
	AHSP3Dishɂ鐧(COMIuWFNgAezuIuWFNg̎gpsAo͂͒P̃XN[Ȃ)
	lɔ܂B{Iȕ@AvOHSP3ƓlłB
	HSP3DishɂĂ̏ڍׂ́AHSP3Dish vO~O}jAE{dlKCh(hsp3dish_prog.htm)
	QƂĂB


EHSP3.54łƂ̈Ⴂ

	HSP3.55łł́A܂łHGIMG4傫CsȂĂ܂B
	苭͂Ŏg₷Ȃ悤Ae@\܂B
	ȑÕo[W̏ʌ݊œ삷悤݌vĂ܂A
	ꕔ̋@\œ삪قȂꍇ܂̂ŁAߋɍ쐬XNvg
	삳ۂɂ͂ӂB
	HSP3.55łŒǉύXꂽڂ̊Tv͈ȉ̒ʂłB

	EVXë艻ƃG[O擾

	HGIMG43D`GWłgameplay3D̃Abvf[g𔽉f܂B
	3Df̃Ro[^[Af̕\AAj[VĐȂǂ̃VXe萫サĂ܂B
	܂Af[^̕sG[ꍇɂłG[\sȂ悤CA
	ɏڍׂȃG[O擾邽߂gpgetlog߂ǉ܂B

	EVVF[_[VXe

	ȑÕo[WVF[_[̍\ύXA莩Rx̍VXeɂȂĂ܂B
	(ȑÕo[WƃVF[_[`ςĂ̂̂łӂ)
	[U[쐬Ǝ̃VF[_[(GLSL)\Ɋpł悤gĂ܂B
	gcopycelputȂǁA2Dn̕`施߂ŎgpVF[_[RɊ蓖Ă\ɂȂ܂B

	EAj[VNbv̍쐬

	3Df̃Aj[Vf[^NbvƂĎRɎoĎgp邱Ƃł܂B
	̃Aj[V؂ւA[ṼuhȂǑʂȏ\ɂȂ܂B

	E_Oobt@ƃ|XgGtFNg@\

	buffer߂ō쐬ItXN[_Oobt@Ƃĕ`悷邱Ƃł܂B
	ɂ背_OpCvC\zāA|XgGtFNg(ʑŜ̌)Ȃǂɗp邱Ƃ\łB
	TvƂĕWIɎgpł|XgGtFNgƂāA
	ZsAtB^AO[XP[tB^[Au[(ڂ)AUCNA
	֊soAÂtBʁAO[()Ȃǂ̃VF[_[pӂĂ܂B

	EvbgtH[T|[g̒ǉ

	Windows,Android,WebGLɉāALinux,Raspbian,iOSł̓T|[g܂B
	LvbgtH[HGIMG4̍xȋ@\𗘗p邱Ƃł܂B
	܂A[VZT[(xEWC)̒l擾\ɂȂĂ܂B
	(Android,iOS)

	Eaddscale߂̕ύX

	]̃o[W(3.54)ł́Aaddscale߂͌̃XP[ɑ΂ZƂȂĂ܂B
	HGIMG3ɏXP[l̉ZɕύXĂ܂B
	ɂA]̃XNvgaddscale߂gpĂꍇACKvƂȂ܂B

	Egetcoli߂̓ύX

	]̃o[W(3.54)܂ł́Agetcoli߂ŎgpՓˌo͈(distance)
	̃fՓ˔͈͂ɑ΂{(Βl)ɂȂĂ܂B
	5ȍ~ł́AHGIMG3Ƌʂ̎dlƂȂ悤Ƀf̒SWɑ΂锼a(l)ɏC܂B
	ɂA]̃XNvggetcoli߂gpĂꍇACKvƂȂ܂B
	]Ɠl̓ɂ邽߂ɂ́AՓˌo͈(distance)Ƀ}CiXlw肵ĂB
	]1.5Ǝw肳Ăꍇ-1.5Ǝw肷邱ƂɂAɂȂ܂B

	Ȇs̏CA@\CȂ

	findobj߂̑Qp[^PRMSET_MYGROUPłȂsC(HGIMG3Ɠ)
	gpobjpool߂̑Qp[^uő劄蓖Đvł͂ȂuIID+1vɂȂĂsC
	Windows^C̎st@CŕW̃EChE^CgoȂ悤ɏC
	Windows^C̓VXeϐhwnd,hinstԂ悤ɏC


EHGIMG3Ƃ̈Ⴂ

	HGIMG4ł́A{IHGIMG3ƃ\[XR[ȟ݊͂܂B
	AHGIMG3ɐGꂽƂ郆[U[ł΁Aߑ̌nVXeIɌpĂ
	_ߔrIeՂɈڍs邱Ƃłł傤B

	HGIMG3Ƃ̎ȈႢ͈ȉ̒ʂłB

	EHGIMG3ł̓f𐶐āAIuWFNgɊ蓖ĂĂ܂AHGIMG4ł
	@IuWFNg(m[hIuWFNg)𒼐ڐĔzu`ɂȂ܂B
	ECg̔fAeNX`AFAݒȂǂ̏̓}eAIuWFNgƂ
	@AIuWFNgɊ蓖Ă`ɂȂ܂B
	EHGIMG3setefx߂ɂw肳Ă}eA̐ݒ͗pł܂B
	EHGIMG4OpenGLɂEWngpĂ܂BYZ̐HGIMG3ƈقȂ܂
	EHGIMG4ł̓IuWFNg̉]ł̓NH[^jI`ŕێĂ܂B
	@HGIMG3ƓlX,Y,Z]̊px^邱Ƃ\łAHGIMG3ƈقȂ]pɂȂ
	@\܂B
	Ef𕡐zu悤ȏꍇ́AN[(gpclone)𗘗p邱Ƃ܂B


Eƕ`̕@

	ȉ̎菇ɏ]čsȂĉB

		gpreset				; hgimg̏

	gpreset߂́AVXeSsȂ߂łB
	͂łAxłsȂƂ\łB

	IAło^ĂIuWFNg\\
	ԂɂȂ܂B
	HGIMG4ł́A`ȉ̂悤ȃ[vōsȂ܂B

	;------------------------------------------------------------------
	*main
		;	`惁C
		;
		redraw 0			; `Jn(ʃNA)

		;	
		;	e`sȂ
		;	

		redraw 1			; `I
		await 1000/60			; ԑ҂(60t[/b)
		goto *main
	;------------------------------------------------------------------

	ʂ̏Ɋւ\[X́Aredraw 0ŕ`Jnm点āA
	redraw 1ɂ`I^C~Om点悤ɂĂB
	ʏHSP3Ƃ͈ႢAuredraw 0vw肷邱ƂɂAXN[
	UNA܂B

	`JnĂAboxAmes̕`施߂RɋLq邱Ƃł܂B
	̌Aawait߂Ŏԑ҂(EFCg)܂Buawait 10v̏ꍇ́A
	Œł10ms̑҂Ԃ܂B

	̃[́AHSP3DishƓlłB
	2D`Ɏgp\ȕ`施߂ƎdlɂĂA{IHSP3DishƓɂȂĂ܂B
	T|[gĂ閽߂̏ڍׂ́Asupport_cmds.txtQƂĂB


E3D̊Tv

	HGIMG4́AVvŏ_̂3D`VXe񋟂܂B
	dvȍ\PʂAum[hIuWFNgvɂȂ܂B

	um[hIuWFNgv́AHGIMG4̑ΏۂƂȂ̂ŁA
	um[hv܂́uIuWFNgvƂĂ΂܂B
	um[hIuWFNgv́A3DE\vfׂĂ܂łA
	ꂼꂪƎ̔ԍ(ID)Ă܂B

	m[hIuWFNǵAȉ̏Ă܂B

		ʔԍ(ID)
		m[h(Name)
		X,Y,ZW(Pos)
		X,Y,Z](Ang)
		X,Y,Z{(Scale)
		X,Y,Zړ(Dir)
		R,G,BJ[(Color)
		[Nl(X,Y,Z,W)(Work,Work2)
		}eA(MatID)
		(Physics)
		J(_)ݒ(Camera)
		Cg()ݒ(Light)
		G~b^[(p[eBN)ݒ(Emitter)

	uV[v́Áum[hIuWFNgv܂߂EŜw܂B
	HGIMG4ł́AuV[vɓo^ꂽum[hIuWFNgv_O(`)
	ΏۂƂȂ܂B
	ʓIȃvO̗ƂẮAȉ̂悤ɂȂ܂B

		gpreset߂ŃV[ŜZbg
			
		Kvȃm[hIuWFNgV[ɓo^
			
		m[hIuWFNg̐ݒK؂ɍsȂ
			
		gpdraw߂ŃV[̕`sȂ

	V[Ƀm[hIuWFNgǉ邽߂̖߂ƂĈȉpӂĂ܂B

		gpbox var,size,color,matobj			m[h𐶐
		gpfloor var,sizex,sizey,color,matobj		m[h𐶐
		gpplate var,sizex,sizey,color,matobj		m[h𐶐
		gpload var,"file","name"			gpbfm[h𐶐
		gpnull var					km[h𐶐
		gpclone var,objid				m[h𕡐

	ꂼ̖ߏڍׂ́A߂̃wv(F1L[)QƂĂB
	V[ɒǉꂽm[hIuWFNgID́AɎw肳ꂽϐɑ܂B
	ȍ~́Am[hIuWFNgIDĊe𑀍삷邱Ƃ\łB

	ꂽIuWFNǵAʏ(0,0,0)̍Wɔzu܂B
	3DẂAEWngpĂ܂BZWl傫قǎOɁA
	YW傫قǓVɔzu܂B

	IuWFNg̍WApxAXP[ݒ肷邽߂̊{IȖ߂͈ȉɂȂ܂B

		setpos id,x,y,z		X,Y,ZW(Pos)ݒ
		setang id,x,y,z		X,Y,Z](Ang)ݒ
		setangr id,x,y,z	X,Y,Z](Ang)ݒ(l)
		setscale id,x,y,z	X,Y,Z{(Scale)ݒ

	m[hIuWFNgIDx,y,zp[^[(lgp\)ɂĎw肵܂B

		:
		setpos 3, 5, 1.2, 0.5

	̗ł́Am[hIuWFNgID3̂̕W( 5.0, 1.2, 0.5 )̈ʒuɐݒ肵܂B
	setang߂ł́AIuWFNǧĂX,Y,Zpxw肵ĉ]sȂ܂B
	(px̒Pʂ̓WA(1Ń*2)ɂȂ܂)
	܂Âߊpx𐮐lŐݒ肷邱Ƃ̂łsetangr߂pӂĂ܂B
	̏ꍇ́A256ň(360x)̒PʂŎwsȂ܂B
	(00xA6490xA128180xcƂȂ܂B)
	lɂAȉ̏ݒ肷邽߂̖߂pӂĂ܂B

		setdir id,x,y,z		X,Y,Zړ(Dir)ݒ
		setcolor id,x,y,z	R,G,BJ[(Color)ݒ
		setwork id,x,y,z	[Nl(X,Y,Z)ݒ
		setwork2 id,x,y,z	[N2l(X,Y,Z)ݒ

	X,Y,Zړ(Dir)̓IuWFNg̎ړ[h(OBJ_MOVE)IꂽۂɎQƂ
	ړʂɂȂ܂BR,G,BJ[(Color)́ACgȂǈꕔ̃IuWFNgŐFݒ肷
	ۂɎgp܂B
	[NlA[Nl2́A[U[RɎgpł鐔li[pɗpӂĂ܂B

	ڒlݒ肷邾łȂZsȂadd`n̖߂pӂĂ܂B

		addpos id,x,y,z		X,Y,ZW(Pos)Z
		addang id,x,y,z		X,Y,Z](Ang)Z
		addangr id,x,y,z	X,Y,Z](Ang)Z(l)
		addscale id,x,y,z	X,Y,Z{(Scale)Z

	́AƂƐݒ肳Ălɑ΂āAw肵lZ܂B
	add`n̖߂́Aset`n̖߂Ɠl̎ނpӂĂ܂B

	܂Aݒς݂̏擾邽߂ɁAget`n̖߂pӂĂ܂B

		getpos id,x,y,z		X,Y,ZW(Pos)擾
		getscale id,x,y,z	X,Y,Z{(Scale)擾
		getdir id,x,y,z		X,Y,Zړ(Dir)擾
		getwork id,x,y,z	[Nl(X,Y,Z)擾
		getwork2 id,x,y,z	[N2l(X,Y,Z)擾

	̖߂ł́Ax,y,zɓǂݏo̕ϐw肵܂B

		:
			; JXYZWϐa,b,cɓǂݏo
			getpos GPOBJ_CAMERA,a,b,c

	̗ł́AϐaXWAϐbYWAϐcZW
	ꂼ^ő܂B
	lŃp[^[擾ꍇ́Aȉ̖߂gp܂B

		getposi id,x,y,z	X,Y,ZW(Pos)𐮐lŎ擾
		getscalei id,x,y,z	X,Y,Z{(Scale)𐮐lŎ擾
		getdiri id,x,y,z	X,Y,Zړ(Dir)𐮐lŎ擾
		getworki id,x,y,z	[Nl(X,Y,Z)𐮐lŎ擾
		getwork2i id,x,y,z	[N2l(X,Y,Z)𐮐lŎ擾

	ŌɁuivtꂽ߂́Alŕϐɑ܂B
	W𐮐݂̂ňꍇAsȂꍇɎgp
	Ƃł܂B
	]̏擾ɂ͒ӂKvłB3Dm[hIuWFNǵAI
	]NH[^jI`ێĂAmX,Y,Z̉]px
	߂邱ƂłB̂߁Asetangaddang߂Ȃǉ]̐ݒł́A
	X,Y,Zpxw肷邱Ƃł܂A擾ɊւĂ̓T|[gĂ܂B


E2D`̊Tv

	HGIMG4́A2D`ɊւlXȋ@\pӂĂ܂B
	2D`̕@́A傫2̃JeSɕ܂B

	Eڕ`

		mes߁Aboxf߂ȂHSP3DishT|[gĂWI
		`施(celput,gcopy,gzoomȂ)𗘗p\łB
		redraw 0`redraw 1܂ł̕`惋[v(1t[̕`P)
		Lq邱Ƃŕ`悪s܂B

	EXvCgIuWFNgɂ`

		IuWFNg1ƂăV[ɃXvCgIuWFNg
		o^ĊǗ邱Ƃł܂B
		XvCgIuWFNǵA3D̃m[hIuWFNgƓl
		IuWFNgIDUAWpxA{Ȃǂݒ肷邱Ƃ\łB

	KvɉāAg₷@IĂB
	Ƃ΁Awiɑ傫2D摜\ꍇgcopy߂Ȃǂ̒ڕ`A
	GLN^[ȂǑʂɓoꂷ̂̓XvCgIuWFNgƂ
	prU蕪邱Ƃł܂B

	XvCgIuWFNg𐶐ꍇ́Agpspr߂gp܂B

		gpspr var,bufid,celid,gmode			2DXvCg𐶐

	bufidœǂݍ܂ꂽ摜̃obt@IDAcelidŃZIDAgmodeō[hw肵
	XvCgIuWFNg𐶐܂B
	ꂽIuWFNgIDvarŎw肳ꂽϐɑ܂B

	ꂽXvCgIuWFNǵAʏ(0,0)̍Wɔzu܂B
	2DẂAXN[W(ʂ̃hbgƂP΂PɑΉl)ŊǗA
	ʂ̍オ(0,0)̍WƂȂ܂B

	o^ꂽXvCgIuWFNǵAgpdraw߂ŃV[̕`悪sȂ^C~O
	Iɕ`悳܂B̍ۂɂ́Aݒ肳ꂽX,Y{AZ]pxKp܂B
	XvCgIuWFNǵAIuWFNg蔻(RW)A[hɂ鐧Ȃ
	lXȋ@\p邱Ƃł܂B


EIuWFNg̃[hݒ

	\IuWFNg(m[hIuWFNgAXvCgIuWFNg)ɂ́AON/OFF\
	[hݒ肪pӂĂ܂B

		setobjmode id,mode,sw			IuWFNg̃[hݒ

		ObjID    : IuWFNgID
		mode     : [hl
		sw       : ݒXCb`

	sẃAȉ̂悤ɓ삵܂B

		sw = 0 : w肵[hlǉ
		sw = 1 : w肵[hl폜
		sw = 2 : w肵[hlݒ

	[hl͈ȉ̒I܂B

		x             |        e
		--------------------------------------------------------------
		OBJ_HIDE             \(ʂ)
		OBJ_CLIP             3DNbsOLɂ
		OBJ_XFRONT           ʑ(ɉʂɐʂ)
		OBJ_WIRE             C[t[ŕ`悷
		OBJ_MOVE             ړsȂ(XYZړʂQƂ)
		OBJ_FLIP             {[_[̈Ŕ]
		OBJ_BORDER           {[_[̈Lɂ
		OBJ_2D               2DXvCg
		OBJ_TIMER            ^C}[Lɂ
		OBJ_LATE             ォ`悳(IuWFNgp)

	̍ڂ𓯎ɑIꍇ́AuOBJ_LATE|OBJ_MOVEv̂悤
	u|vŋ؂Ďw肷邱Ƃł܂Bw肵Ȃꍇ́A0ɂ邩
	ȗč\܂B

		:
		setobjmode id, OBJ_MOVE, 0

	̗ł́AϐidŎw肳IuWFNgɁAOBJ_MOVE(ړsȂ)ݒ
	ǉ܂BɂÃIuWFNgXYZړ(setdir߂Őݒ肳)
	ƂɎIɈړ悤ɂȂ܂B


EJ̐ݒ

	J(_)́A3DV[`悷_̍W̂łB
	J́Am[hIuWFNg1ƂĈAŗL̃IuWFNgIDĂ܂B

	V[ZbgƁAftHg̃Jzu܂B
	ftHg̃Jɂ́AGPOBJ_CAMERA}NgpăANZX邱Ƃł܂B

		:
		setpos GPOBJ_CAMERA, 0,1,5		; Jʒuݒ

	̗ł́AftHg̃J(0,1,5)̍Wɐݒ肵܂B
	J3DV[邽߂̎_WƂȂAm[hIuWFNg̉]ɂ莋_
	肳܂Bw肳ꂽWJ猩邽߂̊pxݒ肷邱Ƃ̂ł
	gplookat߂pł܂B

		:
		gplookat GPOBJ_CAMERA, 0,1,0		; J_ݒ

	̗ł́A(0,1,0)̍W邽߂̊pxJɓKp܂B

	ftHg̃JłȂAV[ɃJ𕡐ݒ肵Đ؂ւ邱Ƃ\łB

		:
		gpnull id_camera			; km[h𐶐
		gpcamera id_camera, 45, 1.5, 0.5, 768	; JƂĐݒ肷
		gpusecamera id_camera			; gpJI
		setpos id_camera, 0,20,20		; Jʒuݒ肷

	V[ɔzuꂽJ́Agpusecamera߂ɂ؂ւ邱Ƃł܂B
	Ǝ̃J𐶐邱ƂɂAFOV(p)Z͈̔(ZNbsO͈)Ǝ
	ݒ肷邱Ƃł܂B


ECg̐ݒ

	Cg()́A3DV[ɔzu\ȏƖ̏łB
	CǵAm[hIuWFNg1ƂĈAŗL̃IuWFNgIDĂ܂B

	V[ZbgƁAftHg̃Cgzu܂B
	ftHg̃Cgɂ́AGPOBJ_LIGHT}NgpăANZX邱Ƃł܂B

		:
		setcolor GPOBJ_LIGHT, 1,1,1		; CgJ[ݒ
		setdir GPOBJ_LIGHT, 0.5,0.5,0.5		; ArGgJ[ݒ

	̗ł́AftHg̃CgF(1,1,1)ɐݒ肵܂B
	F̐ݒ́A0`1̒lRGBƂɎw肷邱Ƃł܂B1͍ő̋PxƂȂ邽߁A
	RGB̒iKŕ\ƁA(R=255,G=255,B=255)ɂȂ܂B
	Cg̏ꍇ́AsetdirɂArGg()J[ݒ肵܂B
	̗ł́A(R=128,G=128,B=128)ArGg()J[ɂȂ܂B
	Cg̉]pxύX邱ƂŁAƖ𓖂Ăς܂B
	X|bgCgA|CgCgݒ肳Ăꍇ́ACg̍Wp[^[vf
	PƂȂ܂B(݂̃o[Wł́AX|bgCgA|CgCg̓T|[gĂ܂)

	ftHg̃CgłȂAV[ɃCg𕡐ݒ肵Đ؂ւ邱Ƃ\łB

		:
		gpnull id_alight			; km[h𐶐
		gplight id_alight, GPOBJ_LGTOPT_NORMAL	; CgƂēo^
		gpuselight id_alight			; ftHg̃Cgɐݒ

	V[ɔzuꂽCǵAgpuselight߂ɂ؂ւ邱Ƃł܂B


ERWO[vݒƏՓˌm

	IuWFNgƂɁARWO[vݒ肷邱ƂɂA
	ʂʂ₷AՓˌmȂǂ̋@\pł悤ɂȂ܂B

	setcoli id,mygroup,enegroup		IuWFNg̃RWݒ

		id       : IuWFNgID
		mygroup  : O[vl
		enegroup : Փ˂oΏۂƂȂO[vl

		IuWFNgɑ΂ăRWݒ肵܂B
		O[vĺA
		1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768c
		̒1I\łB(32rbgl܂Ŏw\)

	RWO[vݒ肳ĂIuWFNgḿAgetcoli߂ɂ
	w͈͓̏Փ˂oł悤ɂȂ܂B

	getcoli var,id,distance			IuWFNg̃RW

		var      : ʂϐ
		id       : IuWFNgID
		distance : Փ˂o͈(l)

		w肵IuWFNgRWƂɁA
		IuWFNgՓ˂ĂʂȃIuWFNgID𒲂ׂ܂B
		distancéAՓ˂͈(a)floatlŎw肵܂B
		Փ˂oꂽꍇ́AϐɃIuWFNgID܂B
		Փ˂oȂꍇ́A-1܂B

	RWO[vݒƏՓˌḿA3Dm[hIuWFNgA2D̃XvCgIuWFNg
	ǂłpł܂BA3Dm[hIuWFNgƃXvCgIuWFNgm
	WnقȂ邽ߏՓ˂͌m܂B


E̐ݒ

	HGIMG4ł́ABullet Physics Libraryɂ镨3Dm[hIuWFNgɓĂ܂B
	V[ɔzuꂽ̂ɕݒ肷邱ƂŁA@ɏ]sȂ܂B
	̑ΏۂƂȂ̂́Am[h(gpboxŐ)Am[h(gpfloorŐ)Am[h(gpplateŐ)
	ygpbfm[h(gploadŐ)ƂȂ܂B
	m[hIuWFNg𐶐iKł́Aݒ͍sȂĂ܂B
	ݒsȂꍇ́Agppbind߂gpĂB

		gppbind objid,mass,friction		m[hɕWIȕݒ

	ŏɁAgppbind߂ɂ{IȕݒsȂĂB
	p[^[masśÂ̏dBfriction͖CWłBlȗꍇ́AftHglgp܂B
	d(mass)0ɂ邱ƂŐÓI(Փ˂͂邪AȂ)ƂĐݒ肳܂B
	ȊȌꍇ́A@ɏ]ď̂ꏊ܂ŗ܂B

	ݒ肷ꍇ́AK(n)ƂȂ镔쐬ĂĂB
	@gpfloor߂ɂĐꂽɕWIȕݒ肷邱ƂŁAŒ肳ꂽʂ
	@邱Ƃł܂B݂ȂꍇÂ͉iɗ𑱂邱ƂɂȂ܂B

	Ŏgp`́A{IɂƂ̌`ƓɂȂ܂Agpbfm[h̏ꍇ̓fŜ
	ݍރoEfBOgp܂B

	ݒsȂm[hIuWFNǵAȍ~ē삷悤ɂȂA
	setposȂǂ̍WύX͖ƂȂ܂B
	̂ɗ͂ꍇ́Agppapply߂gpĂB

		gppapply objid,action,x,y,z		m[hɕIȗ͂Kp

	gppapply߂́Am[hɑ΂(x,y,z)Ŏw肵xNg̕Iȗ͂Kp܂B
	p[^[actionŐݒł^Cv́Aȉ̒ʂłB

	        }N                     e
	    ----------------------------------------------------------------------------
		GPPAPPLY_FORCE               ړ悤Ƃ͂Z
		GPPAPPLY_IMPULSE             uԓIȏՌ^
		GPPAPPLY_TORQUE              gN(˂)͂^
		GPPAPPLY_TORQUE_IMPULSE      gN+Ռ^

	ڍׂȕݒsȂꍇ́Agppset߂gpĂB

		gppset objid,prmid,x,y,z		m[h̕p[^[ݒ

	p[^[prmidŁAݒ肷鍀ڂw肷邱Ƃł܂B
	X,Y,ZɎw肳ꂽlAꂼ̍ڂɓKp܂B

	        }N                          e
	    ----------------------------------------------------------------------------
		GPPSET_ENABLE                     X=ON/OFF(0=)
		GPPSET_FRICTION                   X=CW, Y=e͐ݒ
		GPPSET_DAMPING                    X=linear(0`1.0), Y=angular(0`1.0)
		GPPSET_KINEMATIC                  X=KinematicݒON/OFF(0=)
		GPPSET_ANISOTROPIC_FRICTION       X,Y,Z=ٕ̖C
		GPPSET_GRAVITY                    X,Y,Z=d
		GPPSET_LINEAR_FACTOR              X,Y,Z=xNgɉړ̐ݒ
		GPPSET_ANGULAR_FACTOR             X,Y,Z=xNgɉ]̐ݒ
		GPPSET_ANGULAR_VELOCITY           X,Y,Z=]xVeB[
		GPPSET_LINEAR_VELOCITY            X,Y,Z=jAxVeB[


E}eA̐ݒ

	}eÁA`(_O)ɊւڍׂȐݒłB
	FɊւ񂩂eNX`摜AVF[_[̐ݒȂǕL܂B
	ʏ̃m[hIuWFNgł́AWIȃ}eAIɓKp܂B

		:
		gpbox id_model, 1, 0xffffff	; F̔m[hǉ

	̗ł́AF̗̂܂B
	[U[}eAƎɐ邱ƂɂAʂȎ̐ݒ肪\ɂȂ܂B
	}eA𐶐邽߂̖߂͈ȉ̒ʂłB

		gpcolormat var,color,opt			J[}eA̐
		gptexmat var,"file",opt				eNX`}eA̐
		gpusermat var,"vsh","fsh","defs",color,opt	JX^}eA̐

	̏ꍇA}eAƁA}eAIDƌĂ΂鐮l
	ϐɑ܂Bȍ~́A}eAIDĊeݒύX邱Ƃ
	\ƂȂ܂B

	gpcolormat߂́APF̃J[}eA𐶐܂B

		:
		gpcolormat mat_id,0xff00ff,GPOBJ_MATOPT_NOLIGHT
		gpbox id_model, 1, , mat_id

	̗ł́ARGBJ[0xff00ff()́ACeBOsȂȂ}eAA
	̂̃m[hIuWFNg܂B
	[U[}eAIDAIuWFNgɎw肷邱Ƃɂ
	Ǝ̃}eA邱Ƃ\ɂȂ܂B
	}eÃIvVŁAȉw肷邱ƂɂݒύX邱Ƃł܂B
	̐ݒ́Agpmatstate߂ŕʓrݒ肷邱Ƃ\łB

	        }N                e
	    ----------------------------------------------------------------------------
		GPOBJ_MATOPT_NOLIGHT    CeBOsȂȂ
		GPOBJ_MATOPT_NOMIPMAP   MIPMAP𐶐Ȃ
		GPOBJ_MATOPT_NOCULL     JO𖳌ɂ
		GPOBJ_MATOPT_NOZTEST    ZeXg𖳌ɂ
		GPOBJ_MATOPT_NOZWRITE   Zobt@݂𖳌ɂ
		GPOBJ_MATOPT_BLENDADD   vh[hZɐݒ肷

	gptexmat߂́AeNX`(摜)}eA𐶐܂B

		:
		gptexmat id_texmat, "res/qbox.png"	; eNX`}eA쐬
		gpbox id_model, 1, , id_texmat		; m[hǉ

	̗ł́ArestH_qbox.pngeNX`ƂĎ}eA𐶐܂B

	gpusermat߂́AJX^}eA𐶐̂ŁACӂ̃VF[_[g
	`ׂ̂ĂRg[邱Ƃł悤ɂȂ܂B
	́AVF[_[ɂĂ̒m㋉Ҍ̊g@\ł̂ŁAʏ
	gpKv͂܂B

		gpusermat var,"vsh","fsh","defs",color,opt	JX^}eA̐

		var      : ʂϐ
		"vsh"    : o[ebNXVF[_[t@C
		"fsh"    : tOgVF[_[t@C
		"defs"   : ǉ̃x`
		color    : RGBJ[R[h
		opt      : }eAIvVw

	JX^}eA𐶐ꍇ́Agpmatprm߂ɂăVF[_[p[^[
	n߂̒lݒ肷邱Ƃł܂B

		:
		gpmatprm objid,"u_diffuseColor",1,0,0.5 ; }eÃp[^[ݒ

	̗ł́Au_diffuseColorƂ̂̃p[^[( 1.0, 0.0, 0.5 )̃xNgl
	ݒ肵܂BɂA}eAƂɈقȂp[^[VF[_[ɓnƂ
	\ɂȂ܂B

	gpmatstate߂́A}eAIDĕ\̂߂̃Xe[gݒύX܂B

		gpmatstate objid,"name","value"		}eÃXe[gݒ

	ƂnameŎw肳ꂽڂɑ΂āAvalueŎw肳ꂽeݒ肵܂B
	ڂƐݒeׂ͂ĕōsȂ̂ŒӂĂB
	ݒ荀ڂƁAeɂĂ̏ڍׂ͈ȉ̒ʂłB

		name             value
	    --------------------------------------------------------------------
		"blend"          vh̗L/؂ւ
	                         (true ܂ false w)
		"blendSrc"       uhI(LQ)
		"blendDst"       uhI(LQ)
		"cullFace"       Bʏ(JO)̗L/؂ւ
	                         (true ܂ false w)
		"cullFaceSide"   Bʏ(JO)̖ʎw
		"depthTest"      true ܂ false
	                         (true ܂ false w)
		"depthWrite"     Zobt@݂̗L/؂ւ
	                         (true ܂ false w)
		"depthFunc"      Zlr@I(LQ)

		(*)blendSrc,blendDstŐݒł镶

		"ZERO"                     l(0)
		"ONE"                      l(1)
		"SRC_COLOR"                ݌J[
		"ONE_MINUS_SRC_COLOR"      ݌J[(]l)
		"DST_COLOR"                ݐJ[
		"ONE_MINUS_DST_COLOR"      ݐJ[(]l)
		"SRC_ALPHA"                ݌
		"ONE_MINUS_SRC_ALPHA"      ݌(]l)
		"DST_ALPHA"                ݐ惿
		"ONE_MINUS_DST_ALPHA"      ݐ惿(]l)
		"CONSTANT_ALPHA"           Œl
		"ONE_MINUS_CONSTANT_ALPHA" Œl(]l)
		"SRC_ALPHA_SATURATE"       ݌]l

		(*)cullFaceSideŐݒł镶

		BACK             ʂJO
		FRONT            \ʂJO
		FRONT_AND_BACK   ʂJO

		(*)depthFuncŐݒł镶

		NEVER            ɋ
		LESS             l̎̂݋
		EQUAL            l̂݋
		LEQUAL           ꂩl̎̂݋
		GREATER          傫l̎̂݋
		NOTEQUAL         łȂl̂݋
		GEQUAL           ꂩ傫l̎̂݋
		ALWAYS           ɋ


E3Dff[^̕\

	gpload߂ɂAt@Cꂽ3Dff[^(.gpbt@C)
	ǂݍݕ\邱Ƃł܂B

		:
		gpload id_model,"res/duck"		; fǂݍ

	̗ł́ArestH_ɂduck.gpbt@Cǂݍ݂܂B
	̍ۂɁA}eA񂪏Ăduck.materialt@CQƂ܂B
	ɁAeNX`Kvȏꍇ́AtH_̉摜t@Cǂݍ܂܂B

	gpload߂œǂݍނ߂̃t@C(.gpb`)́Agameplay3DŕWIɎgpĂ
	f[^`łBHGIMG4ł́A.gpb`𐶐邽߂GPBRo[^[pӂĂ܂B

		gpbconv.exe

	N邱ƂŁAGUIɂt@Cϊc[N܂B
	(ŃR}hCc[gameplay-encoder.exeĂяo܂)

	.gpb`ƂƂɓǂݍ܂}eA(.material)AGPBRo[^[
	o͂\łB

	.gpb`fbx`ϊ邱Ƃ\łB
	fbx`́AAutodeskЂ3Dc[ŎgpĂWI3D`łB
	̌`fbxɕϊ邽߂FBX ConverterJĂ܂B
	ɂAOBJ, DXF, DAE(Collada), 3DŠ`ϊ邱Ƃł܂B
	http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775855

	݁Afbx̏o͂gpb̕ϊmFĂc[́ABlenderyMayaɂȂ܂B


E3Dff[^̃}eAɂ

	.gpb`ƂƂɓǂݍ܂}eA(.materialt@C)ɂ́Af}eA()ɂĂ̏ڍׂȏ񂪊܂܂Ă܂B
	.materialt@ĆAeLXg`̃t@CȂ̂ŁAʏ̃eLXgGfB^
	{AKvɉēeҏW邱Ƃ\łB
	ȉ́AeLXge̗łB
	̃}eA܂܂Ăꍇ́Aumaterial }eAvɑu{vu}v͈̔͂ݒɂȂ܂B

	material colored
	{
	    u_worldViewProjectionMatrix = WORLD_VIEW_PROJECTION_MATRIX
	    
	    renderState
	    {
	        cullFace = true
	        depthTest = true
	    }
	    
	    technique
	    {
	        pass 
	        {
	            defines = DIRECTIONAL_LIGHT_COUNT 1
	            vertexShader = res/shaders/colored.vert
	            fragmentShader = res/shaders/colored.frag
	        }
	    }
	}

	renderStateݒ蕔ŁA}eAƂ̃_Oݒ`Ă܂B

		Xe[g           e
		-------------------------------------------------
		cullFace             ʂ̏(true/false)
		depthTest            ZeXg(true/false)
		depthWrite           Z(true/false)
		stencilTest          XeVeXg(true/false)
		stencilWrite         XeV(true/false)
		blend                sNZuh̐ݒ(true/false)
		blendSrc             uhݒ(*1)
		blendDst             uhݒ(*1)
		depthFunc            ZeXg@\(*2)

		(*1) ȉI
		ZERO / ONE / SRC_COLOR / ONE_MINUS_SRC_COLOR / 
		DST_COLOR / ONE_MINUS_DST_COLOR / SRC_ALPHA / 
		ONE_MINUS_SRC_ALPHA / DST_ALPHA / ONE_MINUS_DST_ALPHA / 
		CONSTANT_ALPHA / ONE_MINUS_CONSTANT_ALPHA / SRC_ALPHA_SATURATE

		(*2) ȉI
		NEVER / LESS / EQUAL / LEQUAL / GREATER / GEQUAL / 
		NOTEQUAL / ALWAYS

	passݒ蕔ŁA}eAƂ̃VF[_[ݒ`Ă܂B

		ݒ薼               e
		-------------------------------------------------
		defines              VF[_[RpC̃x`
		vertexShader         o[ebNXVF[_[t@C̃pX
		fragmentShader       tOgVF[_[t@C̃pX

	samplerݒ蕔ŁA}eAƂ̃eNX`ݒ`Ă܂B

		ݒ薼               e
		-------------------------------------------------
		path                 摜t@C̃pX
		wrapS                ̃bvݒ(REPEAT/CLAMP)
		wrapT                c̃bvݒ(REPEAT/CLAMP)
		mipmap               ~bv}bvݒ(true/false)
		minFilter            ktB^[ݒ(*1)
		magFilter            gtB^[ݒ(*1)

		(*1) ȉI
		NEAREST / LINEAR / NEAREST_MIPMAP_NEAREST / 
		LINEAR_MIPMAP_NEAREST / NEAREST_MIPMAP_LINEAR / 
		LINEAR_MIPMAP_LINEAR

	݂̃o[Wł́AFBXQƂeNX`ɂẮA}eA(.material)
	o͂eNX`t@CɃpX(tH_)t邱ƂAǂݍ݂
	łȂƂ܂B̏ꍇ́Aꂽ.materialt@C
	eNX`t@C𒼐ڏC悤ɂĂB
	ȉ̗ł́Aupath = vɑ񂪃t@C̃pXɂȂ܂B
	YeNX`́Aures/Metal_Corrogated_Shiny.pngvǂݍ܂邱ƂĂ܂B

	    sampler u_diffuseTexture
	    {
	        path = res/Metal_Corrogated_Shiny.png
	        wrapS = REPEAT
	        wrapT = REPEAT
	    }

	.materialt@ĆAGȃf̒`Ȃǂ̏ꍇAŏC邱Ƃ
	ɂȂ܂B̃o[Wł́Ac[ɂT|[g\肵Ă܂B


E3Dff[^̃CeBO

	gpload߂œǂݍ܂ꂽf́AϊfbxɋL^Ă
	VF[fBOɃ}eAݒ肪sȂ܂B
	܂Af̃CeBOݒ́A.materialt@CɂČ܂܂B

	CeBOȂfɑ΂āACeBOKpꍇɂ́A
	.materialt@Cdefine`CKv܂B
	passݒ蕔define`ɁuDIRECTIONAL_LIGHT_COUNT 1vw肳Ă
	}eA̓CeBOvZ̑ΏۂɂȂ܂B
	define`́Au;vLŋ؂邱Ƃŕ̒`Lqł܂B
	uSPECULAR;DIRECTIONAL_LIGHT_COUNT 1v̂悤ɋLqꍇɂ́A
	CeBOvZƃXyL[Kp܂B

	CeBOyуXyL[Kpꍇɂ́Amaterialݒ蕔
	ȉ̒`ǉKv܂B

            u_inverseTransposeWorldViewMatrix = INVERSE_TRANSPOSE_WORLD_VIEW_MATRIX
            u_cameraPosition = CAMERA_WORLD_POSITION
            u_specularExponent = 50
	    u_directionalLightColor[0] = 1, 1, 1
	    u_directionalLightDirection[0] = 0, 0, -1

	́AVF[_[ɓnftHg̃p[^[ɂȂ܂B
	uu_worldViewProjectionMatrixv̒`sȂĂs̉ɒǉĂB
	(uu_specularExponentv̓XyL[̋x܂B)


EV[̕`ɂ

	gpdraw߂́AV[̃IuWFNgׂĕ`悷閽߂łB
	ȉ̃IvVw肷邱ƂŁAꂽڂ̕`悾sȂƂł܂B

	        }N                      e
	    --------------------------------------------------------------------
		GPDRAW_OPT_OBJUPDATE          IuWFNg̎ړ
		GPDRAW_OPT_DRAWSCENE          3DV[`揈
		GPDRAW_OPT_DRAWSCENE_LATE     3DV[`揈(OBJ_LATE)
		GPDRAW_OPT_DRAW2D             2DXvCg`揈
		GPDRAW_OPT_DRAW2D_LATE        2DXvCg`揈(OBJ_LATE)

	OBJ_LATẼ[htꂽ(lݒ肳Ă̂܂)́A
	s̃IuWFNgɕ`悷邽߁AڂĂ܂B
	̍ڂu|vŋ؂Ďw肷邱Ƃł܂B

		:
		gpdraw GPDRAW_OPT_DRAW2D|GPDRAW_OPT_DRAW2D_LATE

	̗ł́A2DXvCg`揈A2DXvCg`揈(OBJ_LATE)s܂B
	𗘗pƁA3DV[`2DXvCg`̊Ԃgcopy߂ȂǕʂȕ`施߂ɂ
	\sȂƂ\ɂȂ܂B

	gpdraw߂̃p[^[ȗꍇ́AׂĂ̍ڂIĂԂɂȂ܂B
	ʏ́Ap[^[w肵ȂĂ肠܂B
	܂A2D̒ڕ`施߂gpāAIuWFNgɂ`悪svȏꍇ́A
	gpdraw߂LqKv܂B


EIuWFNg̕`ɂ

	`ll̐ݒɂA2DXvCgIuWFNgy3Dm[hIuWFNg
	xύX邱Ƃł܂B

		setalpha IuWFNgID, l

	ĺA0`255܂ł̐lŁA0SȓA255SȕsƂȂ܂B
	l255ȊO()̏ԂƂȂIuWFNǵA`揇OʂɕύX܂B
	(OBJ_LATẼ[hw肳ꂽ̂Ɠ)


EIuWFNgIDv[ɂ

	IuWFNgID́A炩ߌ߂ꂽő吔̒ŁAgpĂȂIDԍ
	蓖Ă܂BIuWFNgő吔́AftHg1024ƂȂĂA
	sysreq߂ɂĊg邱Ƃ\łB

		:
		setreq SYSREQ_MAXOBJ,4096	; IuWFNgő吔4096Ɋg

	IDԍ̊蓖Ĕ͈͂CӂɕύX邽߂gpobjpool߂pӂĂ܂B

		:
		gpobjpool 100,50	; IuWFNgID̐ݒύX

	̗ł́AIDԍ100`150݂̂蓖đΏۂɕύX܂B
	ȍ~̃IuWFNg(gpboxgpnullȂ)ł́Aw肳ꂽ
	͈͓̃IuWFNgID݂̂蓖Ă܂B
	IuWFNgŜ̒œ̌܂łȂ悤ɐꍇA
	\xRg[ꍇɗpł܂B
	gpobjpool߂ɂāA炩ߐݒ肳ꂽIuWFNgő吔g邱Ƃ
	ł܂BKő吔͈͓̔ŐݒsȂ悤ӂĂB


EIuWFNg̃RAp[^[

	IuWFNgƂɕێĂdvȐݒlRAp[^[ƌĂт܂B
	RAp[^[́A32bitlŁAȉ̖߂ēǂݏ\łB

	gpsetprm objid,prmid,value			IuWFNg̃RAp[^[ݒ
	gpgetprm var,objid,prmid			IuWFNg̃RAp[^[擾

	RAp[^[IDƂĎw\ȍڂ͈ȉ̒ʂłB

		}N             | e
		--------------------------------------------------------------
		PRMSET_FLAG            IuWFNgo^tO(*)
		PRMSET_MODE            [hl
		PRMSET_ID              IuWFNgID(*)
		PRMSET_ALPHA           x(l)
		PRMSET_TIMER           ^C}[l
		PRMSET_MYGROUP         g̃RWO[v
		PRMSET_COLGROUP        ՓˌoRWO[v
		PRMSET_SHAPE           `ID(*)
		PRMSET_USEGPMAT        }eAID
		PRMSET_USEGPPHY        ݒID
		PRMSET_COLILOG         RWOID(*)
		PRMSET_SPRID           \[Xobt@ID(XvCĝ)
		PRMSET_SPRCELID        \[X̃ZID(XvCĝ)
		PRMSET_SPRGMODE        Rs[[h(XvCĝ)

	(*)tRAp[^[́A݂sȂꍇAȓ삪ۏ؂܂B


EIuWFNg̃N[

	N[@\́Aɑ݂IuWFNgƓݒŁAVIuWFNg
	̂łB̌`Ap[^[ݒ(ݒ)܂Wpx
	ȂǂVݒ肷邱Ƃł܂B
	̂̕𕡐ꍇɁAݒǂݍ݂xsȂԂyɂ
	Ȃ܂B

		:
		gpload id_model,"res/duck"	; fǂݍ
		gpclone i, id_model		; ̂N[

	݂̃o[Wł́AV[ɑ݂\\ȃIuWFNgȊO
	@N[邱Ƃł܂̂ŒӂĂB


ExNgT|[g

	xNgT|[g߂́AlAxNglȂǂ̏߂
	ߌQłBxNgϐɊi[@ƂFVlƂ\o
	܂Áuϐ=1.0v̂悤1̒l̂ł͂Ȃ
	uϐ(0)=X:ϐ(1)=Y:ϐ(2)=Zv̂悤Ɏ^̔zϐƂ
	3̗vf(X,Y,Z)i[Ă`łB

	FVlgp邱ƂŁARWxNgȂǂ̏rI
	ĈƂł܂BFVlZ閽߂ł́A3̗vf
	΂ČvZ邽߁AP̗vfƂɌvZVvō
	sȂƂł܂B

	fvseti fv,x,y,z					lxNgݒ

		fv      = FVlϐ
		(x,y,z) = l

		(x,y,z)Ŏw肳ꂽlxNgƂFVlɑB

	fvset fv,x,y,z					xNgݒ

		fv      = FVlϐ
		(x,y,z) = l

		(x,y,z)Ŏw肳ꂽlxNgƂFVlɑB

	fvadd fv,x,y,z					xNgZ
	fvsub fv,x,y,z					xNgZ
	fvmul fv,x,y,z					xNgZ
	fvdiv fv,x,y,z					xNgZ

		fv      = FVlϐ
		(x,y,z) = vZl(l)

		fvŎw肳ꂽϐɊi[ĂFVlƁAw肳ꂽ
		l(X,Y,Z)̉ZōsȂ܂B

	fvdir fv,x,y,z					xNg]

		fv      = FVlϐ
		(x,y,z) = ]px(l)

		fvŎw肳ꂽϐɊi[ĂxNg(FVl)A
		l(X,Y,Z)Ŏw肳ꂽX,Y,Zpxɉ]܂B

	fvmin fv,x,y,z					xNgől

		fv      = FVlϐ
		(x,y,z) = rl(l)

		fvŎw肳ꂽϐɊi[ĂFVlƁA
		l(X,Y,Z)rāAl̑傫̂܂B
		FVl̊evfŏl܂łɐ؂l߂ꍇɎgp܂B

	fvmax fv,x,y,z					xNgŏl

		fv      = FVlϐ
		(x,y,z) = rl(l)

		fvŎw肳ꂽϐɊi[ĂFVlƁA
		l(X,Y,Z)rāAl̏̂܂B
		FVl̊evfől܂łɐ؂l߂ꍇɎgp܂B

	fvouter fv,x,y,z				xNgO

		fv      = FVlϐ
		(x,y,z) = ZxNgl(l)

		fvŎw肳ꂽϐɊi[ĂFVlƁA
		l(X,Y,Z)Ŏw肷xNg̊Oς߂đ܂B

	fvinner fv,x,y,z				xNg

		fv      = FVlϐ
		(x,y,z) = ZxNgl(l)

		fvŎw肳ꂽϐɊi[ĂFVlƁA
		l(X,Y,Z)Ŏw肷xNg̓ς߂fv.0ɑ܂B

	fvface fv,x,y,z					Wpx𓾂

		fv      = FVlϐ
		(x,y,z) = X,Y,ZWl(l)

		fvŎw肳ꂽϐɊi[ĂxNg(FVl)_Ƃ
		X,Y,ZWAw肳ꂽX,Y,ZW𒼐Ō邽߂̉]px߂
		܂B

	fvunit fv						xNgK

		fv      = FVlϐ

		fvŎw肳ꂽϐɊi[ĂxNg(FVl)𐳋K܂B

	fv2str fv						xNg𕶎ɕϊ

		fvŎw肳ꂽϐɊi[ĂxNg(FVl)𕶎
		ϊăVXeϐrefstrɌʂԂ܂B

	str2fv fv,"x,y,z"				xNgɕϊ

		"x,y,z"Ŏw肳ꂽu,vŋ؂ꂽX,Y,ZlƂ
		ǂݏoAfvŎw肳ꂽϐɊi[܂B

	str2f fval,"val"				lɕϊ

		"val"Ŏw肳ꂽlƂēǂݏoA
		fvalŎw肳ꂽϐɊi[܂B

	f2str val,fval					l𕶎ɕϊ

		fvalŎw肳ꂽl𕶎ɕϊāAvalŎw肳ꂽ^
		ϐɌʂԂ܂B

	FVlꂽϐŁAIuWFNg̃p[^[ݒ肵A擾邱Ƃł܂B

		:
		fvset fv, 1,5,2				; FVl
		selpos GPOBJ_CAMERA			; J̍WݒI
		objsetfv fv				; JFVlݒ

	̗ł́AJ̍W(1,5,2)ɐݒ肵Ă܂B
	sel`n̖߂ŐݒIAobjsetfv̖߂őIꂽIuWFNg
	ANZX邱Ƃł܂B

		selpos id				X,Y,ZW(Pos)I
		selang id				X,Y,Z](Ang)I
		selscale id				X,Y,Z{(Scale)I
		seldir id				X,Y,Zړ(Dir)I
		selcolor id				R,G,BJ[(Color)I
		selwork id				[Nl(X,Y,Z)I
		selwork2 id				[N2l(X,Y,Z)I

	sel`n̖߂ŐݒIAȉ̖߂Ŏ擾EݒEZȂǂ
	sȂƂ\łB

		objgetfv fv				I𒆂MOC擾
		objsetfv fv				I𒆂MOCݒ
		objaddfv fv				I𒆂MOCZ

	xNgT|[g߂́AKׂĂ̐lgKv͂܂B
	㋉҂̕ʂɍ킹Ďgp̑IƂł傤B


Et[[g̎擾

	getreq߂ɂA`掞̃t[[g擾邱Ƃł܂B

		getreq fps,SYSREQ_FPS

	̗ł́AϐfpsɃt[[g(1bԂɉʂ`悳ꂽ)܂B
	t[[ǵA{Iɕ`惋[v(redraw 0`redraw 1̌JԂ)Ŏw肳
	await߂̑҂ԂŌ肳܂B
	t[[gɕۂAʂ̂(eBAO)h~邽߂ɁA
	VSYNC҂(҂)w肷邱Ƃł܂B

		setreq SYSREQ_VSYNC,1
		gpreset

	̂悤ɁAgpreset̑Osetreq߂ɂVSYNC҂LɂĂB
	ɂAʏ͕b60t[Ƃ̓ƂȂ܂B
	(̏ꍇłAawait߂͓悤ɂĂ)


EAj[VNbv̍쐬

	ff[^(.gpbt@C)ǂݍ܂ꂽAj[VA
	̃NbvƂĎočĐ邱Ƃł܂B
	fɕ̃Aj[V邽߂ɂ́A炩
	1̒Aj[VƂēo^̂pӂKv܂B

	Aj[VNbv́AAj[Vf[^̔Cӂ̋Ԃ
	Aj[VƂčĐ邽߂̃ZbgłB
	Aj[VNbvɂ́AŖOݒ肷邱Ƃł܂B

	gpaddanim id_model,"run",0,700		; "run"Nbvݒ

	̗ł́AurunvƂÕAj[VNbvݒ肵Ă܂B
	urunṽAj[VNbv́A0(~b)700(~b)̃t[
	JԂAj[VƂĐݒ肳܂B
	ݒ肳ꂽAj[VNbv́Agpact߂ōĐł܂B
	(̃Aj[VNbv𓯎ɍĐ邱Ƃł܂)

	gpact id_model,"run"			; "run"NbvĐ

	gpact߂́Aw肳ꂽAj[VNbv̍ĐE~Eꎞ~
	Ȃǂ̃Rg[\łB

		gpact objid,"name",option	Aj[VNbvĐ/~

		objid(0)  : IuWFNgID
		"name"(""): Aj[VNbv
		option(1) : ĐIvV

		    optionl

		        }N              l          e
		    -----------------------------------------------
			GPACT_STOP            0           ~
			GPACT_PLAY            1           Jn
			GPACT_PAUSE           2           ꎞ~

	ɁAAj[VNbv̏Ԃ擾邽߂́Agpgetanim߂
	pӂĂ܂B

		gpgetanim var,objid,index,prmid		Aj[VNbvݒ擾

		var   : 񂪑ϐ
		objid(0) : IuWFNgID
		index(0) : Aj[VNbṽCfbNX(0`)
		prmid(0) : p[^[ID


	objidŐݒ擾IuWFNgIDAindexɃAj[VNbv
	CfbNXw肵܂B
	Aj[VNbṽCfbNX́AIuWFNgێĂ
	Aj[VNbvɏԂɊUԍłB0,1,2,3ĉ悤
	0n܂鐮lŁA݂ȂCfbNXw肳ꂽꍇ
	VXeϐ-1(G[)܂B
	prmidłǂ̂悤ȏ擾邩w肵܂B
	prmidŎwłl͈ȉ̒ʂłB

	        }N                   l          e
	    --------------------------------------------------------
		GPANIM_OPT_START_FRAME     0           Jnt[(~bP)
		GPANIM_OPT_END_FRAME       1           It[(~bP)
		GPANIM_OPT_DURATION        2           Đ̒(~bP)
		GPANIM_OPT_ELAPSED         3           oߎ(~bP)
		GPANIM_OPT_BLEND           4           uhW(%P)
		GPANIM_OPT_PLAYING         5           ĐtO(0=~/1=Đ)
		GPANIM_OPT_SPEED           6           ĐXs[h(%P)
		GPANIM_OPT_NAME            16          Aj[VNbv

	܂Agpsetanim߂ŃAj[VNbv̏ڍׂȐݒsȂƂ\łB

		gpsetanim objid,index,prmid,value	Aj[VNbvݒXV

		objid(0) : IuWFNgID
		index(0) : Aj[VNbṽCfbNX(0`)
		prmid(0) : p[^[ID
		value(0) : ݒ肳l(l)

	w肳ꂽAj[VNbv̐ݒvalueŎw肳VlōXV܂B
	objidAindex̎ẃAgpgetanim߂ƓlłB
	prmidłǂ̂悤ȏݒ肷邩w肵܂BprmidŎwłl͈ȉ̒ʂłB

	        }N                   l          e
	    --------------------------------------------------------------
		GPANIM_OPT_DURATION        2           Đ̒(~bP)
		GPANIM_OPT_BLEND           4           uhW(%P)
		GPANIM_OPT_SPEED           6           ĐXs[h(%P)

	ɂAAj[VNbvƂ̍ĐXs[hĐuhWύX邱Ƃł܂B


E2D`掞̓ƎVF[_[ݒ

	3D`掞ɎgpVF[_[(GLSL)́A.materialt@CŎw肳Ă
	VF[_[t@CύX邱Ƃŕ`ׂύX邱Ƃł܂B
	ɑ΂āAgcopy,celputȂ2DŒڕ`sȂ߂́AXvCg`VF[_[
	WŎgp܂B(sprite.frag/sprite.vert)
	[U[쐬ʂȃVF[_[ɒu邱ƂŁA2D̒ڕ`ƎɊg邱Ƃł܂B
	2D`Ɏgp錳̉摜obt@ɁAVF[_[蓖Ă܂B

		gpusershader "res/shaders/user.vert", "res/shaders/user.frag", ""
		buffer 1,512,512,screen_usergcopy

	̗ł́Aobt@ID1512~512hbg̃TCYŏāA
	user.vert/user.frag̃VF[_[蓖ĂĂ܂B
	(user.vertuser.frag̃VF[_[t@C͂炩ߗpӂĂKv܂)
	gpusershader߂́A[U[`̃VF[_[w肷邽߂̖߂łB

		gpusershader "vsh","fsh","defs"		[U[VF[_[̎w

		"vsh"     : o[ebNXVF[_[t@C
		"fsh"     : tOgVF[_[t@C
		"defs"    : ǉ̃x`

	OpenGLVF[_[(GLSL)Lq̏ڍׂ́Aɓn邽߂ł
	グĂ܂BʓrVF[_[ɂĂ̎ȂǂQƂĂB

E_Oobt@

	buffer߂ɂ摜obt@̏̃IvVwɂA
	_Oobt@쐬邱Ƃ\łB
	ɂA`_Oobt@Ɏw肵āACʂ
	ޑOɉ摜쐬ȂǁAGȃ_OpCvC
	\z邱Ƃł܂B

		buffer 1,512,512,screen_offscreen

	̗ł́Aobt@ID1512~512hbg̃TCYŏāA
	_Oobt@ɐݒ肵Ă܂B
	(̐ݒsȂĂȂʂ́A`ƂĎgpł܂)
	ۂɕ`̃obt@ID؂ւꍇ́Agsel߂gp܂B
	ugsel 1vw肷ƁAȍ~̕`施߂̓obt@ID1ɑ΂
	sȂ܂Bugsel 0vw肷ƁACʂ`ɂȂ܂B
	redraw߂ɂt[̐؂ւ́A`̃obt@ƂɍsȂĂB

		gsel 1			; `obt@ID1ɐݒ
		redraw 0
		color 255,0,0
		boxf 0,0,100,100
		redraw 1
		gsel 0			; `Cʂɐݒ
		redraw 0
		gmode 0
		celput 1
		redraw 1

	ʂ̍XV́A܂łC(obt@ID0)XV
	^C~OɂȂ܂B܂ł̊ԂɁÃ_Oobt@
	RɍXV邱Ƃł܂B

	_Oobt@2D`掞̃VF[_[`𕹗p邱Ƃ
	|XgGtFNg(ʑŜ̌)Ȃǂɉp邱Ƃł܂B

		gpusershader "res/shaders/sprite.vert", "res/shaders/p_sepia.frag", ""
		buffer 1,sx,sy,screen_offscreen + screen_usergcopy

		;	obt@ID1ɃV[̕`sȂ
		gsel 1
		redraw 0			; `Jn
		gpdraw				; V[̕`
		redraw 1			; `I

		;	obt@ID1烁CʂɃGtFNg̕`
		gsel 0
		redraw 0			; `Jn
		pos 0,0:gmode 0
		celput 1

	̗̓|XgGtFNgTv(sample/hgimg4/posteffect.hsp)̈ꕔłB
	3D̕`Ȃǂobt@ID1ɑ΂čsȂĂẢ摜ɃGtFNg
	VF[_[(ZsAtB^[)găCʂcelput߂ŕ`悵Ă܂B
	_Oobt@VF[_[ɂGtFNǵAʂ܂
	GPU傫ȂAׂ邱ƂɂȂ̂ŃoC[Ȃǂł̓t[[g
	ቺꍇ܂̂ŒӂĎgpĂB


Eo^̌Eɂ

	o^IuWFNgA}eAȂꍇ́Aʓr
	setreq߂ɂő吔ݒ肷Kv܂B
	ȉ̗́AIuWFNgő吔4096ɐݒ肵܂B

		setreq SYSREQ_MAXOBJ,4096	; IuWFNgő吔g

	setreqŐݒłȍڂ͈ȉ̒ʂłB(JbR̓ftHgl)

		}N              e
		---------------------------------------------------------
		SYSREQ_MAXOBJ         IuWFNgő吔(1024)
		SYSREQ_MAXMATERIAL    }eAő吔(128)
		SYSREQ_VSYNC          VSync҂Lɂ(0)
		SYSREQ_THROUGHFLAG    W̃{[_[tO(0)
		SYSREQ_FPS            t[[g(擾̂)

	̑ɁAHSP3DishT|[gݒ荀ڂgp\łB


Eo[Wł̒ӓ_

	ȉ̋@\͖łB̃o[WŃT|[g\łB

	ERWIuWFNg̏ڍׂȐڐG
	EHGIMG3̃Cxg@\
	E{tHg̃T|[g
	Ep[eBNƃG~b^[̏ڍאݒ
	E}`eNX`Aobv}bvAnCg}bvALODT|[g


EOpenGLɂ

	HGIMG4́A`̃x[XVXeƂOpenGLgpĂ܂B
	Windowsp3D`x[XCuƂẮAHGIMG3DirectXgp
	Ă܂A͑傫]Ă܂B
	OpenGĹADirectXƓlɃ^CCuKvƂȂ܂A
	̑̓rfIhCoƓɃCXg[܂B
	܂AÂT|[gĂDirectXƈقȂOpenGL(3.1)
	Vn[hEFAT|[gĂ܂B
	2006Nȍ~nVidiaAMD̃OtBbNJ[hyintel
	OtBbN`bvڃ}U[{[hŃT|[gĂ܂B
	Windows7ȍ~̑̃VXeŁAT|[gĂƎv܂A
	Âp\Rł̌݊ĂȂꍇ܂B
	̈ŁAOpenGLiOSyAndroidȂǂ̃X}[gtHA^ubg
	[ɂĕWIȕ`惉CuƂč̗pĂ܂B
	HSP3Dishx[Xɍ쐬ĂHGIMG4́A̒[ł̓
	ɓĊJĂAWindowsłyiނƍl
	OpenGLSʓIɍ̗pĂ܂B


Eӎ

DirectX9(angle)ł̃^ĆAzakki񂪐삳ꂽ̂𓯍Ă܂B
zakkiyсAӌ񂹂̕XɊӒv܂B


E쌠ƃCZX

[U[HGIMG4gč쐬IWĩ\tgEFA(st@C)̌́A쐬[U[ɑ܂B
[U[HGIMG4gč쐬IWĩ\tgEFA(st@C)A
RɒʐMAAXȂǂœWAzzA̔邱Ƃł܂B
CZX͕Kv܂B
HGIMG4Ƃ̃\[XR[h́AHSPJZbgƓl̏CBSDCZXKp܂B

HGIMG4͈ȉ̃CugpĊJĂ܂B

GamePlay3D v3.0.0
http://www.gameplay3d.io/

Bullet Collision Detection and Physics Library
Advanced Micro Devices, Inc.
http://bulletphysics.org

The OpenGL Extension Wrangler Library
Copyright (C) 2002-2007, Milan Ikits <milan ikits[]ieee org>
Copyright (C) 2002-2007, Marcelo E. Magallon <mmagallo[]debian org>
Copyright (C) 2002, Lev Povalahev
All rights reserved.

libpng version 1.6.16, December 22, 2014
Copyright (c) 1998-2014 Glenn Randers-Pehrson
(Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
(Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)

zlib.h version 1.2.8, April 28th, 2013
Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler

OpenHSP
Copyright (C) 1997-2017, ONION Software/onitama.
http://hsp.tv

Disclaimer

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 
OTHER DEALINGS IN THE SOFTWARE.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
Neither the name of the Onion Software nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 

\[XR[h`oCi`AύX邩Ȃ킸Aȉ̏𖞂ꍇɌAĔЕzюgp܂B 

E\[XR[hĔЕzꍇAL̒쌠\A{ꗗAщLƐӏ܂߂邱ƁB 
EoCi`ōĔЕzꍇAЕzɕt̃hLg̎ɁAL̒쌠\A{ꗗAщLƐӏ܂߂邱ƁB 
Eʂɂʂ̋ȂɁA{\tgEFAhi̐`܂͔̔iɁAOnion Software̖O܂̓Rgr[^[̖OgpĂ͂ȂȂB 

{\tgEFÁA쌠҂уRgr[^[ɂāû܂܁v񋟂ĂAَ킸AƓIȎgp\Aѓ̖ړIɑ΂KɊւÖق̕ۏ؂܂߁A܂Ɍ肳ȂAȂۏ؂܂B쌠҂Rgr[^[AR̂킸A Q̌킸AӔC̍_ł邩iӔCł邩iߎ̑́js@sׂł邩킸Aɂ̂悤ȑQ\m炳ĂƂĂA{\tgEFA̎gpɂĔi֕i܂͑pT[rX̒BAgp̑rAf[^̑rAv̑rAƖ̒f܂߁A܂Ɍ肳ȂjڑQAԐڑQAIȑQAʑQAIQA܂͌ʑQɂāAؐӔC𕉂Ȃ̂Ƃ܂B 


EDirectX9ł̃CZXɂ

HGIMG4 DirectX9Ń^CyѕtDLĹAANGLE Project
\[XƂɍ쐬Ă܂BĔzzsȂꍇ́A
ȉ̃Rs[Cg\A܂́uANGLE Project_LICENSE.txtv
悤ɂĂB

Copyright (C) 2002-2013 The ANGLE Project Authors. 
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

    Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.

    Redistributions in binary form must reproduce the above 
    copyright notice, this list of conditions and the following
    disclaimer in the documentation and/or other materials provided
    with the distribution.

    Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
    Ltd., nor the names of their contributors may be used to endorse
    or promote products derived from this software without specific
    prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.


-------------------------------------------------------------------------------
                                                HSP users manual / end of file 
-------------------------------------------------------------------------------
