■はじめに
ここではtsoファイル梱包時によくあるエラーについて、その原因を解説します。
またその前提情報として、tsoファイル作成に必要となるファイルの情報やtsoファイル梱包の際に注意すべき点を解説します。
なお、この解説はツール Tso2MqoGUI.exe の v0.32 を使用した環境に準拠しています。
今後のアップデートなどでメッセージ等が変更される場合もありますのでご注意ください。
■前提情報
mqo→tso変換に必要なファイル
tsoファイルの作成には下記のファイルが必要です。
漏れが無いか確認しましょう。
(1)mqoファイル(拡張子:mqo)
(2)xmlファイル(拡張子:xml)
(3)シェーダー設定ファイル(拡張子:なし)
(4)テクスチャファイル(拡張子:bmp または tga)
(5)tsoファイル(拡張子:tso)
ファイル情報
tsoファイルの作成に使用する各ファイルでは、それぞれ内部で下記情報を指定しています。
テクスチャファイルを指定
シェーダー設定ファイルを指定(材質名がシェーダー設定ファイルの名前になる)
テクスチャ名(※)に対応するテクスチャファイル(とそのサイズ)を指定
シェーダー設定ファイルの使用を宣言
(※)この「テクスチャ名」はシェーダー設定ファイルから参照されるだけのもので、実際のテクスチャファイル名やメタセコ上の材質名とは特に関係ありません
シャドウ用テクスチャのテクスチャ名を指定
通常テクスチャのテクスチャ名を指定
注意すべき点
- テクスチャファイルのパスは正しいか?
- メタセコでの材質名とシェーダー設定ファイル名は同じか?
- シェーダー設定ファイル中で指定しているテクスチャ名がxmlファイル中で定義されているか?
- xmlファイル中で、同じテクスチャ名が複数回定義されていないか?
■よくあるエラー事例
マテリアルの情報が正しく反映されていないか、ファイルが存在しません
→Tso2MqoGUI.exeのマテリアル設定ウィンドウでマテリアルを1つ1つ確認し、「Valid」の欄が「False」になっているマテリアルを探す。問題のマテリアルを見つけたら以下をチェック。
・「シェーダー設定ファイル」と「テクスチャ:シェーディング」が空白
→シェーダー設定ファイルが読み込まれていない。
mqoファイル中の材質名、xmlファイル中のシェーダー設定ファイル宣言、実際のシェーダー設定ファイル名がすべて同じであることを確認。
・空白項目なし
→mqoファイルまたはxmlファイル中で、テクスチャファイルのパス指定が間違っている。
テキストエディタでmqoファイルとxmlファイルを開いてパスを確認。
System.AurgumentException: 同一のキーを含む項目が既に追加されています
→xmlファイル中で、同じテクスチャ名が複数回定義されている。
テキストエディタでxmlファイルを開いてテクスチャ名を確認。
System.IO.DirectoryNotFoundException: パス '~' の一部が見つかりませんでした
→Tso2MqoGUI.exeの[Mqo->Tso]タブで、ファイルのパス指定が間違っている。
参照ボタンを押して再度ファイルを指定。
■特殊エラー事例
System.IO.IOException: 別のプロセスで使用されているため、プロセスはファイル '~' にアクセスできません。
→メタセコイアでテクスチャを相対パスで指定していると起こる(tex.bmp)。
絶対パスにする。(C:\tex.bmp)
System.Exception: File format error: 14 “Object”~“ (中略) UInt16 型の値が大きすぎるか、または小さすぎます。
→メタセコイアにある1オブジェクトの頂点or点or辺のいずれかが極端に多い(65500近く)と起こる?
該当オブジェクトを幾つかのオブジェクトに分解して、1オブジェクトに頂点or点or辺が集中しないようにする
System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
→プラグイン情報を含んだMQOファイル形式(MQXファイルが同時に保存される形式)だと読み込めないっぽい。
メタセコイアでの保存時のファイル形式に「メタセコイア オブジェクト Ver2.2互換(*.mqo)」を選ぶと読み込めるようになる。
■その他
メタセコイアにある1オブジェクトの頂点or点or辺のいずれかが、上記のエラーが出ずとも極端に多い場合、梱包時にフリーズします。
やはり該当オブジェクトを幾つかのオブジェクトに分解して、1オブジェクトに頂点or点or辺が集中しないようにしましょう。
最終更新:2011年09月20日 16:37