Created on | Updated on

HDA の Python2 エクスプレッションを Python2/3 に変換する py23convert

参考:py23convert

 

Houdini インストールフォルダにあるスタンドアローンユーティリティの1つである py23convert を使うと、HDA に記述された Python または Python ファイルを Python2 から Python2/3 に変換できます。
Python2/3 は Python2 でも Python3 でも動作する、という意味です。

変換後のファイルは、ファイル名と拡張子を区切る '.' の前に '_converted' を付けて生成されます。
ディレクトリは、ディレクトリ名の最後に '_converted' が付いてコピーされます。

mceclip15.png

 

試しにやってみる

既に自分で Python 付き HDA を持っている場合はそれを使ってもいいです。変換は既存 .hda を上書きせず複製されます。

  1. Python 付き HDA を作る(お持ちの方は 2. までスキップ)

    1. obj コンテキストに geometry > subnet > add の順番でノードを配置する
      mceclip0.png
    2. subnet を右クリック > Digital Asset > Create New をクリック
      mceclip1.png
    3. 各フィールドを入力して Create をクリック
      mceclip2.png
    4. 自動で開く Type Properties で Interactive > State Script を開き、右下の New をクリック
      mceclip3.png
    5. Samples から Add Point にチェックを入れて Accept をクリック
      mceclip4.png
    6. 93行目に画像の通り一行付け足し Accept をクリック。エラーがポップアップするが無視して OK をクリック
      mceclip5.png
    7. HDA を選択してビューポートで Enter を入力し、ビューポート上をクリックする。エラーが出れば OK
  2. py23convert でファイルを変換する

      1. コマンドプロンプトを開き、"chdir C:\Program Files\Side Effects Software\Houdini XX.Y.ZZZ\bin" で py23convert.py があるディレクトリまで移動する
      2. "python py23convert.py [filepath]" を入力。ModuleNotFoundError が出たときはそれぞれ pip install で対応する
        mceclip6.pngmceclip7.pngmceclip8.pngmceclip9.png

実際に変換後の .hda のスクリプトを確認すると、python3 で対応していない print文が print関数に書き換えられているのが分かります。ビューポートをクリックすると、エラーではなく正しくポイントが生成されるようになりました。

mceclip12.pngmceclip13.png

また、.hda を開かずに変更点を確認したい場合は "-v" のオプションを付けるといいでしょう。書き足された行の頭には + が、削除された行には - が付きます。

mceclip14.png

問題が解決しない場合は、Born Digital サポートまでお問い合わせ下さい。

※ 問い合わせ対応はBorn Digitalより製品をご購入頂きましたお客様のみのサービスとなります。ご了承下さい。
サポート問い合わせ