スクリーンショットを撮るシェルフツールのスクリプト
from time import gmtime, strftime, localtime
import os.path
import re
import subprocess
# ビューポートカメラのパス
cur_desktop = hou.ui.curDesktop()
desktop = cur_desktop.name()
panetab = cur_desktop.paneTabOfType(hou.paneTabType.SceneViewer).name()
persp = cur_desktop.paneTabOfType(hou.paneTabType.SceneViewer).curViewport().name()
camera_path = desktop + "." + panetab + "." + "world" "." + persp
# ファイル名 (ex. screenshot_20181212111459.jpg)
fileName = hou.hipFile.basename()
if fileName == "untitled.hip":
print('No Scene!')
else:
name, ext = os.path.splitext(fileName)
imageName = name + strftime("_%Y%m%d%H%M%S.jpg", localtime())
filePath = hou.hipFile.path()
filePath = filePath.replace(fileName, "")
filePath = [re.sub("/", "\\\\", filePath)]
# ダイアログを表示して保存する
imageFile = hou.ui.selectFile( title='Select Screenshot File', default_value=imageName, file_type=hou.fileType.Image )
if imageFile != "":
frame = hou.frame()
hou.hscript( "viewwrite -f %d %d %s '%s'" % (frame, frame, camera_path, imageFile) )
# フォルダを開く
subprocess.Popen(['explorer', filePath])
保存後に保存先のフォルダをエクスプローラで開くようにしている。