Easy3D For HSP3 HSP2.61版からの変更点
HSP2.61版から変わった点は、
1,実数対応になった。
2,スワップチェインが使えるようになった。
の主に2点です。
まずは、1の実数対応について。
HSP3からは、数値に整数だけでなく、実数が使えるようになりました。
これで、小数点が混じった値も、少ない誤差で、使用できることになります。
Easy3D For HSP3では、
座標値、ベクトル(法線など)、角度、影響度、UV値などを実数型の引数に変更しました。
これにより、いままで、実際の値の10000倍とか100倍とかの整数で使用してきた引数が、
誤差の少ない実数に変更になりました。
次にスワップチェインについて。
スワップチェインとは、複数の画面に3D描画を行うための機構です。
この機能を使うと、2つ以上のウインドウに、3D描画を行ったり、
1つのウインドウ内に、複数のボタンを配置し、その上にそれぞれ、3D描画を行ったりが出来るようになります。
Easy3D For HSPでは、scidというスワップチェインを識別するためのIDが追加されました。
このIDは、E3DInitや、E3DCreateSwapChainで取得できるもので、
どこの画面に描画するのか、ということを、プログラムに知らせるために使います。
画面を識別するための番号、と覚えておいてください。
実際の使い方については、関数表のE3DCreateSwapChainの説明と、サンプルe3dhsp3_SwapChain.asをご覧ください。
その他の変更
stat変数への出力をやめて、
明示的に、変数で、値を受け取るようになりました。
実数対応で、注意するべき点
実数に対応したことで、注意する点があります。
配列変数でなければ、型を整数にしたり、実数にしたりは、かなり自由度が高いですが、
配列を使用する場合には、注意してください。
実数を格納するための配列は、dimではなくて、ddimで作成します。
下の関数表で、「実数型の変数」と書いてある引数に、dimで確保したメモリを渡すと、エラーとなります。
実数型の配列は、必ず、ddimで作成してください。
バッファからの読み込み関数について。
Easy3Dには、バッファからモデルデータやモーションなどを読み込む関数があります。
これらの関数に渡すbuf引数には、多次元配列を渡さないでください。
sdim buf, SIZE
のように作成したメモリを渡してください。
最後に、HSP2.61版から、引数が増えたり減ったりした関数と
引数の倍率が変わった関数を、羅列しておきます。
E3DInit
関数タイプ変更
COM初期化をなしに
第一引数にwid、第2引数にobjid追加
最後の引数に、scidを追加
E3DSigLoad
mult100 --> mult 100倍をやめる。
E3DRender
scid追加
E3DPresent
scid追加
E3DCreateBG
scid追加
uanim, vaminを実数に。
E3DSetBGU, E3DSetBGV
scid追加
startu10000, endu10000を実数に。
E3DDestroyBG
scid追加
E3DBeginScene
scid追加
E3DSetNewPose, E3DSetNewPause
frameno引数追加。
stat出力止め
E3DChkConflict, E3DChkConflict2
inviewflag追加
stat出力止め
E3DSetAlpha2
mult引数削除
alphavalを実数に。
E3DSetPos
posx, posy, poszを実数に。
E3DChkInView
scid引数追加
E3DRotateX, E3DRotateY, E3DRotateZ
mult引数削除
角度を実数に
E3DCloseTo
movestep追加
E3DCos, E3DSin, E3DACos, E3DDot, E3DCross, E3DAtan, E3DAtan2, E3DSqrt
mult, degmult引数削除
実数対応
E3DWaitByFPS
retfps引数追加
stat出力止め
E3DRenderSprite
scalex, scaley は100倍の値ではなく、実倍率の実数
E3DSetSpriteRotation
mult引数削除
degを実数に
E3DChkConfBillboard2, E3DChkConfBillboard
confrate100 --> 100倍でなく実倍率の実数
E3DChkConfGround
nx10000, ny10000, nz10000の1万倍をやめる。実倍率。
E3DGetVertPos, E3DSetVertPos
mult引数削除。位置を実数に。
E3DRenderBillboard
scid引数追加
E3DLoadMQOFileAsGround
mult100の100倍をやめ、実倍率の実数
E3DChkConfWall, E3DChkConfWall2
nx10000, ny10000, nz10000の1万倍をやめ、実倍率の実数。
E3DVec3Normalize
mult引数廃止。
E3DVec3RotateY
degmult引数廃止。
E3DSetSoundTempo
tempo100をtempoに。
E3DSet3DSoundListener
doppler100, rolloff100の100倍を止め。
E3DSet3DSoundDistance
min100, max100の100倍を止める。
E3DControlByNaviLine
dirstep100の100倍をやめ。
newqx10000, newqy10000, newqz10000の10000倍をやめ。
E3DSetDirQ, E3DGetDirQ
qx10000, qy10000, qz10000, qw10000の10000倍をやめる。
E3DSetScale
mult引数廃止
E3DGetScreenPos, E3DGetScreenPos2
scid追加
E3DSetQAxisAndDeg
degmult引数廃止。
E3DGetQAxisAndDeg
取得される数は、10000倍ではなくて、実倍率の実数。
E3DRotateQX, E3DRotateQY, E3DRotateQZ
mult引数廃止。
E3DTwistQ
degmult引数廃止
E3DGetTwistQ
twist10000の10000倍をやめる。
E3DRotateQLocalX, E3DRotateQLocalY, E3DRotateQLocalZ
degmult引数廃止。
E3DCreateLine
posptr 座標が実数になったので、配列作成時は、dimではなくて、ddimで作成しないとエラー
E3DDrawTextByFontID, E3DDrawTextByFontIDWithCnt, E3DDrawTextByFontIDWithCnt2
表示文字数を、4096バイトまでに制限
scid引数追加。
E3DGetCharacterNum
4096バイトの文字列まで対応。
E3DSlerpQ, E3DSquadQ
tdiv引数廃止
E3DSplineVec
位置を実数に。ddimで確保した変数でないとエラー。
tdiv引数廃止。
E3DPickVert
scid引数追加
E3DSetIM2Params, E3DGetIM2Params
関数廃止
InfElemをお使いください。
E3DSigImport, E3DSigLoadFromBuf
mult100の100倍をやめ。
E3DChkConfLineAndFace
nx, ny, nzの10000倍をやめる。
E3DRdtscStop
timeを実数に。
E3DCameraShiftLeft, E3DCameraShiftRight, E3DCameraShiftUp, E3DCameraShiftDown
shift実数
E3DSetCameraTwist
mult引数廃止。
E3DIKRotateBeta, E3DIKRotateBeta2D
scid追加
E3DConvScreenTo3D
z100000の100000倍を止める。
scid引数追加。
E3DSetUV, E3DGetUV
u10000, v10000の10000倍をやめる。
E3DShiftBoneTree2D
scid引数追加
E3DRotateBillboard
mult引数廃止
E3DRasterScrollTexture
param1div, param2div引数廃止
param1, param2を実数に。
E3DLoadGndFile
mult100の100倍をやめる。
E3DTwistBone
divdeg引数廃止
E3DImportMQOFileAsGround, E3DLoadMQOFileAsMovableAreaFromBuf
E3DLoadMQOFileAsGroundThread, E3DSigLoadThread,
E3DSigLoadFromBufThread, E3DLoadMQOFileAsMovableAreaThread,
E3DLoadMQOFileAsMovableAreaFromBufThread,
E3DLoadGndFileThread,
mult100の100倍をやめる。
E3DSetSpecularPower
mult引数廃止。
E3DGetSpecularPower
pow100の100倍をやめる。
E3DGetInfElem
userrate10000, orginf10000, dispinf10000の10000倍をやめる。
(userrateは%)
E3DSetInfElem
userrate, directvalの10000倍を止める。
(userrateは%)
E3DChkConfGroundPart, E3DChkConfGroundPart2
nx10000, ny10000, nz10000の10000倍をやめる。
E3DPickFace
scid追加。
E3DCos, E3DSin, E3DAtan, E3DAtan2, E3DDot, E3DCross
実数対応に伴い、係数などの引数を削除。