MayaScripts_OpenSpecifiedFile:パスを明示してシーンを開く
寒すぎる。
今日もちょっとしたスクリプトの紹介になります。
OpenSpecifiedFile
Mayaの「シーンを開く」で使われているファイルブラウザ、使いにくすぎ問題。
マウスの進む戻るボタンも反応しないし、ファイルのブックマークにショートカットを指定すると、ショートカット名ではなくリンク先のディレクトリ名が表示されるとか・・・etc
いろいろ不満はあるんですが、なによりファイルパスを直接指定してシーンを開くことが出来ず、使いにくいファイルブラウザからシーンの選択を強制されること。今日はこれを解決します。
■ コード
# encoding=utf8 # -*- coding:utf-8 -*- import os import pymel.core as pm BUTTON = ["Open", "Cancel"] def main (): dialog = pm.promptDialog( t = "Open Specified Path", m = "Type File Path", b = BUTTON, db = BUTTON[0], cb = BUTTON[1], ds = BUTTON[1] ) # Cancel if dialog == BUTTON[1] : return filePath = pm.promptDialog(q = True, text = True) # Windowsの「パスのコピーに対応」する if filePath[0] == '"' and filePath[-1] == '"': filePath = filePath[1:-1] # Fileが存在しない if not os.path.exists(filePath): pm.confirmDialog(t = "Error", m = "File does not open.\n"+filePath) return # シーンの開く(強制的に) pm.openFile(filePath, force = True)
上記のコードを「OpenSpecifiedFile」という名前のPythonファイルに保存し、以下の場所に配置。
C:\Users\"ユーザー名"\Documents\maya\scripts
■ 使い方
以下の2行で実行できます。
import OpenSpecifiedFile
OpenSpecifiedFile.main()
実行すると以下のダイアログが表示されるので、開きたいシーンのフルパスを入れてください。
ちょっとダイアログ自体が小さいんですけど、それはすんません。
入力したら「Open」を押すか、Enterキーを叩いてください。
現在のシーンはセーブしておいてください。普通に開くのと違って未保存の内容確認を行いませんので。
入力したパスが存在するなら、そのシーンが開かれているはずです。
まぁそれだけです。
これだけなんですけど、標準の機能でこれってないんですかね?