Python

【Unity:Python】metaファイルを解析する(テクスチャ)

shamimatsu

unity2020.1.4f1を使用
python3.7を使用

フォルダ内全部を確認する方法はありますが、わかりやすいように今回は1つファイルを指定するやり方にしました。

sRGBのチェック


sRGBのチェックはテクスチャによっては外しておきたい時があると思いますが設定するのを忘れがちでもあります。
unityはmetaファイルにその情報が書かれていたので読み取ってみました。
pythonで書き換えてしまう事もできますが直でいじるとデータが壊れないか不安なので確認するだけにしています。

コード

file_path = 'D:/Unity/python/Assets/Textures/Brick2_height.png.meta'

# metaファイルを読み取る
f = open(file_path)
lines = f.readlines()
f.close()

# 文字列を一行ずつ比較
for line in lines:
    if line.find("sRGBTexture: 1") >= 0:
        print('sRGBオンです', file_path)

    elif line.find("sRGBTexture: 0") >= 0:
        print('sRGBオフです', file_path)

“sRGBTexture: 0” がsRGBにチェックが入っていない状態
“sRGBTexture: 1” がsRGBにチェックが入っている状態

「>=」はmetaファイルの中に “sRGBTexture: 1″という文字列が0個以上あれば
Trueという意味になります。

NormalMapのチェック


ノーマルマップもテクスチャタイプを NormalMap に変更し忘れがちなためmetaファイルを解析して書かれている箇所をみつけました。
pythonで書き換えてしまう事もできますが直でいじるとデータが壊れないか不安なので確認するだけにしています。

コード

file_path = 'D:/Unity/python/Assets/Textures/Brick2_normal.png.meta'

f = open(file_path)
lines = f.readlines()
f.close()

for line in lines:
    if line.find("textureType: 1") >= 0:
        print('Normal設定です', file_path)

    elif line.find("textureType: 0") >= 0:
        print('Default設定になっています', file_path)

“textureType: 0” が Default
“textureType: 1” が NormalMap
その他の設定は2以降で指定されているようです。

「>=」はmetaファイルの中に “textureType: 1″という文字列が0個以上あれば
Trueという意味になります。

ABOUT ME
shamimatsu
shamimatsu
3DCGデザイナー
ながらくゲーム業界で2D、3DCGデザイナーとして働いてきましたが、新しい業界に挑戦中です。 ブログのデザインをリニューアル中のため、見づらい箇所もあるかもしれませんが少しづつ修正していきます。
記事URLをコピーしました