メイン画面に、キャラが表示されてるとしますよね。
そしてあるキーを押したら、右上に小さく小窓のようにキャラを上から移したシーンをレンダリングしたいなと思ったのですが。
ここで質問なんですが、自分では以下のスクリプトで小窓に別シーンのレンダリングが可能ではないかと思いましたが。
(考え方としては、winobjで右上にオブジェクトを配置しそれにレンダリングするという考え方です)
両方のscidに同じ数値が代入されているようで、E3DInit の使い方を間違えているんでしょうか?
ほかの方法はありませんか、ヒントでもいいのでお願いします。
*easy3dサンプルe3dhsp3_0.hsp をいじって作ったので実行はe3dhsp3_0.hsp と同じ階層で実行お願いします。
//3Dモデルを表示するだけのサンプルです。(最小構成) ; e3dhsp.dll test script #include "e3dhsp3.as" #module #deffunc waitbyfps int p1, var fps E3DWaitbyFPS@ p1, fps await 0 return #global dim keybuf, 256 ;file のpath 用のバッファーの作成 pathlen = 2048 sdim mediadir, pathlen mediadir = dir_cur + "\\Media" sdim pathbuf, pathlen, 2 screenw = 640 : screenh = 480 screen 0, screenw, screenh, 1 pos screenw - 200 , 0 objsize 200,200 winobj "STATIC", "", 0, $54000000 objid1 = stat ;初期化 E3DInit 0, objid1, 0, 32, 0, view E3DInit 0, -1, 0, 32, 0, scid ;カメラの初期化 camposx = 0.0 : camposy = 800.0 : camposz = -2000.0 E3DSetCameraPos camposx, camposy, camposz camdegxz = 180.0 : camdegy = 0.0 E3DSetCameraDeg camdegxz, camdegy //猫データ読み込み pathbuf.0 = mediadir + "\\can.sig"//\\poo\\poo.sig" E3DSigLoad pathbuf.0, hsid E3DSetPos hsid, 0.0, 0.0, 0.0 *main ; keybuf変数は、メインループの外で、dim keybuf, 256 として、確保しておいてください。 E3DGetKeyboardState keybuf if keybuf.VK_ESCAPE = 1 : goto *bye ; [ESC]で終了 E3DBeginScene view E3DChkInView view, hsid ;不透明部分の描画をする E3DRender view, hsid, 0, 0, 0 ;半透明部分の描画をする E3DRender view, hsid, 1, 0, 0, 0, 0, 1 E3DEndScene E3DPresent view E3DBeginScene scid E3DChkInView scid, hsid ;不透明部分の描画をする E3DRender scid, hsid, 0, 0, 0 ;半透明部分の描画をする E3DRender scid, hsid, 1, 0, 0, 0, 0, 1 E3DEndScene E3DPresent scid waitbyfps 60, chkfps1 goto *main *bye E3DBye end