参考:py23convert
Houdini インストールフォルダにあるスタンドアローンユーティリティの1つである py23convert を使うと、HDA に記述された Python または Python ファイルを Python2 から Python2/3 に変換できます。
Python2/3 は Python2 でも Python3 でも動作する、という意味です。
変換後のファイルは、ファイル名と拡張子を区切る '.' の前に '_converted' を付けて生成されます。
ディレクトリは、ディレクトリ名の最後に '_converted' が付いてコピーされます。
試しにやってみる
既に自分で Python 付き HDA を持っている場合はそれを使ってもいいです。変換は既存 .hda を上書きせず複製されます。
-
Python 付き HDA を作る(お持ちの方は 2. までスキップ)
- obj コンテキストに geometry > subnet > add の順番でノードを配置する
- subnet を右クリック > Digital Asset > Create New をクリック
- 各フィールドを入力して Create をクリック
- 自動で開く Type Properties で Interactive > State Script を開き、右下の New をクリック
- Samples から Add Point にチェックを入れて Accept をクリック
- 93行目に画像の通り一行付け足し Accept をクリック。エラーがポップアップするが無視して OK をクリック
- HDA を選択してビューポートで Enter を入力し、ビューポート上をクリックする。エラーが出れば OK
- obj コンテキストに geometry > subnet > add の順番でノードを配置する
-
py23convert でファイルを変換する
-
- コマンドプロンプトを開き、"chdir C:\Program Files\Side Effects Software\Houdini XX.Y.ZZZ\bin" で py23convert.py があるディレクトリまで移動する
- "python py23convert.py [filepath]" を入力。ModuleNotFoundError が出たときはそれぞれ pip install で対応する
-
実際に変換後の .hda のスクリプトを確認すると、python3 で対応していない print文が print関数に書き換えられているのが分かります。ビューポートをクリックすると、エラーではなく正しくポイントが生成されるようになりました。
また、.hda を開かずに変更点を確認したい場合は "-v" のオプションを付けるといいでしょう。書き足された行の頭には + が、削除された行には - が付きます。