Re: DxLibModelViewerの追加モデル読み込みについて ( No.1 ) |
- 名前:管理人 日時:2024/07/23 22:45
|
Re: DxLibModelViewerの追加モデル読み込みについて ( No.2 ) |
- 名前:Deiv 日時:2024/07/25 15:45
ご返信ありがとうございます。
サンプルプログラムの通りにプログラムを組んだ所、恐らくベースモデルに追加モデルを付けることが出来ました。
ですが追加モデルのサイズが変更できず、MV1SetScaleで値を小さくしてもサイズが大きいままでした。
こちらに関しまして、何か改善方法等ございましたらご教授いただければと思います。
|
Re: DxLibModelViewerの追加モデル読み込みについて ( No.3 ) |
- 名前:管理人 日時:2024/07/26 03:06
すみません、MV1SetMatrix を使用する場合は MV1SetScale は無効化されてしまうので、
MV1SetMatrix でセットする行列にスケーリングの効果を入れる必要があります
件のサンプルの例で言えば、SetModelFramePosition 関数の中の以下の部分を
MV1SetMatrix( SetModelHandle, FrameMatrix ) ;
例えばこのようにすることでサイズを半分にすることができます
MV1SetMatrix( SetModelHandle, MMult( MGetScale( VGet( 0.5f, 0.5f, 0.5f ) ), FrameMatrix ) ) ;
少し解説しますと、MMult は第一引数の行列と第二引数の行列を乗算する関数です
そして第一引数には MGetScale という『スケーリング行列を取得する関数』で x, y, z が全部 0.5f の、
つまりサイズを半分にする引数を渡していますので、乗算するとサイズが半分になる行列が MGetScale の
戻り値となり、それが MMult の第一引数となっています
第二引数には FrameMatrix が渡されていますので、サイズを半分にする行列と FrameMatrix の行列が
掛け合わされ( 乗算され )、それが MV1SetMatrix に渡されているので、結果としてベースモデルの
特定のフレーム( ボーン )にアタッチされつつサイズが半分になります
MGetScale( VGet( 0.5f, 0.5f, 0.5f ) )
↑
こちらの部分の 0.5f, 0.5f, 0.5f の部分をご希望のスケール値にしていただくことで
MV1SetScale の代わりとなりますので、よろしければお試しください m(_ _)m
|
Re: DxLibModelViewerの追加モデル読み込みについて ( No.4 ) |
- 名前:Deiv 日時:2024/09/01 13:46
ご返信遅くなり申し訳ございません!
無事にベースモデルに追加モデルを任意のサイズで持たせることが出来ました!
今の所アニメーションでもしっかり動いていたので良かったです。
ありがとうございます。
|
Re: DxLibModelViewerの追加モデル読み込みについて ( No.5 ) |
- 名前:Deiv 日時:2024/10/24 10:38
再度質問失礼致します。
こちらの追加モデルについてですが、サイズを変えつつ角度を調整することは可能でしょうか?
内容としては、プレイヤーに銃を持たせたいが銃口が上を向いており角度を調整したいというものです。
お手すきの際にご確認いただけますと幸いです。
|
Re: DxLibModelViewerの追加モデル読み込みについて ( No.6 ) |
- 名前:管理人 日時:2024/10/25 02:08
> こちらの追加モデルについてですが、サイズを変えつつ角度を調整することは可能でしょうか?
はい、可能です
件の MV1SetMatrix の部分を以下のようにすると回転もできます
( 下記の例では Y軸 に 90度回転とサイズを 0.5倍にしています )
MATRIX RotateMatrix ;
CreateRotationXYZMatrix( &RotateMatrix, 0.0f, 3.14159f / 2.0f, 0.0f ) ;
MV1SetMatrix( GunModelHandle, MMult( MMult( RotateMatrix, MGetScale( VGet( 0.5f, 0.5f, 0.5f ) ) ), FrameMatrix ) ) ;
MMult で回転の行列と拡大の行列を掛け合わせます
|