プロジェクトの期限が迫っていますが、3D Studio Max で作成したモデルを読み込もうとすると多くの問題が発生します。私が作成したモデルは、XNA ゲームの地形として必要なものです。これが私がこれまでに行ったことです:
方法:
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Model terrainModel;
Vector3 terrainPosition = Vector3.Zero;
Vector3 cameraPosition = new Vector3(0.0f, 60.0f, 160.0f);
Vector3 cameraLookAt = new Vector3(0.0f, 60.0f, 160.0f);
Matrix cameraProjectionMatrix;
Matrix cameraViewMatrix;
LoadContent()
spriteBatch = new SpriteBatch(GraphicsDevice);
cameraViewMatrix = Matrix.CreateLookAt(
cameraPosition,
Vector3.Zero,
Vector3.Up);
cameraProjectionMatrix = Matrix.CreatePerspectiveFieldOfView(
MathHelper.ToRadians(80.0f),
graphics.GraphicsDevice.Viewport.AspectRatio,
1.0f,
1000.0f);
terrainModel = Content.Load<Model>("alphastreet");
Draw(GameTime gameTime)
GraphicsDevice.Clear(Color.CornflowerBlue);
DrawModel(terrainModel, terrainPosition);
// TODO: Add your drawing code here
base.Draw(gameTime);
そして、私は描きたい:
void DrawModel(Model model, Vector3 modelPosition)
{
foreach (ModelMesh mesh in model.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
effect.EnableDefaultLighting();
effect.PreferPerPixelLighting = true;
effect.World = Matrix.CreateTranslation(modelPosition);
effect.Projection = cameraProjectionMatrix;
effect.View = cameraViewMatrix;
}
mesh.Draw();
}
}
それ以外はすべて、XNA ファイルの外観と同じです。モデル自体はかなり単純な通りのように見えます。ただし、XNA がモデルをロードすると、ロードされるのはウィンドウ内の大きなブロックにすぎません。
モデルをこのようにロードするために何をしているのかわかりませんが、髪の毛を引っ張っています。どんな助けでも大歓迎です。
また、ウォークスルー/ガイド、または一人称シューティングカメラを作成するクラスに私を導くことができる人はいますか?それは私が行くゲームだからです. 私はおそらくそれを選ぶべきではありませんでしたが、今変更するには遅すぎます.
ありがとう、ジェイク!