モデルとしてXNAゲームの背景を作成しましたが、内部にさらに多くのモデルが含まれています。例:「地面にはボールが含まれています」。さて、私がやりたいのは、地面の中に入ってボールを取り出し、サイズを変更することです。
これを行う可能性はありますか、それとも地面とボールを別々にインポートしてからサイズを変更する必要がありますか(これが最後のオプションであることが望ましいです)?
モデルとしてXNAゲームの背景を作成しましたが、内部にさらに多くのモデルが含まれています。例:「地面にはボールが含まれています」。さて、私がやりたいのは、地面の中に入ってボールを取り出し、サイズを変更することです。
これを行う可能性はありますか、それとも地面とボールを別々にインポートしてからサイズを変更する必要がありますか(これが最後のオプションであることが望ましいです)?
ModelMesh
モデル内の特定の値をスケーリングしたいということだと思います。Matrix
これは、個々のメッシュに固有の変換を含む配列を使用して実行できます。このようなもの:
//In the class for the background, or the game class if there isn't one
Matrix[] specificTransforms;
//Initialize the array however you want, and assign the specific matrix for the ball to its corresponding index
//Loop through the meshes like usual but add this below your code that multiplies the transform matrices:
if (specificTransforms[(put your iterator variable here)] != null)
{
(put your BasicEffect here).World *= specificTransforms[put your iterator variable here];
}
これにより、メッシュのワールドマトリックスと、ボールに適用する特定の変換が組み合わされます。
これは最善の方法ではありません。使用しているコードを投稿すると、例を示すのが簡単になります。そうしない限り、これが機能するという保証はありません。