ゲームで使いたい3DモデルはFBXファイルにして「Assets」フォルダの中に入れておく。
Mayaで作ったモデルをFBXにする方法はこちら。
モデルは何らかのゲームオブジェクトとして登場するので、すでに作成済みのゲームオブジェクトクラス内に処理を書く。
例えば、Playerクラスでモデルを表示する場合で説明する。
モデルは全て番号で管理するので、その番号を入れる変数を用意する。(名前は何でもOK)
<Player.h> (太字部分を追加)
#pragma once
#include "Engine/GameObject.h"
class Player : public IGameObject
{
int hModel_; //モデル番号
public:
クラスのメンバ変数を作ったら、必ずコンストラクタで初期化する。
画像の番号は0以上(0も含む)の値になるので-1にしておく。
<Player.cpp> (太字部分を追加)
Player::Player(GameObject * parent)
:GameObject(parent, "Player"), hModel_(-1)
{
}
次にモデルデータをロードする。
#include <●●●.h>
#include "Engine/Model.h"
:
:
:
void Player::Initialize()
{
//モデルデータのロード
hModel_ = Model::Load("ファイル名");
assert(hModel_ >= 0);
}
Model::Loadがモデルをロードする関数で、引数にファイル名を指定する。
そのためにはModel.hのインクルードが必要になる。
これでhModel_に画像の番号が入るが、ファイル名を間違っているなどしてロードできなかった場合は-1が入る。
ロードすれば描画できる。
void Player::Draw()
{
Model::SetTransform(hModel_, transform_);
Model::Draw(hModel_);
}
これで、モデルが画面に表示されるはず。(もちろんゲームオブジェクトがゲームに登場しているのが前提)
Model::SetTransformは表示する位置やサイズを設定するもので、第1引数はモデルの番号、第2引数は特に気にせずtransform_と書く。
Model::Drawが実際に画面にモデルを表示する。引数が表示したいモデルの番号。