MV1LoadModel

モデルの読み込み

val = MV1LoadModel(FileName)

FileName : ロードする3Dモデルファイルのパス文字列のアドレス

(プラグイン / モジュール : DxLibW)

解説

3Dモデルファイルをメモリにロードします。

DXライブラリで3Dモデルを扱うときに必ず使用する関数です。

この関数が成功するとモデルハンドルというものが返ってきます。

これはメモリに読み込んだ3Dモデルファイルの識別番号で int 型の数値です。

読み込んだモデルを扱う際にこの識別番号を使用することになりますので、
MV1LoadModel の戻り値は必ずなんらかの変数に格納しておく必要があります。

例  DxChara.x をロードして、戻り値であるモデルハンドルを

int 型変数 MHandle に保存します

int MHandle ;

MHandle = MV1LoadModel( "DxChara.x" ) ;

読み込むことのできるモデルファイル形式は x, mqo, mv1, pmd( + vmd ), pmx( + vmd ) の4種類です。

( 但し、pmx は pmd 相当の機能だけを使用していた場合のみ正常に読み込める仮対応状態です )

尚、形状情報とアニメーション(アニメーション)情報はファイルの内容通りに読み込めますが、
マテリアル情報は各ファイル形式それぞれで異なる表現をしているものを無理矢理DXライブラリのマテリアル表現で扱おうとするため、
大抵の場合モデリングソフト上とは異なった見た目になってしまいます。

なので、そのような場合はDXライブラリに合わせてモデルファイルのマテリアルを調整していただくか、
DXライブラリの3Dツールでマテリアルを調整してからライブラリの専用形式である mv1 形式で保存して、そのファイルを使っていただくことになります。

また、モデルファイルで使用されているテクスチャはモデルファイルの中には含まれませんので、
モデルファイルで指定されているフォルダにテクスチャファイルを格納しておく必要があります。

MMD( MikuMikuDance )のモデルファイル( pmd or pmx )とモーションファイル( vmd )について。

<対応度について>

一応モーションの再生と取れに伴うIK、物理演算に対応していますが、完全に本家 MikuMikuDance と同じというわけではありません。

<読み込みについて>

MikuMikuDance ではトゥーン用のテクスチャ( toon01.bmp 等 )はモデルファイル( pmd or pmx )が存在するテクスチャとは別のフォルダにあっても問題なく読み込むことが出来ますが、
DXライブラリではトゥーン用のテクスチャもモデルファイル( pmd or pmx )と同じフォルダに格納しておく必要があります。( トゥーン用のデフォルトテクスチャは MikuMikuDance の Dataフォルダの中にあります )

また、DXライブラリでは MMD のモデルファイル形式( pmd or pmx )とモーションファイル形式( vmd )の読み込みに対応していますが、
モーションファイル( vmd )はモデルファイル( pmd or pmx )を読み込む際に一緒に読み込まれるようになっています。

ただ、MV1LoadModel にはモーションファイルのファイル名を渡す引数はありませんので、
次のようなルールでモデルファイル( pmd or pmx )用のモーションファイルを検索します。

1.モデルファイル名に3桁の番号がついたモーションファイルがあるか検索して、あったら読み込む

( 検索する番号は 000 から )

例えば、Miku.pmd ( 若しくは Miku.pmx ) というファイル名を FileName として渡した場合は、

最初に Miku000.vmd というモーションファイルが存在するか調べます。

2.検索する番号を000から順に1づつ増やしていき、存在しないファイル名になるまで読み込む

例えば、Miku000.vmd、Miku001.vmd、Miku002.vmd と数字の繋がった3つのモーションファイルが

あった場合は3つとも読み込まれます。

仮に Miku000.vmd, Miku001.vmd, Miku005.vmd のように、番号が途切れていたら、Miku000.vmd と

Miku001.vmd の二つだけ読み込まれ、Miku005.vmd は読み込まれません。


尚、読み込み時にIK計算を行いますので、xファイルやmv1ファイルに比べて読み込み時間が非常に長くなっています。

<ループ再生するモーションについて>

モーションの中には歩きや走りといったループさせて再生を行う用途のモーションがあると思います。

そのようなモーションの vmd ファイルは、<読み込みについて>の解説にあったファイル名の付け方にある3桁のモーションの番号の最後に半角の L をつけてください。

例:Miku000.vmd ~ Miku002.vmd の3つのファイルがあり、Miku000.vmd と Miku002.vmd が

ループ再生用途のモーションの場合


Miku000.vmd Miku001.vmd Miku002.vmd


↓


Miku000L.vmd Miku001.vmd Miku002L.vmd

L を付けることで関数 MV1SetLoadModelUsePhysicsMode の設定が「読み込み時に物理演算を行う」 DX_LOADMODEL_PHYSICS_LOADCALC
となっている場合( デフォルトの設定は DX_LOADMODEL_PHYSICS_LOADCALC です
)の物理演算がループ再生用途のモーション用にモーションの最初と最後のフレームが綺麗に繋がり自然なループ再生ができるように処理されます。

逆にループ用途のモーションではないのに L を付けてしまうとモーションの最後の部分が変になってしまうので注意してください。

また、L を付けても物理演算によって動く部分の動きが激しいときはやっぱりループ時に不自然な見え方になってしまいますので、
その際はリアルタイム物理演算の設定である DX_LOADMODEL_PHYSICS_REALTIME をお使いください。

<モーションの再生について>

モーションの再生は他の形式と同じように MV1AttachAnim を使用します( AnimIndex は vmd についている番号を指定します )

フレーム構造の違う他のモデルのモーションを使用する場合は MV1AttachAnim の NameCheck を TRUE にし...

戻り値:
  -1    : エラー発生
  -1以外 : モデルのハンドル

関連項目

MV1DrawModelモデルを描画する(DxLibW)
MV1DeleteModelモデルを削除する(DxLibW)
MV1SetPositionモデルの座標をセットする(DxLibW)

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib 3Dモデル
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs