2015年05月09日

メニューモジュール2

ss.jpg

メニューモジュール2(for hgimg3)
ライセンスはCC表示

<説明>
サイズと画像を変更可能なメニューを任意の座標に表示し
マウス判定できるようになるモジュールです。
サンプルはEnterキーとクリックでメニューをそれぞれ表示します。
左上にメニューのどの項目をマウスが指しているか表示されます。

<導入手順>
1.「menu2.as」をインクルード
2.MDL_MenuInitでモジュール初期化
3.MDL_MenuRegTextureでメニュー画像登録
4.MDL_MenuCreateでメニュー作成
5.MDL_MenuCheckでメニュー判定
6.MDL_MenuUpdateで描画
7.MDL_MenuControlでon/off操作

こうしてみると手順多い;
適宜改造してご利用ください。

posted by bt at 07:38| Comment(0) | モジュール | このブログの読者になる | 更新情報をチェックする

2014年04月03日

軌跡モジュール



ちょっと物足りない感じがしたので4面を4分割したものに変更。
軌跡モジュール(for hgimg3)
ライセンスはCC表示
「d3dxmath.as」は暇人氏作成モジュールをいじったものです。
武器モデルは鍛冶屋黒胡椒さんからお借りしています。

※このモジュールは前提としてアタッチモジュール2を導入しないとうまく機能しないかと思います
<導入手順>
1.「d3dxmath.as」「attach2.as」「kiseki.as」の順にインクルード
(「d3dxmath.as」は「attach2.as」「kiseki.as」の両方で使います)
2.「mod_KisekiIni」で初期化
3.軌跡用モデル登録(sampleでは「kiseki.x」)
4.「mod_KisekiCtrl」で頂点操作
(頂点操作は必ずアタッチ処理の後に行ってください。アタッチ処理した武器モデルの座標を使います)
以上

軌跡モデルは参考にmqoファイルを入れときました。
メタセコで面を作成して、辺を等分割して、最後に全選択して両面化したものです。
(こうして作成すると頂点数が少なくてhgimg3側で頂点管理が楽)

頂点操作をモジュール側で計算しているだけなので
hg3側でオブジェクトを操作して表示・非表示にしたり、テクスチャも変えられるかと思います。

次回からは攻撃ヒット時のダメージ文字表示など
posted by bt at 19:53| Comment(0) | モジュール | このブログの読者になる | 更新情報をチェックする

2014年03月26日

アタッチモジュール2



アタッチモジュール2(for hgimg3)
ライセンスはCC表示
「d3dxquaternion.as」は暇人氏作成モジュールです。
武器・盾モデルは鍛冶屋黒胡椒さんからお借りしています。

旧バージョンの修正版。
デメリット:導入が面倒臭くなった点。
メリット:1フレームのズレがなくなった点。クローンモデルにも武器を持たせられるようになった点。

<手順>
1.「d3dxquaternion.as」「attach2.as」をインクルード
2.「D3DXQuaternion_init」で初期化。「mod_AttachIni」で初期化
3.Xモデル登録
4.「mod_AttachGetBone」でボーン情報取得(モーションの数だけ行う)
5.メインループ内で「mod_AttachObj」でくっつける(モデルが同じならボーン情報を使いまわせる)
以上

※旧バージョンと同様で、導入にはモデル側の下準備が必要です。
posted by bt at 23:02| Comment(0) | モジュール | このブログの読者になる | 更新情報をチェックする

2014年03月15日

BBOXモジュール

サンプルすぐできました(´・ω・`;)
ちょっとソースがきたないゴリ押しモジュール。速度には気をつけたつもり。

バウンディングボックスモジュール(for hgimg3)
ライセンスはCC表示
「convert.as」は暇人氏作成モジュールを若干加工したものです。

キャラクターにバウンディングボックスを作成して
マウスレイと線分判定できるようにするモジュール。
※キャラの足元(モデルの底辺)を原点として作られているので、キャラの中心を原点とする場合はモジュールの改良が必要です

<手順>
1.「bbox.as」「convert.as」インクルード
2.「mod_BBoxInit」で初期化。「cnvsptowp_init」で初期化
3.「mod_BBoxCreate」でBBOX作成
4.「mod_GetRayVec」でマウスレイのベクトル取得
5.「mod_BBoxRayConf」でマウスレイと衝突判定
以上

サンプルは、マウス右クリックでカメラ操作、左クリックでマウスレイ飛ばし、十字キーでキャラ回転
緑の物体がキャラと仮定してください。青がBBOXです。
使い方としては、線分判定なのでマウスレイだけでなく、弾や弓矢を当てるのにも使えますね。
posted by bt at 07:59| Comment(0) | モジュール | このブログの読者になる | 更新情報をチェックする

2014年03月03日

hghit2モジュール

ss_hghit2.jpg

hghit2モジュール(for hgimg3)(zip 472KB)サンプル有り

hgimg3で壁や地面と一般的な衝突判定を行うモジュール。
原作者Mackman氏の「hghitモジュール」を改良したものです。
ライセンスはCC表示

より複雑な地形で衝突判定する場合は、各自の工夫が必要です。
こちらの記事で仕組みを理解することをおすすめします。

高速化成功。壁判定はさほど変わらないですが、地面判定が向上。
1万回計ったところ、地面判定が3326→1778msに(一回0.18ms程度)
ただやはり処理が重そうなので、キャラ20体程度に使うのが限界かもしれません。
壁判定はそもそも重くない。
方法次第ではもっと高速化できるかも。

<手順>
1.「hghit.as」をインクルード
2.表示用モデルを読み込み、オブジェクト登録
3.「loadground」で地面データ読み込み
4.「loadwall」で壁データ読み込み
5.「groundhit」「wallhit」で衝突判定
以上

<追加機能>
地面判定の際に、面番号、面法線、面マテリアルを返すようにした。

<マップモデル制限>
・メタセコイア出力のXファイル(DirectX Retained mode)の形式にしか読み込み対応していません。
・モデルはすべて三角形化しておかないと不具合が生じるかもしれません
・モデルの作り方などはMackman氏の「hghit」添付のReadmeを参照ください

実際にサンプルにしてみたら、いくつかバグがあったので修正。
なにかバグみつけたらお知らせください。

次回は自分のプログラムに導入(´・ω・`)
posted by bt at 23:56| Comment(6) | モジュール | このブログの読者になる | 更新情報をチェックする