【CryENGINE】インポート・衝突判定について(3)
とまぁ(1)(2)で作成したような単純なオブジェクトだと問題なくインポートできるんですが…。
というわけで番外編(ただのエラー報告かも)
注:現在、私が使用しているのはFree SDK版であり、既にEaaS版では修正されている可能性があります。
1つのオブジェクトを複雑にし過ぎるとこんな感じでエラー吐かれます。
窓の部分ですね。これが衝突判定なければ問題なく出力されるんです。
オブジェクトが小さすぎてダメということなのでしょうか?
が、しかし、こんな面が重なりまくりの適当なオブジェクトだとエラーがでないんです…。
このモデルはUV展開はしていませんが、衝突判定はあります。
現在のところ、このオブジェクトは
モデリングソフトウェア側でオブジェクトを分けまくる
ことでしかエラーを回避できていません。
オブジェクトを分けまくるとUV展開しようが衝突判定つけようが問題ありません。
以上参考として
【CryENGINE】インポート・衝突判定について(2)
マテリアルが2つ以上の場合
こちらはまずはマルチマテリアル作成。
その後、必要数の標準マテリアルを作成→シェーダ基本パラメータをCrytec Shaderに変更。
そして、マルチマテリアルをモデルに適用します。
テクスチャを分けたい面ごとに、モディファイヤの「ポリゴンを編集」で選択
マルチマテリアルで指定したマテリアルNo.を選択
あとは、「ポリゴンの編集」を終了してUVアンラップ→出力(マテリアルが1つの場合と同じです)
ここからはCryENGINEでの作業
まずは読み込むと、このように表示されるはずです。
Add New Multi Materialでマルチマテリアルを作成→Set Number of Sub-Materialsでマテリアルを3dsMAXのマテリアルと同数作成(3dsMAXから作成することも可能)
マテリアルをクリックしていけば適用されている部分が青く光るので、そこに割り当てたいテクスチャを適用
以上で完了です。
【CryENGINE】インポート・衝突判定について(1)
インポートや衝突判定については先人の方々も紹介してくださっていますが、個人的にわかりにくかった部分もあるのでまとめておこうと思います。
とりあえず静的オブジェクトに限った話をします。
静的オブジェクトのインポートは、基本的に3dsMAXを使って行うことをお勧めします。
どうしても3dsMAXで扱えない形式を扱いたい、なんて時は
メタセコイアの場合は、EX版のFBX出力機能を使えば可能なようです。
また、BlenderでCryBlendを使って出力することも可能なようです。
しかし、メタセコイアで出力したmqoをBlenderでプラグインを使い読み込んで、CryBlendを使いCryENGINEに出力するなんてことはできません。
というか正しく出力できません。
素直にBlenderで一から作るか、メタセコイアのEX版を購入することを強くお勧めします。
ここからは3dsMAXで出力するぜいって時のお話です。
まず、3dsMAXでCryENGINEに出力するには、CryENGINEのプラグインが必要ですので入れてください。
で、出力したいモデルを作るわけですが、マテリアル設定が普通と違いCryENGINE独自のものになります。
モデルはポリゴンにしておいてください。
マテリアルが1つの場合(テクスチャが一枚の場合)
まず、標準マテリアルを作成し、シェーダ基本パラメータをCrytec Shaderに変更します。
この「衝突あり描画無し」というのに設定した場合、CryENGIEN側のマテリアル設定でもShaderをNoDrawにしてください。(追記:ここで言う「衝突あり描画無し」はcgfでは使えないっぽいです)
「衝突無し描画あり」でいいのであれば、そもそもシェーダ基本パラメータをCrytec Shaderに変更しなくとも出力することは可能だったりしますが、一応、変えておきましょう。
あとは普通にUV展開等してモデルを完成させてください。
モデルが完成したら、下図のようにCryENGINE3 Exporterを選択し、出力したいモデルを選択しAdd Selected→Export Nodesを選択すれば、max形式と同名のcgfがmaxと同じフォルダに作成されます。
設定していなければCryENGINE3 Exporterは「その他」の中に入っていると思います。
出力する前には必ずmax形式で保存してください。
以上で出力は終了です。
CryENGINEでcgfを読み込みマテリアルを割り当て、テクスチャ(.dds)を割り当てればモデルが表示されると思います。
「マテリアルが2つ以上の場合」については次回書いていこうと思います。