まとめ
- DXライブラリで描画するためのモデルデータの作成手順を記載
- DXライブラリでの描画手順を記載
はじめに
アイキャッチは詐欺です.
こんなに立派な車のモデルの描画はしません.
3Dモデルを用意する
まずは,
DXライブラリで扱える形式の 3D モデルを用意する必要がある.
3D モデルをロードする関数,
MV1LoadModel() で読み込むことができる形式は以下の通り.
- x
- mqo
- mv1
- pmd( + vmd )
- pmx( + vmd )
今回は,
fbx で出力 → mv1 に変換したものを使用する.
Blender で fbx をエクスポート
使用した bLender のバージョンは 2.81a.
blenderを開いたら,
最初からボックスが配置してある.
今回は,そのボックスをエクスポートする.
ファイル > エクスポート > fbx
を選択.
オプションは,
- オブジェクトタイプ > メッシュのみ選択
- (必要なら)拡大縮小 を 0.01に
で,後はデフォルトで良い.
box.fbx と名前をつけてエクスポートする.
DxLibModelViewer で fbx を mv1 に変換
Dxライブラリ付属のモデルビューア,
DxLibModelViewer で mv1 に変換する.
DxLib を解凍したフォルダの
- DXLib\DxLib_VC\Tool\DxLibModelViewer\DxLibModelViewer_64bit.exe
がそれに当たる.
起動して,
先程出力した fbx をドラッグ & ドロップ.
でボックスを読み込む.
ファイル > 名前を付けてメッシュのみ保存
で,box.mv1 と名前を付けて保存する.
DXライブラリでロードして描画する
box.mv1 を読み込んで描画するサンプルコードは以下.
※vcxproj があるディレクトリに box.mv1 を配置してある前提.
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int ModelHandle ;
ChangeWindowMode( true );
// DXライブラリの初期化
if( DxLib_Init() < 0 )
{
// エラーが発生したら直ちに終了
return -1 ;
}
// 3Dモデルの読み込み
ModelHandle = MV1LoadModel( "box.mv1" ) ;
SetCameraPositionAndTarget_UpVecY( VGet(0, 0, -1000), VGet(0, 0, 0) );
// 画面に映る位置に3Dモデルを移動
MV1SetPosition( ModelHandle, VGet( 0.0f, 0.0f, 0.0f ) ) ;
// 3Dモデルの描画
MV1DrawModel( ModelHandle ) ;
// モデルハンドルの削除
MV1DeleteModel( ModelHandle ) ;
// キーの入力待ち
WaitKey() ;
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}
エクスポート時の拡大縮小の設定次第で,
カメラの位置とかは要調整かも.
以上.