Easy3D For HSP3 ver3.0.2.0 (HSP3.1同梱バージョン)





Easy3D(e3dhsp3.dll)は、DirectXで3Dゲームを作るためのプラグインです。
DirectX9.0c がインストールされていないと、動きません。

サンプルのe3dhsp3_walk.hspを動かしてみて、おもしろそうだと思った方は、 ぜひ、おちゃっこLAB(http://www5d.biglobe.ne.jp/~ochikko/)で サンプルのたくさん入った最新版をダウンロードしてみてください。


おちゃっこLABでは、 Easy3Dで使用する3D形状データ、モーションデータを編集するためのツールRokDeBone2も公開していますので、あわせてご使用ください。
RokDeBone2のバージョンだけが新しい場合、 Easy3Dでの形状やモーションファイルの読み込みで失敗することがあります。 そんなときは、Easy3Dのバージョンも最新のものをダウンロードして使用するようにしてください。 なぜかといいますと、 RokDeBone2がバージョンアップした際には、ファイルのフォーマットが新しくなることがあります。 新しいファイルは古いプログラムで読み込もうとするとエラーになります。 ですので、そういう症状が出た場合は、Easy3Dも最新版をダウンロードしなおして使用してください。 古いファイルは、新しいプログラムでも問題なく読み込めるようにしていくつもりです。

ヘルプファイルは、GENKIさんが編集したものです。 最新版は、Easy3DサンプルWiki (http://easy3d.wikiwiki.jp/)でダウンロードしてください。

e3dhsp3_walk.hspで使用しているタコのデータは、Shinobuさんが作成したものです。

おちゃっこ
http://www5d.biglobe.ne.jp/~ochikko/



スクリプトを組む上で、必要な、関数の説明は、こちらのページです。

Easy3D For HSPの関数の説明



Easy3D For HSPについてのTIPSや最新情報は、
おちゃっこLABのEasy3D For HSP3公式ページへどうぞ。
(サンプルや関連ツールも公開されています。)

Tips : モーションアクセラレータについて

Tips : ver3.0.0.1での変更点について



著作権・ライセンス

本プログラムの著作権は、製作者である"おちゃっこ"にあります。

本プログラムを使用したことによって生じたいかなる損害についても、 著作権保有者はその保障義務を一切負わないものとします。
Easy3Dや、RokDeBone2を使用して作ったデータや作品は、 自由に配布できることにします。 ただし、サンプルなどで使用しているデータには、それぞれ作者さんの著作権があるので、注意してください。

Easy3Dを使った、自分で作った作品などを配布する場合は、 必須ではありませんが、readme.txtの隅っこにでも、おちゃっこLABの名前を書いておいてもらえると、 宣伝になるので、うれしいです。 (書かなくてもかまいません。)

あと、これは、著作権とは、関係ありませんが、 何か、途中経過でもいいので、おもしろいものが出来たら、掲示板などで、 報告してもらえると、こちらも、やる気が出て、うれしいです。

/////////////////////////////////////////////////////////
// 更新ログ

ver1.0.0.1
  HSP3.1β3に対応しました。
  変更点については、変更点についてをご覧ください。

ver1.0.0.1(2006/06/09)
    サンプルのe3dhsp3_SwapChain.asが、マウス入力により表示がちらつくというご指摘があったので、修正しました。
    サンプルの拡張子をhspに変えました。
    e3dhsp3.dllは、同じままです。
    同じバージョン番号での、マイナーバージョンアップとします。

ver1.0.0.2(2006/07/09)
    フォグ(頂点フォグ)が使えるようになりました。
      E3DSetLinearFogParams関数の追加。

ver1.0.0.3(2006/07/10)
    スプライトやフォント描画時には、フォグが影響しないように、修正しました。
    同じファイル(sig, gnd, mqo, im2)を、複数のプログラムで、同時に読もうとしたときに、エラーになるのを修正しました。

ver1.0.0.4(2006/07/10 その2)
    dual coreプロセッサで、うまく同期できないことがあるのを修正しました。

ver1.0.0.5(2006/07/10 その3)
    E3DRenderの8番目の引数に、transskipを追加。
      transskipに1をセットすると、頂点変換処理がスキップされます。
      不透明、半透明と、2回、E3DRenderを呼び出す場合は、2回目の呼び出し時に、transskipに1を指定してください。
      このフラグを使用することで、e3dhsp3_fight.hspの描画速度は、1.7倍速になりました。

ver1.0.0.6(2006/07/16)
    デバッグ
      E3DGetBBoxで、partnoに-1を指定すると、エラーになるバグを修正しました。
    マニュアルのE3DGetScreenPos2の引数が、間違っていたのを修正しました。
      1番目の引数は、scidです。

ver1.0.0.7(2006/07/26)
    あたり判定関数の追加
      E3DChkConflict3
      E3DChkConfBySphere3
        判定パーツ番号に、配列を指定できるようにし、複数パーツ同士の当たり判定を、一回の呼び出しで、出来るようにしました。


ver2.0.0.1(2006/08/04)
    DirectX9.0cへ対応(ただし、ハードウェア頂点処理は、まだ、封印した状態)

    RokDeBone2 ver2.0.0.1のデータに対応。

    トゥーン表示に対応
      E3DSetShaderTypeに、COL_TOON1を指定すると、トゥーン表示できます。
      COL_TOON1でのE3DSetShaderType命令は、割と重い処理なので、初期化時に、1回だけ実行してください。
      詳しくは、サンプル、e3dhsp3_toon1.hspをご覧ください。

    E3DInitを呼び出さない状態で、E3DByeを呼んでも、エラーにならないように修正。


ver2.0.0.2(2006/08/07)
  RokDeBone2で、「色ト」ボタンを押した状態で、保存したsigファイルに対応。
  E3DSetMovableAreaThread関数を追加。
  E3DSetShaderType で、COL_TOON1を指定して、複数回呼び出すと、メモリリークするバグを修正。


ver2.0.0.3(2006/08/11)
  ver2.0.0.3のRokDeBone2のsigファイルに対応。


ver2.0.0.4(2006/08/15)
  E3DRenderSpriteに、引数を追加。
    traz引数を追加。
    奥行き情報を、指定できるようになりました。


ver2.0.0.5(2006/08/21)
  半透明のブレンディングモード(アッドモードその2)を、追加。
    E3DSetBlendingMode で、モードに2を指定すると、頂点アルファを考慮したアッドモードになります。

  E3DCreateSpriteFromBMSCRを追加
    HSPの描画画面(E3Dでの描画を除く)と同じ内容のスプライトを作成します。
    非表示の画面に対しても、使用できます。

ver2.0.0.6(2006/08/23)
    デバッグ
      同名ファイルから、複数のスプライトを作成し、そのうちのひとつを、E3DDestroySpriteで破棄すると、
      残りのスプライトの描画時に、エラーになるバグ、を修正しました。


ver2.0.0.7(2006/09/21)
    E3DGetBoneNoByNameを、エンドジョイントに対しても、呼び出せるようにしました。
    
    マニュアルの微調整
      ver2.0.0.1で、エンドジョイントにも、姿勢情報が格納されるようになったので、
      エンドジョイントに関する記述を修正。

    Visual Studio 2005でビルド。


ver2.0.0.8(2006/09/22)
    モデルデータ中で、絶対パスで指定されているテクスチャが、見つからなかった場合は、
    モデルデータと同じディレクトリを探して、読み込むようにしました。


ver2.0.0.9(2006/09/25)

    E3DCreateBGに引数を追加。
      7番目の引数に、フォグの計算に使う、カメラからの距離を指定します。

      この引数に、E3DSetLinearFogParamsで指定するendより小さい値を指定すれば、
      背景は、フォグの色に染まりながらも、うっすらと見えるように出来ます。


ver2.0.1.0(2006/10/08)

    デバッグ
      ドライブのルートで、exeを実行すると、E3DInitでエラーになることがあるバグを、修正しました。


ver2.0.1.1(2006/10/17)

    デバッグ
      E3DCreateSpriteFromBMSCR で作成したスプライトが、E3DDestroySpriteで削除できないバグを修正しました。


ver2.0.1.2(2007/01/26)
    モーションアクセラレータの設定機能の追加。
    詳しくは、モーションアクセラレータについてをご覧ください。

    E3DLoadMOAFile
    E3DSetNewPoseByMOA
    E3DGetMotionFrameNo
    E3DGetKeyboardCnt
    E3DResetKeyboardCnt
    の追加。


ver2.0.1.3(2007/01/29)
    デバッグ
      モーションアクセラレータ使用時に、補間終了後、同じポーズが3つ続くバグを修正。
      新ボーンを追加後に、それを無効にして、旧モーションを読むと、モーションがよれるバグを修正。
      PingPongモーション処理を修正。
      
    超簡易暗号化関数追加
      E3DEncodeBeta
      E3DDecodeBeta


ver2.0.1.4(2007/02/01)
    デバッグ
      E3DCreateSpriteFromBMSCRを複数回呼び出した場合、
      複数回E3DestroySpriteを呼んでも、一回分しかメモリが開放されないバグを修正。

      E3DestroyBillboardが、必要なビルボードのテクスチャまで、破棄してしまうバグを修正。


ver2.0.1.5(2007/02/03)
    デバッグ
      MOA(モーションアクセラレータファイル)読み込み時のバグを修正。
        ファイルの終端検出処理のバグ。
        ファイルの読み込みが終わっていないのに、終わっていると判断し、読み残しをしてしまうバグでした。


ver2.0.1.6(2007/02/09)
    デバッグ
      モーションアクセラレータのバグ修正
        「指定フレームより前で分岐」に、数値を指定したとき、
        実際には、指定フレームより後で分岐していたバグ。


ver2.0.1.7(2007/03/13)
    デバッグ
      メタセコイアで設定した頂点色が反映されないことがあるバグを修正しました。


ver3.0.0.1(2007/04/16)
    ver3.0.0.1リリース。
    頂点シェーダ2.0、ピクセルシェーダ1.1対応版となりました。
    描画速度2から4倍!!

    変更点は、ver3.0.0.1での変更点をご覧ください。


ver3.0.0.2(2007/04/17)
    一回もE3DSetMotionKindを呼び出さない場合でもエラーにならないようにしました。
      1個目のqua読み込み時に、自動的に、E3DSetMotionKindします。


ver3.0.0.3(2007/04/19)
    デバッグ
      E3DInitの7番目の引数に0を指定したときの振る舞いを修正。
      E3DSetUV, E3DGetUV, E3DSetUVTile, E3DSetBillboardUVが機能していなかったのを修正。


ver3.0.0.4(2007/04/20)
    デバッグ
      トゥーン設定のモデルと、トゥーン以外の設定のモデルを混在させた場合に、
      トゥーン以外のモデルが表示されないことがあるバグを修正。

ver3.0.0.5(2007/04/22)
    デバッグ
      スムージング関係での法線の計算が間違っていたバグを修正。
        色にむらが出来たり、角がシャープに表示されなかったりするバグが直りました。


ver3.0.0.6(2007/04/24)
    スムージング処理の修正
      スムージング処理を、標準的な方法に変えました。
      メタセコイアで設定したスムージング角度に忠実に表示します。

      新しいスムージング処理は、mqoまたは、ver3.0.0.3以降のRokDeBone2で保存したsigを読み込んだ場合のみ有効になります。


ver3.0.0.7(2007/04/25)

    頂点シェーダー1.1でも、ハードウェアで動くようにしました。

    頂点シェーダー2.0が使える環境では2.0で、1.1しか使えない環境では1.1で、
    頂点シェーダーが無い環境では、ソフトウェアで実行します。

    ただし、制限が付きます。
      ライト
        頂点シェーダー2.0では、平行光源とポイントライトで合計3個までライトを有効に出来ますが、
        頂点シェーダー1.1では、平行光源を1個しか有効に出来ません。

      ボーン数
        頂点シェーダー2.0では、1つのパーツに影響するボーンの総数が44個を超えると、オーバーヘッドが生じますが、
        頂点シェーダ1.1では、14個を超えるとオーバーヘッドが生じます。


ver3.0.0.8(2007/04/27)

    moaファイル読み込み時のモーション遷移(E3DSetNewPoseByMOA)を修正。
      補間モーション中にモーション遷移が起こった場合の処理を修正。
      より、なめらかになりました。


ver3.0.0.9(2007/05/01)
    デバッグ
      E3DAddMPが、MPI_SCALEDIVを考慮していなかったのを修正。
      E3DSetMPInfoで、スケールを指定しなかったときの処理にバグがあったのを修正。
      マニュアルの誤字をいくつか修正。


ver3.0.1.0(2007/05/04)
    トゥーン表示(COL_TOON1)に輪郭線を加えました。
      マテリアルごとに、輪郭線のオンオフ、色、太さを設定できます。
      押し出し反転法で、2パスで描画します。

    RokDeBone2 ver3.0.0.8で設定した輪郭データの入ったsigファイルを表示することにより、輪郭線機能が有効になります。


ver3.0.1.1(2007/05/05)
    デバッグ
      E3DDestroySpriteのバグを修正。
        同じファイル名でE3DCreateSpriteを複数回呼び出し、1回だけE3DDestroySpriteを呼び出したときに、
        同名の全てのスプライトが削除されてしまうバグ。

    トゥーン輪郭線操作関数の追加
      E3DEnableToonEdge  輪郭線のオンオフをします。
      E3DSetToonEdge0Color  輪郭線の色をセットします。
      E3DSetToonEdge0Width  輪郭線の幅をセットします。
      E3DGetToonEdge0Color  輪郭線の色を取得します。
      E3DGetToonEdge0Width  輪郭線の幅を取得します。


ver3.0.1.2(2007/05/06)
    デバッグ
      テクスチャを貼ったパーツを半透明に出来なくなっていたバグを修正。


ver3.0.1.3(2007/05/07)
    デバッグ
      im2ファイルの読み込みが、画面に反映されないバグを修正。
      E3DSetScaleのcenterflagが0と1のとき、正しく座標変換されないバグを修正。


ver3.0.1.4(2007/05/08)
    E3DSetRenderStateのD3DRS_LIGHTINGの設定が描画に反映されるようにしました。
      「色P」設定の sig, ビルボードの場合は、頂点のdiffuse色のみをライティング効果なしで適用します。
      「色ト」設定の場合は、暗いところの色を適用します。


ver3.0.1.5(2007/05/10)
    パーティクルのサポートを追加しました。
      E3DCreateParticle maxnum, texname, width, height, blendmode, particleid
      E3DDestroyParticle particleid
      E3DSetParticlePos particleid, posx, posy, posz
      E3DSetParticleGravity particleid, gravity;
      E3DSetParticleLife particleid, life
      E3DSetParticleEmitNum particleid, emitnum
      E3DSetParticleVel0 particleid, minvelx, minvely, minvelz, maxveclx, maxvely, maxvelz
      E3DSetParticleRotation particleid, rotation
      E3DSetParticleDiffuse particleid, r, g, b
      E3DRenderParticle particleid, fps, scid

      サンプル e3dhsp3_particle.hsp を追加。


ver3.0.1.6(2007/05/11)

    デバッグ
      パーティクルの最小速度と最大速度の差が大きいときに、うまく分散して放出されないバグを修正。
        差が30000くらいまで大丈夫です。

    パーティクル関数の追加
      E3DSetParticleAlpha
      E3DSetParticleUVTile の追加。
      パーティクルが放出されてからの経過時間範囲ごとに、透明度とUVを設定できます。

    サンプル e3dhsp3_particle2.hsp を追加。


ver3.0.1.7(2007/05/14)

    E3DSetAlpha, E3DSetAlpha2, E3DSetParticleAlphaの高速化。
      ビデオメモリへのアクセスがほとんどなくなりました。
      負荷は気にしなくていい程度になりました。
    
    E3DSetParticleUVTileの高速化。
      tilenoの変更が生じない場合は、処理をスキップするようにしました。

    地面に対するE3DSetPosの高速化。
      当たり判定の座標系を変更することにより、データ更新が最小限で済むようになりました。
      負荷は気にしないでいい程度になりました。

    地面の当たり判定の修正
      内部での判定時の座標系を変更しました。


ver3.0.1.8(2007/05/16)

    デバッグ
      ビルボードに対するE3DSetScale呼び出しで、centerflagを1にしたときの動作が間違っていたのを修正。

    E3DRenderParticleのfps引数にマイナスの値を指定した場合は、
    パーティクルを静止したまま描画するように修正。

    E3DInitParticleを追加。
      パーティクルの発生状態を初期状態に戻します。

    マニュアルの誤記修正
      当たり判定の引数説明で、adjustx, adjusty, adjustzとあるべきとろころが、3つともadjustxになっていた部分を修正。
      E3DChkConflictはver3.0.0.1から視野外でも機能するのに、機能しないと書いてあったのを修正。


ver3.0.1.9(2007/05/29)

    デバッグ
      トゥーン設定したモデルデータを表示すると、E3DCreateBGで作成した背景が真っ白になるバグを修正。


ver3.0.2.0(2007/06/24)

    モーションアクセラレータのバージョンアップ
      共通分岐機能の追加。
      補間なしで分岐するオプションを追加。
      イベント番号0でアイドリングに戻すオプションを追加。
      ファイルフォーマットをver2.0にバージョンアップ。
      詳しくは、モーションアクセラレータのページをご覧ください。

    関数の追加
      E3DPickFace2 (E3DPickFaceに判定パーツを指定できるようにしました)
      E3DChkConfWall3 (E3DChkConfWallに判定パーツを指定できるようにしました。)
      E3DGetMotionIDByName (モーション名からモーションIDを取得できます)
      E3DGetMotionNum (読み込んでいるモーションの数を取得します。)
      E3DDot2 (正規化をしない内積計算です)


///////////////////


トップページに戻る