例・マテリアルエディタ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をメモ帳で開いてみると、テクスチャパスがフルパスになっていた。これがエラーの原因だった。
>ファイル名を”ngroku.png”にする。
ん?突然の名前変更?
パスの変更じゃなくて?
通常だとdiffusemap.filename内は、ファイル名を含んだフルパスが格納されています。
diffusemap.filenameの中身を、パスを省いたファイル名のみにすることが、この記事の意図です。
filenameをそのまま日本語でファイル名と書いてしまい、ややこしくなってしまいました。