ビューポートのスクリーンショットを撮る

スクリーンショットを撮るシェルフツールのスクリプト

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])

保存後に保存先のフォルダをエクスプローラで開くようにしている。

タイトルとURLをコピーしました