動画拝見しました、凄いです
まだ自分では広いステージを表示したことが無かったので開放感のあるステージが新鮮でした
動画の中で触れられていますMMD形式についてはつい最近その存在を知りました
PMD形式の読み込みに対応してもデフォルトポーズのキャラクターが表示できるだけなので、
フォーマットが公開されていないMMD形式、若しくは最低でもVMD形式を読み込めないと意味が無いみたいですね・・・
MMD関連は今日少し調べてみた程度なのですが、モデリングソフト界でいうところのメタセコイアのような
存在になりつつあるのでしょうか?
あと、すいません、現在公開されているバージョンにはテクスチャ座標を操作する機能はありません
なのでその機能を実装したこちらのバージョンをダウンロードしてください m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
こちらのバージョンでは以下の二つの関数が増えています
解説文はリファレンスマニュアルに記載したものをそのままコピーしたものです
// フレームのテクスチャ座標変換パラメータを設定する
// int MHandle : モデルのハンドル
// int FrameIndex : フレームの番号
// float TransU : テクスチャ座標のU値に加算する値( 初期値 0.0f )
// float TransV : テクスチャ座標のV値に加算する値( 初期値 0.0f )
// float ScaleU : テクスチャ座標のU値に掛ける値( 初期値 1.0f )
// float ScaleV : テクスチャ座標のV値に掛ける値( 初期値 1.0f )
// float RotCenterU : テクスチャ座標の回転中心となるU値( 初期値 0.0f )
// float RotCenterV : テクスチャ座標の回転中心となるV値( 初期値 0.0f )
// float Rotate : テクスチャ座標の回転値( 単位はラジアン )( 初期値 0.0f )
int MV1SetFrameTextureAddressTransform( int MHandle, int FrameIndex, float TransU, float TransV, float ScaleU, float ScaleV, float RotCenterU, float RotCenterV, float Rotate ) ;
解説
MHandle と FrameIndex が示すフレームが直接持っているメッシュを描画する際に、
メッシュのテクスチャ座標に対して行う変換処理のパラメータを設定します。
用途としては、例えばキャラクターの顔のテクスチャに複数の表情を予め描いておいて、
表情を変えたいタイミングでその表情が描かれているテクスチャ座標に TransU と TransV の
引数を使用してメッシュに含まれる頂点のテクスチャ座標をスライドさせて描画される表情を変更する、
などがあります。
尚、各引数の意味は上記の注釈の通りですが、パラメータによる演算が行われる順序は
1.RotCenterU, RotCenterV, Rotate による座標値の回転
2.TransU, TransV を座標値に加算
3.ScaleU, ScaleV による座標値の拡大
となります。
この関数による設定をリセットしたい場合は MV1ResetFrameTextureAddressTransform を使用してください。
// フレームのテクスチャ座標変換パラメータをリセットする
// int MHandle : モデルのハンドル
// int FrameIndex : フレームの番号
int MV1ResetFrameTextureAddressTransform( int MHandle, int FrameIndex ) ;
解説
関数 MV1SetFrameTextureAddressTransform で設定したテクスチャ座標変換パラメータを初期値にリセットします。
効果的には MV1SetFrameTextureAddressTransform 関数の引数を注釈に「初期値」として記載されている値を渡して
呼んだ場合と同じです。
設定の単位はフレームです
例えばキャラクターの顔部分のフレームが8番だとして、そのフレームに含まれるメッシュのテクスチャ座標を
Uを0.5、Vを0.8移動したい場合は
MV1SetFrameTextureAddressTransform( ModelHandle, 8, 0.5f, 0.8f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f ) ;
という感じにします
よろしければお使い下さい