[3dsMax]スクリプトを使用し、テクスチャパスを絶対パスから相対パスへと書き換える。

例・マテリアルエディタ1番スロットの、拡散反射光マップのテクスチャパスを編集する。

meditMaterials[1].diffusemap.filename = “ngroku.png”
マテリアルスロット一番目の、拡散反射光マップの、ファイル名を”ngroku.png”にする。

※ファイル名を入れるとき、ダブルクォーテーションで囲まないとエラーになる。
※meditMaterialではなく、meditMaterials。複数形。“s”の付け忘れに注意。

※書き換えると、ビューポートに表示していたテクスチャが消えるけど、 指定したテクスチャのあるフォルダか、そのテクスチャがある上の階層のフォルダへ保存すれば、 maxファイルを開いたときに読み込んでくれる。

※マテリアルスロット番号の並び順
マテリアルエディタスロットの番号の並び順は、
左上が1番で、右に向かって数える。端まで行ったら、
下の段の一番左から右に向かって数える。
順番は初期状態のマテリアルの名前を見れば分かりやすい。“01 – Default”が一番目。

※今回は“meditMaterials[1]~”と、マテリアルスロット番号で指定したけど、
マテリアルの名前で指定することもできる。
マテリアルの名前がngrokuならば、“meditMaterials[“ngroku”]~”にすればいい。

※標準マテリアル シェーダのマップ チャンネル一覧は、
スクリプトリファレンスStandardMaterial: Materialページの一番下。
リファレンスを“マテリアルのタイプ”で検索→standard

※スクリプトを使わなくても、アセットトラッキングから相対パスにする事が出来る。

▼なぜ相対パスにする必要があったのか?
ゲーム用に使うモデルをxfile形式でエクスポートして、相手に送ったら、エラーが出てしまうと言われた。
書き出したxfileをメモ帳で開いてみると、テクスチャパスがフルパスになっていた。これがエラーの原因だった。

広告

[3dsMax]スクリプトを使用し、テクスチャパスを絶対パスから相対パスへと書き換える。」への2件のフィードバック

  1. >ファイル名を”ngroku.png”にする。

    ん?突然の名前変更?
    パスの変更じゃなくて?

    • 通常だとdiffusemap.filename内は、ファイル名を含んだフルパスが格納されています。
      diffusemap.filenameの中身を、パスを省いたファイル名のみにすることが、この記事の意図です。
      filenameをそのまま日本語でファイル名と書いてしまい、ややこしくなってしまいました。

コメントを残す

メールアドレスが公開されることはありません。

スパム対策用の計算式と画像認証です。↓の欄を入力しないとコメントが出来ません。 *

*