pmdのタグがつけられたコード一覧

HSP 【HSP3】HSPから呼び出したDXライブラリを使ってMMD(.pmd)を表示してみる

// 参考
// http://blog.ness3.com/?p=2624

#include "DxLib.as"
// http://sprocket.babyblue.jp/html/hsp_koneta3.htm
#module
#defcfunc todouble int p1
	temp = 0.0
	lpoke temp, 4, (p1 & 0x80000000) | (((p1 & 0x7fffffff) >> 3) + ((p1 & 0x7fffffff) ! 0) * 0x38000000)
	lpoke temp, 0, p1 << 29
return temp
#global

	// アンチエイリアスの設定
	SetFullSceneAntiAliasingMode 4, 2
	// ウィンドウサイズと色数
	;SetGraphMode ginfo_dispx, ginfo_dispy, 32

	// ウィンドウモードにするか?
	ChangeWindowMode TRUE
	if stat != DX_CHANGESCREEN_OK : end

	DxLib_Init
	if stat == -1 : end
	SetDrawScreen DX_SCREEN_BACK

	onexit gosub *e

	// モデルデータを読み込む
	MV1LoadModel "MMD_YUKARI\\結月ゆかり.pmd"
	hModel = stat

	if hModel == -1 : dialog "失敗" : gosub *e

	// モデルの輪郭線の太さを変える
	/*
	MV1GetMaterialNum hModel
	repeat stat
        MV1GetMaterialOutLineDotWidth hModel, cnt
        MV1SetMaterialOutLineDotWidth hModel, cnt, todouble(stat)/2
	loop
	*/

	// 環境光色
	SetGlobalAmbientLight 0.5f, 0.5f, 0.5f, 0.0f

	// スケール
	;MV1SetScale hModel, 2.0f, 2.0f, 2.0f

	// カメラの 手前クリップ距離と 奥クリップ距離を設定
	SetCameraNearFar 10.0f, 10000.0f

	x = 0.0 : y = 20.0 : z = -20.0

	// ループ
	repeat
		ProcessMessage
		if stat != 0 : break
		CheckHitKey KEY_INPUT_ESCAPE
		if stat != 0 : break

		RECT = -1, -1, -1, -1
		ClearDrawScreen varptr(RECT)

		CheckHitKey KEY_INPUT_UP
		if stat == 1 : y += 1.0

		CheckHitKey KEY_INPUT_DOWN
		if stat == 1 : y -= 1.0

		CheckHitKey KEY_INPUT_LEFT
		if stat == 1 : x -= 1.0

		CheckHitKey KEY_INPUT_RIGHT
		if stat == 1 : x += 1.0

		// カメラの位置と注視点をセット、注視点は原点
		SetCameraPositionAndTarget_UpVecY x, y, z, 0.0f, 10.0f, 0.0f

		//線の描画
		GetColor 255, 0, 0
		DrawLine3D VGet(0.0f, 0.0f, 0.0f), VGet(10000.0f, 0.0f, 0.0f), stat //X
		GetColor 0, 255, 0
		DrawLine3D VGet(0.0f, 0.0f, 0.0f), VGet(0.0f, 10000.0f, 0.0f), stat //Y
		GetColor 0, 0, 255
		DrawLine3D VGet(0.0f, 0.0f, 0.0f), VGet(0.0f, 0.0f, 10000.0f), stat //Z

		// モデルの描画
		MV1DrawModel hModel
		if stat == -1 : dialog "モデルの描画に失敗" : gosub *e

		ScreenFlip

		WaitTimer 10

		title "x:"+x+" y:"+y+" z:"+z

	loop

	gosub *e
stop

*e
	DxLib_End
	end
return

よく投稿されているコード

タグ

最近投稿されたコード