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

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

maya_python_getfilesize_topimage

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

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

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




選択したテクスチャーファイルの縦横の大きさを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で書く利点の一つではないでしょうか。





 最新のゲーミングPCが安く手に入れられる「 FRONTIER 」

 豊富なカスタマイズメニューで、あなた好みの1台が購入できます。

 人気の秘密は何と言ってもコスパの高さ。
 最新のCPU・GPUパーツを搭載したモデルを驚きの価格で提供。

 山口県の自社工場で組み立てられ徹底した試験・検査後に出荷。
 無償修理サービスもありサポート体制も安心。

 コスパに徹底的にこだわる方は公式サイトへ >> 【FRONTIER】


Autodesk(オートデスク)

Twitter Facebook Pocket LINE はてブ

おすすめの関連記事


あわせてよく読まれている記事