# 概要 [PixelPouch](https://github.com/RyotaUnzai/PixelPouch) は、Houdini や Maya などの DCC 向け Python ツールを開発する Technical Artist(TA) のためのツール開発・デバッグ・運用を支援するパイプラインツールです。 ポータブルのVSCode を中心とした開発フローを前提に、 - VSCode からの Python コード送信 - debugpy を用いた DCC プロセスへのデバッグアタッチ - 開発・検証を効率化するユーティリティツール群 を提供し、DCC ツール開発を「書きやすく・試しやすく・壊れにくく」することを目的としています。 ポータブルを使用することでローカルにあるVSCodeを壊すことなく、PixelPouch専用のVSCodeとして使用できます。 # 環境 ## 動作保証しているもの Houdini 21.0.512 バージョンが異なる場合は`../PixelPouch/bin/houdini`をメモ帳で編集し、インストールしているHoudiniのバージョンに書き換えてください マイナーバージョンが異なる程度であれば問題なく動作すると思います。ただし、Python3.11.7を基準に環境を構築するようにしているため、使用するHoudiniのメインバージョンが異なる場合は動作しない可能性もあります。 ## セットアップ 1. [PixelPouch](https://github.com/RyotaUnzai/PixelPouch) からローカルにクローンしてください。 :::info おすすめはドライブ直下になります。 フォルダ以下にクローンしてもいいですが空白がある場合、VSCodeがうまく動きません。 ::: 2. `../PixelPouch/setup.bat`を実行する 3. `../PixelPouch/launch_vscode.bat`でVSCodeを立ち上げる ## VSCode上での操作 VSCodeにはいくつか便利な拡張機能を入れていますがVSCodeの操作を前提としているものが2つあります。 ### Task Explorer  特にTask Exploererはツール開発する際に頻繁に使うものになるかと思います。 ### Qt UI  .uiファイルを編集する際にQt Designerを立ち上げることができます ## Houdiniの立ち上げ方 ### Debugで起動する  ツール開発する際は必ず`RUN AND DEBUG > [Debug] Houdini: Launch + Auto Attach`から実行してください コンボボックスを`[Debug] Houdini: Launch + Auto Attach`に変更後はF5で起動できるようになります。 ただし、DebugモードでのHoudiniは多重起動できませんので注意してください。 ReleaseモードのHoudiniや通常のHoudiniは起動できます。 :::info 多重起動やHoudiniを閉じた直後(内部的にはまだ起動している状態)に再度Debug起動すると正しく動作しないことがあります。 そういった場合はhython.exeがプロセスに残ってしまうことがあります。 その場合はタスクマネージャーから強制終了してください。 ::: ### Releaseで起動する  `Task Exploerer > PixelPouch > vscode > [Release] Houdini` ## DebugモードのHoudiniでのツール開発方法  DebugモードでHoudiniを立ち上げるとHoudiniとVSCodeがアタッチされている状態で立ち上がります。  `..\PixelPouch\python\pixelpouch\houdini\tools\nodepalette\run.py`を開き、好きな場所にブレークポイントを付けてください。  シェルフにある`PixelPouch > NodePalette`を実行  ブレークポイントで実行が止まります。あとは通常通り操作ができます。 ### シンプルに雑多なコードを書いて実行したい場合  シンプルに雑多なコードを書いて実行したい場合は、実行したいファイルを開いた状態で`Task Exploerer > PixelPouch > vscode > Send Python to Houdini`を実行してください。 プリントやエラーはターミナルに表示されます。 ### アタッチを止めて再度アタッチする場合 デバックモード中に通常のPythonの実行やデバッグをしたいことがあると思いますがその際はアタッチを解除し、通常のコーディングをしても問題ありません。 通常のコーディングでの実行は`RUN AND DEBUG > Python Debugger: Current File (PixelPouch)`でできます 再度アタッチしたい場合は`RUN AND DEBUG > [Debug] Auto Attach to Houdini`を実行してください  ## 階層構造について ``` ├── houdini │ ├── python: こちらでツール開発して下さい。 │ ├── scripts: 起動スクリプトを定義する場所、現状は123.pyを使用しています。 │ └── toolbar: PixelPouch.shelfを保存しています。カスタムシェルフを登録したい場合はここに入れてください。 ├── python │ ├── pixelpouch: pixelpouchに関連するpythonコードが含まれています。 │ │ ├── houdini: houdiniに依存するコードが含まれています。 │ │ │ ├── ops │ │ │ └── tools: pixelpouchのツールは通常こちらで記述していますがhoudini/pythonで開発することをお勧めします。 │ │ │ こちらで開発する場合は`pytest`などが使用できます。 │ │ └── libs │ │ ├── core │ │ │ ├── app │ │ │ ├── data │ │ │ ├── debug │ │ │ ├── houdini │ │ │ ├── parsing │ │ │ │ └── qss │ │ │ └── qt │ │ │ └── widgets │ │ └── worker │ └── third_party: Houdiniのみに依存する外部モジュールのインストール先です。 │ 追加したいモジュールはこちらにインストールしてください ├── rez └── tests: テストコードはこちらに入れています。テストしたい場合はこちらに入れてください。Qtもテストできます。 ``` ## 便利なモジュール ### logger ```=python from pixelpouch.libs.core.logging_factory import PixelPouchLoggerFactory logger = PixelPouchLoggerFactory.get_logger(__name__) logger.info("logger test") ``` loggerはPixelPouchLoggerFactoryで使用できます。 ### EnvironmentVariables ```=python from pixelpouch.libs.core.environment_variable_key import PixelPouchEnvironmentVariables from pixelpouch.libs.core.houdini import HoudiniEnvironmentVariables PP_ENV = PixelPouchEnvironmentVariables() PP_ENV.PIXELPOUCH_LOCATION # PixelPouchのロケーションを取得できます HOU_ENV = HoudiniEnvironmentVariables() HOU_ENV.HOUDINI_LOCATION # Houdiniのロケーションを取得できます HOU_ENV.HOUDINI_PATH # HOUDINI_PATHを取得できます ``` 環境変数を取得するときにpixelpouchで使用している環境変数はこちらで取れます。 ### QssLoader ```=python DATA_DIR = Path(__file__).resolve().parents[1] / "data" QSS_FILE = DATA_DIR / "main.qss" from pixelpouch.libs.core.parsing.qss import loader QSSLOADER = loader.QssLoader(DATA_DIR) QSS_FILE = DATA_DIR / "main.qss" widget..setStyleSheet(QSSLOADER.load(QSS_FILE)) ``` こちらを使うことでcssのrootや@importが使用できます。 ```=html :root { --list-item-selected-bg: #d93535; --list-item-hover-bg: #b75252; --list-item-radius: 4px; } @import ("color.qss") ``` ## pytest  テストコードを`../PixelPouch/tests`以下に記述することでテスト実行することができます。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up