[MAYA] Pythonスクリプトでテクスチャーファイルのサイズを取得する方法

maya_python_getfilesize_topimage

ゲーム開発ではデータの容量をとても気します。

モデリングに入る前に「ココは総量〇〇サイズに収めて作ってください」とか。

今回はMAYAで作成するモデルの総容量の中で以外に大きな割合のサイズになる
テクスチャーファイルのサイズをPythonスクリプトで取得する方法を紹介します。



[Python] if文の使い方 MAYAアーティストのスクリプト入門

[Python] for 文 繰り返し処理の使い方MAYAアーティストのスクリプト入門

選択したテクスチャーファイルの縦横の大きさをPythonで取得する

import maya.cmds as cmds

selected_file = cmds.ls(type="file")


file_size = cmds.getAttr(selected_file[0] + ".outSize")

print(file_size)
selected_file = cmds.ls(type="file")

cmds.ls(sl=True)ではなくTypeを”file”と指定してセレクトしています。

Hypershade


出力結果:

[(512.0, 512.0)]

x と y の大きさが出力されました。

x と y  の値を個別に取得する事が出来ます。

import maya.cmds as cmds

selected_file = cmds.ls(type="file")

file_sizeX = cmds.getAttr(selected_file[0] + ".outSizeX")

file_sizeY = cmds.getAttr(selected_file[0] + ".outSizeY")


print(file_sizeX)
print(file_sizeY)

出力結果:

512.0
512.0

x と y の値が個別に出力されました。

選択したfileのテクスチャーのファイルパスをPythonで取得する

import maya.cmds as cmds

selected_file = cmds.ls(type="file")

filename = cmds.getAttr(selected_file[0] + ".fileTextureName")

print(filename)

出力結果:

D:/maya/projects/New_Project/sourceimages/lj_icon.png

テクスチャーファイルのファイルパスを取得することが出来ました。

パスを取得できたので
ファイル名のみ、ディレクトリパスのみ
に分ける事も出来ます。

import maya.cmds as cmds
import os

selected_file = cmds.ls(type="file")
filename = cmds.getAttr(selected_file[0] + ".fileTextureName")

print(os.path.basename(filename))
print(os.path.dirname(filename))

出力結果:

lj_icon.png
D:/maya/projects/New_Project/sourceimages

テクスチャーファイル名 と ディレクトリパスに分けることができました。

Pythonの osモジュール でテクスチャーファイルのbyteサイズを取得する

osモジュールを使うと テクスチャーファイルのサイズを取得できます。

import maya.cmds as cmds
import os

selected_file = cmds.ls(type="file")
filename = cmds.getAttr(selected_file[0] + ".fileTextureName")
file_byte_size = os.path.getsize(filename)

print(file_byte_size)

出力結果

8739

8739byteと出力されました。

これでテクスチャーファイルが容量を圧迫しているか等を調べることが出来ます。

まとめ

テクスチャーファイルの縦横の大きさを取得するには

cmds.getAttr(“file名.outSize”)

テクスチャーファイルのbyteサイズを取得するには

import os

filename = cmds.getAttr(“fil名.fileTextureName”)

os.path.getsize(filename)

MAYAのスクリプトでテクスチャーファイルの情報を取得する事が出来ました。

Pythonスクリプトだとファイルの作成日や更新日など更に多くの情報を簡単に取得できて通常のPythonと同じ様に扱えます。

この部分がMAYAスクリプトをPythonで書く利点の一つではないでしょうか。


Twitter Facebook Pocket LINE はてブ

おすすめの関連記事:

コチラの記事も読まれています
あわせてよく読まれている記事