Easy3D For HSP3

配布元:おちゃっこLAB
おちゃっこLAB


Easy3Dはおちゃっこさんが作成し公開しているHSP3で3D描画を行うためのプラグインです。
主に3Dゲームの開発をサポートする目的で開発されており、ゲーム開発に便利な380を超える豊富な数の命令が搭載されています。
HSP3からは実数対応フォグ(霧のような表現)、トゥーンレンダリング(セルアニメのような表現)、スワップチェイン(多画面表示)など さらなる新機能が登載され、今後もさらに機能は増えていくようです。

また、HSP3.1からHSP本体に付属して配布されるようになりました。今後のEasy3Dユーザー増加が予想されます。
※正式にはHSP3.1RC1(リリース候補版)以降からHSP本体に添付されるようになりました。

Easy3Dについての詳細はEasy3D公式サイトをご覧下さい。

【注意】
Easy3D for HSP3を使用するにはHSP3.1β3以降が必要です。正式版の最新バージョンHSP3.1なら問題なく使えます。
HSP3.1βはベータ版であることを十分ご理解の上ご利用ください。
【注意】
以下の文章はEasy3Dのバージョンがver1.0.0.1の時から作成した文章が混ざっている場合があります。現在のバージョンとは内容が異なる場合がありますのでご注意ください。

支援サイト

Easy3DサンプルWiki(http://easy3d.wikiwiki.jp/)
ユーザーによるEasy3Dの応援サイトです。
ユーザーによるスクリプトサンプルやサンプル用素材の提供、ユーザー間コミュニケーションなどに利用されています。

ヘルプファイルの入手

 マニュアル(e3dhsp_func.htm)を見れば全ての命令の解説がされていますが、プログラム作成時にはワンキーヘルプがあると便利です。
ワンキーヘルプ(F1キーで呼び出すヘルプ)を利用するにはそのプラグインのヘルプファイルであるHSファイルが必要です。
最新のHSP3にはE3Dのプラグインに加えE3DのHSファイルが付属していますが、 E3Dの最新パッケージにはHSファイルが含まれていないため別途入手するか自作する必要があります。

ver3.0.3.3までは私のほうでHSファイルを作成して配布していましたが、ゆうとさんがHSファイル作成ツールEasy3DHelp2Hsを 作成されたことで、簡単に最新版ののHSファイルを作成できるようになりました。
↓こちらのサイトでダウンロードすることが出来ます。
Yuto's WebPage(本館)
Yuto's WebPage(本館)



 また私のほうで作成した古いバージョンのhsファイルをここで公開・配布しています。古いバージョンを利用することがありましたら、該当するバージョンを選択してダウンロードしてください。

アドレス 備考
Ease3D for HSP 3 ver3.0.3.3用HSファイル マニュアル(e3dhsp3_func.htm)から移殖したもの。
2007/09/09:公開
追加: E3DGetKeyboardCnt、E3DGetKeyboardState命令にVK_で始まるバーチャルキー情報の一覧を追加。
Ease3D for HSP 3 ver3.0.3.2用HSファイル マニュアル(e3dhsp3_func.htm)から移殖したもの。
2007/09/06:公開
追加: E3DGetKeyboardCnt、E3DGetKeyboardState命令にVK_で始まるバーチャルキー情報の一覧を追加。
修正:「2をせっとすると、」→「2をセットすると、」
おまけ:hs化する前のCSVファイルをつけてみました。(list.csv)
Ease3D for HSP 3 ver3.0.2.5用HSファイル マニュアル(e3dhsp3_func.htm)から移殖したもの。
2007/07/26:公開
追加: E3DGetKeyboardCnt、E3DGetKeyboardState命令にVK_で始まるバーチャルキー情報の一覧を追加。
修正:「2をせっとすると、」→「2をセットすると、」
Ease3D for HSP 3 ver3.0.2.0用HSファイル マニュアル(e3dhsp3_func.htm)から移殖したもの。
2007/06/25:公開
追加: E3DGetKeyboardCnt、E3DGetKeyboardState命令にVK_で始まるバーチャルキー情報の一覧を追加。
修正:「E3DChkConclict2」→「E3DChkConflict2」
Ease3D for HSP 3 ver3.0.1.9用HSファイル マニュアル(e3dhsp3_func.htm)から移殖したもの。
2007/05/30:公開
追加: E3DGetKeyboardCnt、E3DGetKeyboardState命令にVK_で始まるバーチャルキー情報の一覧を追加。
修正:「E3DChkConclict2」→「E3DChkConflict2」
Ease3D for HSP 3 ver3.0.1.5用HSファイル マニュアル(e3dhsp3_func.htm)から移殖したもの。
2007/05/10:公開
追加項目: E3DGetKeyboardCnt、E3DGetKeyboardState命令にVK_で始まるバーチャルキー情報の一覧を追加。
Ease3D for HSP 3 ver3.0.0.2用HSファイル マニュアル(e3dhsp3_func.htm)から移殖したもの。
2007/04/17:公開
2007/04/29:修正
 「ぞんざいする」→「存在する」
 「E3DFillUpMotino」→「E3DFillUpMotion」
2007/04/30:追加
 E3DGetKeyboardCnt、E3DGetKeyboardState命令にVK_で始まるバーチャルキー情報の一覧を追加。
Ease3D for HSP 3 ver2.0.1.7用HSファイル マニュアル(e3dhsp3_func.htm)から移殖したもの。
2007/04/07:公開
Ease3D for HSP 3 ver2.0.1.1用HSファイル マニュアル(e3dhsp3_func.htm)から移殖したもの。
2007/04/05:公開
Ease3D for HSP 3 ver1.0.0.1用HSファイル マニュアル(e3dhsp_func.htm)から移殖したもの。
2006/06/20:公開
2006/06/22:ちょっと修正
2006/06/23:ちょっと変更。

【!注意!】
・明らかに誤字と思われるものについては、一部hsファイル化する際に修正を加えています。
・記述のレイアウト上変更が必要だった文字(「右の説明を」の場合「下の説明を」に変更)などについては、一部hsファイル化する際に修正を加えています。
・バーチャルキー情報の一覧については、無いと非常に不便だと感じましたので、勝手ながら私のほうで追記させていただきました。



HSファイルの使い方
 HSPをインストールしたフォルダのhsphelpフォルダ内にコピーしてご利用ください。
ヘルプブラウザを起動すると新しいHSファイルを認識します。
自分で古いHSファイルを編集していた場合はバックアップを忘れないようにしてください。編集した内容が上書きされ削除されてしまいます。

インストール

プラグインEasy3Dのインストールの仕方を説明します。
基本的に普通のHSP用プラグインをインストールする場合と同じです。

1. e3dhsp3.asをHSP3インストールフォルダ内のcommonフォルダに上書きコピーします。
2. e3dhsp3.dllをHSP3の本体があるフォルダと同じフォルダに上書きコピーします。
3. インストールが終了したら、サンプルスクリプトが動作することを確認してください。


※拡張子がdllのファイルは隠しファイルになっている(見えなくなっている)場合がありますので、見えるようにOSの設定を変更しておいてください。

動作環境

HSP 3.1β3以降。
Microsoft DirectX9.0c 以上が必要です。
対応OS:HSP3およびDirectX9が対応しているWindows(でいいと思います。) 動作するメモリ、CPU、VRAM、などはよく分かりません。

使用方法

普通のHSPプラグインと同じです。

Easy3Dを使用するスクリプトの中で、
#include "e3dhsp3.as"
と記述して、e3dhsp3.asファイルをインクルードしてください。

実行形式ファイル(.exe)にした後は、e3dhsp3.dllを作成した実行形式ファイルと同じ場所にコピーして置いてください。

権利

Easy 3D の著作権は、製作者である「おちゃっこ」さんにあります。
詳細についてはEasy3Dのマニュアルおよび公式サイトを参照してください。

サンプルプログラム

 Easy 3D for HSP3には豊富なサンプルスクリプトが付属しています。マニュアルに紹介文が載っていますのでご覧下さい。

 また、ユーザーによる解説やサンプルなどがEasy3Dサンプル wikiにて 公開されています。このWikiは閲覧者がコンテンツ作成が可能となっています。ユーザーどうしでの情報交換などに お役立て下さい。

座標系

座標系は左手系のようです。

ファイル

入出力に使用するファイルは分かっているものだけをあげると次のとおり。
まだ、作成するソフトすらわかりません。

データ拡張子作成ソフト
形状データ *.sigRokDeBone2
形状データ *.mqoメタセコイア
モーションデータ*.quaRokDeBone2
モーションデータ*.motRokDeBone2
地面データ*.gndRokDeBone2

テクスチャに使用できる画像ファイル形式
jpg, bmp, png, dds
pngはアルファチャンネルも使えます。

HSP2.61版からの変更

HSP3から実数の使用ができるようになったため、HSP2.61版からの命令もこれに対応するため仕様変更がなされています。
主な変更内容は、引数の増減と引数の倍率の変更。
下に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実数