カテゴリー別アーカイブ: 全般

Houdini Engine用環境変数

Houdini Engine用の環境変数について説明します。Houdini Engineのドキュメントから抜粋したテキストの和訳を載せます。

Houdini Engineは、起動時に以下の環境変数を検索します:

  • HAPI_LICENSE_MODE:
    • この環境変数を未設定または”default“に設定すると、Houdini Engineはまず最初にHoudini Engineライセンスの有無を調べ、なければ、Houdiniライセンスを、それでもなければHoudini FXライセンスの取得を試みます。つまり、一般的にライセンスサーバー上でそれらのライセンスを共有する時に、単一マシン(同一マシン)はHoudini FXライセンスとHoudini Engineライセンスのどちらも使用することができます。もちろんHoudini Engineは、同じHoudini FXライセンスを技術的に使用することができます。
    • この環境変数を”engine_only“に設定すると、Houdini EngineはHoudini Engineライセンスしか受け入れなくなるので、HoudiniライセンスまたはHoudini FXライセンスしか見つからなかった場合にはライセンスチェックに失敗します。
    • この環境変数を”interactive_only“に設定すると、Houdini EngineはHoudiniライセンスまたはHoudini FXライセンスしか受け入れなくなるので、Houdini Engineライセンスしか見つからなかった場合にはライセンスチェックに失敗します。
    • この環境変数を”houdini_escape_only“に設定すると、Houdini EngineはHoudiniライセンスしか受け入れなくなるので、Houdini FXライセンスやHoudini Engineライセンスなどの他のライセンスしか見つからなかった場合にはライセンスチェックに失敗します。
    • この環境変数を”houdini_fx_only“に設定すると、Houdini EngineはHoudini FXライセンスしか受け入れなくなるので、HoudiniライセンスやHoudini Engineライセンスなどの他のライセンスしか見つからなかった場合にはライセンスチェックに失敗します。
  • HAPI_PYTHON_VERSION:
    ‘2.6’または’2.7’に設定すると、使用されるPythonのバージョンを強制的に指定することができます。これは、ホストのPythonバージョンとHoudiniのPythonバージョン間での衝突が起こるWindowsで役に立つことが多いです。ホストのPythonバージョンとは別のバージョンをHoudiniに使用させることで、ライブラリの衝突問題などを修復できることがあります。

Houdini Engineライセンスは、以前はHoudini Batchライセンスという名称でした。
このライセンスの用途は、

  • Houdini Engine for MAYA,UnityなどでHoudiniデジタルアセット(otl,hda)を実行する
  • 分散シミュレーションを実行する
  • HIPからIFD(Instantaneous Frame Description、要はMantraレンダリング記述ファイル)を生成する

です。
Houdini Engineライセンスにはレンダリングの機能は含まれておりません。
レンダリングはRenderライセンスを消費します。これは商用版Houdiniを購入されているユーザー様には無償で必要な分だけライセンスが発行されます。

Houdini IndieはRenderライセンスは1本しか付きません。
尚Houdini Engine IndieではRenderライセンスが1本付いてきます。

Houdiniライセンス、Houdini FXライセンスには、Houdini Engineライセンスの機能が包含されています。
Houdini Indieも同様にHoudini Engine Indieライセンスの機能が包含されています。

上記のHAPI_LICENSE_MODEの利用例を説明します。
例えば、HoudiniFXとHoudini Engineのライセンスがフローティングライセンスだった場合に、1台のマシン上でHoudiniとMAYA(Houdini Engine)の両方を起動させるとします。
デフォルトでは、
HoudiniはHoudini FXライセンス、
MAYAはHoudini Engineライセンス
を取得します。
そもそも、Houdini FXはHoudini Engineのライセンスを包含しているので、これではHoudini Enginライセンスがもったいないです。
そこで、Houdini環境設定フォルダ直下のHoudini.envファイルに
HAPI_LICENSE_MODE=”interactive_only”
と記述することで、MAYAがHoudini FXライセンスを使用するようになります。

HQueueインストール

Houdiniには標準でHQueueと呼ばれるジョブマネージャーが用意されています。
ここでは、そのインストール方法を説明します。
トラブルシューティングに関しては、HQueue日本語ドキュメント(メンバー限定)を参照してください。
尚、HQueueに投入するHIPファイルの場所は、UNCパス(//マシン名/共有フォルダ/***といったパス)またはHQueueサーバーで指定したネットワークドライブにある必要があります。

HQueueNetwork

各マシンの役割について

ジョブ投入マシン
ジョブを投入します。Houdini上でHQueue Render/Simulationレンダーノードを使用してHQueueサーバーにジョブを投入します。
HQueue
サーバー
ジョブを管理し、Webベースのジョブマネージャーを立ち上げます。
HQueue Serverをインストールする必要があります。
HQueueクライアント
ジョブを実行します。
HQueue Clientをインストールする必要があります。
共有フォルダにインストールされたHoudiniを実行することができるので、クライアントにHoudiniがインストールされている必要はありません。ただし、ライセンスを取得する必要があるためLicense Administratorがインストールされていて、Houdini Engine(旧HBatch)ライセンスやRenderライセンスがつかめる必要があります。
共有フォルダ
バッチ処理するHIPファイルを格納する場所です。またクライアントが実行するHoudiniの実行ファイルの場所に指定することもできます。
ライセンスサーバー
クライアントが使用するライセンスサーバー。
ジョブの内容によって使用されるライセンスが異なります。

  • HIPファイルからIFD(Mantra用レンダリング記述ファイル)を生成する→Houdini Engine(旧HBatch)ライセンスを消費します。なければHoudini/Houdini FXライセンスを消費します。
  • IFD(Mantra用レンダリング記述ファイル)からレンダリングをする→Renderライセンスを消費します。
  • HIPファイルからシミュレーションを実行する→Houdini Engine(旧HBatch)ライセンスを消費します。なければHoudini/Houdini FXライセンスを消費します。

ネットワーク環境について

  1. 上記のマシン間でネットワークの通信を妨げる環境、例えばファイアーウォールは無効にしてください。
  2. HQueue Serverサービスのアカウント権限が、共有フォルダで許可されていなければなりません。
  3. HQueue Clientサービスのアカウント権限が、共有フォルダで許可されていなければなりません。
  4. HQueue Clientサービスがライセンスサーバーからライセンスを取得できなければなりません。

HQueue Serverのインストール

通常のHoudiniインストーラーを実行します。
インストーラーの”Choose Components“の項目まで進みます。
HQueue Serverにチェックを付けます。
HQueue ServerをHQueue Clientと兼用したい場合はHQueue Clientにもチェックを付けます。
ここではHQueue Serverだけにチェックを付けた場合で説明します。HQueueServerOptionHQueue Serverのインストール先を指定します。
HQueueServerFolderHQueue Serverサービスの名前を指定します。これはそのままで良いでしょう。
HQueueServerServiceName
共有フォルダの場所を指定します。後で共有フォルダやドライブの割り当てを変更することができますので、初めての方はこの設定のまま【Next】をクリックします。
“I would like to create a shared folder with the following properties“の方を選択すると、その共有フォルダの中に、クライアントで実行するHoudiniの実行ファイルが自動的にコピーされるので便利です。
HQueueServerSharedこれで設定項目が終わりですので、【Install】をクリックしてインストールを完了します。
HQueueServerInstallHQueue Serverのインストールが完了すると、サービス(コントロールパネル>システムとセキュリティ>管理ツール)にHQueueServerサービスが作成されます。
HQueueServerService共有フォルダがHQueueServerとは別のマシンの場合には、HQueueServerサービスのログオンの設定を変更する必要があります。
HQueueServerサービスを選択して右クリックからプロパティを実行します。
HQueueServerPro1“HQueueServerのプロパティ”から、【ログオン】タブをクリックして、【アカウント】で共有フォルダにアクセスできるユーザーアカウントとパスワードを設定します。そしてHQueueServerサービスを再起動します。
HQueueServerPro2

HQueueServerのインストールディレクトリの内容

HQueueServerContentssharedフォルダ
デフォルトでの共有フォルダです。
sharedフォルダには、houdini_distrosフォルダとprojectsのフォルダが作成されています。
houdini_distrosフォルダには、クライアントに実行させるHoudiniの実行ファイルが格納されています。
projectsフォルダには、クライアントに実行させるHIPファイルを配置します。
HQueueServerContentsHoudinihqserver.iniファイル
HQueueServerの初期設定ファイルです。
共有フォルダの場所やその共有フォルダのマウントなどの変更することができます。
# The shared network.
hqserver.sharedNetwork.host = HQueueServer
hqserver.sharedNetwork.path.linux = %(here)s/shared
hqserver.sharedNetwork.path.windows = \\HQueueServer\hq
hqserver.sharedNetwork.path.macosx = %(here)s/HQShared
hqserver.sharedNetwork.mount.linux = /mnt/hq
hqserver.sharedNetwork.mount.windows = H:
hqserver.sharedNetwork.mount.macosx = /Volumes/HQShared
# Server port number.
hqserver.port = 5000

HQueue Clientのインストール

通常のHoudiniインストーラーを実行します。
インストーラーの”Choose Components“の項目まで進みます。
HQueue Clientにチェックを付けます。
HQueueClientOptionHQueue Clientのインストール先を指定します。
HQueueClientInstallFolderHQueueServerのホスト名とポート番号を指定します。
HQueueClientServerHostHQueueClientサービスが共有フォルダにアクセスできる権限を指定します。デフォルトはNetwork Serviceアカウントになっています。
ここでは、後で変更する方法を説明したいのでそのままの設定で【Install】をクリックします。
HQueueClientServiceHQueue Clientのインストールが完了すると、サービス(コントロールパネル>システムとセキュリティ>管理ツール)にHQueueClientサービスが作成されます。
HQueueClientServiceSetHQueueClientサービスのアカウントはデフォルトでは”Network Service”になっています。
ネットワーク環境がドメインではなくワークグループであるなら、この権限では共有フォルダにアクセスできないので必ずユーザーアカウントを設定する必要があります。
HQueueClientサービスを選択して右クリックからプロパティを実行します。
HQueueClientServicePro1“HQueueClientのプロパティ”から、【ログオン】タブをクリックして、【アカウント】で共有フォルダにアクセスできるユーザーアカウントとパスワードを設定します。そしてHQueueClientサービスを再起動します。

HQueueClientのインストールディレクトリの内容

HQueueClientInstallContentshqnode.iniファイル
HQueueClientの初期設定ファイルです。
HQueueServerのホスト名やポート番号を変更することができます。
[main]
server = HQueueServer
port = 5000
hqclientd.batファイル
HQueueClientサービスなしでHQueueClientプロセスを再起動させることができます。
hqclientd.batを実行すればHQueueClientプロセスがPythonプロセスとして実行されます。
hqnode.pidに記述されているプロセスIDでプロセスが起動します。
HQueueClientサービスで接続エラーがでる場合には、このバッチを試すと動くことがあります。

ジョブの投入

ジョブを投入するには、HoudiniでHQueue Render(ネットワークレンダリング用)またはHQueueSimulation(ネットワークシミュレーション)のレンダーノードを追加します。
ここではHQueue Renderレンダーノードを使用した例を説明します。
HQueue RenderのOutput DriverにレンダリングするMantraノードを、
HQueue ServerにはHQueueServer名:ポート番号を指定します。
Mantra OptionsのGenerate IFDsがデフォルトでチェックが付いています。これはHIPからIFDへの変換をクライアント側にさせるかどうかです。Houdini Engine(旧HBatch)ライセンスがないのであれば、このチェックをオフにします。
Submission

ジョブのモニタリング

ジョブの管理は、WebブラウザのURLにHQueueServer名:ポート番号を指定すると、ジョブをモニタリングすることができます。
HQueueWeb

Houdini Engine for Unreal Engine4.6.1のインストール

Houdini Engine for UE4.6.1のインストール方法

2015年2月26日、2015年4月にUnreal Engine向けのHoudini Engineのパブリックベータ版のリリースがアナウンスされました。
HE4UE_Announce
そのパブリックベータ版ではUE4.7の対応が予定されております。
現在、既に通常の64bit版Houdini14または64bit版Houdini Engine14をインストールしていれば、Houdini Engine for UE4.6.1プラグインも既にインストールされています。
このプラグインに限っては、現在のところ、フリーのHoudini Apprenticeでも利用できるようになっています。
MAYA版、Unity版のHoudini EngineはHoudini Engine以上のライセンスが必要です。
今回はWindows OSを例に説明します。

HoudiniまたはHoudini Engineインストールディレクトリ\engine\unrealの中にあるHoudiniEngineフォルダをコピーします。2015-03-13 18_22_42Unreal Engineインストールディレクトリ\4.6\Engine\Plugins\Runtimeフォルダに、そのHoudiniEngineフォルダをペーストします。
2015-03-13 18_26_48これでHoudini Engineプラグインのインストールが完了です。

Unreal Engine4.6.1を起動し、インポートをクリックします。
UE1
Houdiniのデジタルアセット(.otl、.hdaなど)が読み込めるようになります。
UE2今回はOrboltからUnity Staircaseのデジタルアセットを読み込んでみました。
UE3
Houdini14.0.279以降からは、HoudiniインストーラーでHoudini Engine for Unreal4のプラグインをインストールするかどうかのオプションが付きました。
HE14.0.279

Houdini Engine for Unity4.6のインストール

Houdini Engine for Unity4.6のインストール方法

Unity4は32bitアプリケーションであるため、Houdini Engineをインストールするには、32bit版のHoudiniまたはHoudini Engineのインストーラーを使用する必要があります。
今回はWindows OSを例に説明します。
Houdiniでデジタルアセットを作成し、Unity4.6でそれを利用するのであれば32bit版のHoudiniのインストーラーをダウンロードします。
Houdiniでデジタルアセットを作成せず、ただUnity4.6でそれを利用するだけであれば32bit版のHoudini Engineのインストーラーをダウンロードします。

1.Houdini本体のインストーラーを使う場合
Sidefxのダウンロードサイトから32bit版Houdini本体のインストーラーをダウンロードします。
HoudiniSetupダウンロードしたインストーラーを実行し、[Next]をクリック、License Agreementで[I Agree]をクリックしてライセンス規約に同意します。
コンポーネント選択で必要なコンポーネントを選択し、[Next]をクリックします。
HoudiniInstallHoudini Engine for Unity 4.6 32-bitにチェックを付けて[Next]をクリックします。
2015-03-13 17_18_02後はインストール場所等を指定して、進めていけばインストールの完了です。
これで”Houdiniインストールディレクトリ\engine\unity“にhoudini-engine.scripts.unitypackageがインストールされました。

2.Houdini Engineのインストーラーを使う場合
Houdiniでデータを作成しないけれども、UnityでHoudiniのデジタルアセットを利用したい方ならHoudini Engineだけをインストールすることもできます。
Sidefxのダウンロードサイトの下側で32bit版Houdini Engineのインストーラーをダウンロードします。
HoudiniEngineDownloadダウンロードしたインストーラーを実行し、[Next]をクリック、License Agreementで[I Agree]をクリックしてライセンス規約に同意します。
そして、インストール場所を指定して[Install]をクリックします。
これでHoudini Engineがインストールされます。

Unity4.6でHoudini Engineプラグインを読み込む

Unity4.6を起動して、AssetsメニューからImport Package/Custom Packageを実行します。
Unity1HoudiniまたはHoudini Engineインストールディレクトリ\engine\unityの中にあるhoudini-engine.scripts.unitypackageを開きます。
Unity2そして、Importをクリックします。
Unity3これでProjectのAssetsにHoudiniプラグインがインストールされ、Houdini Engineメニューが追加されました。
Unity4

Houdini EngineメニューのLoad Houdini AssetからHoudiniデジタルアセットを開きます。
HoudiniまたはHoudini Engineインストールディレクトリ\engine\unity\Assets\OTLs\Samplesの中にHoudiniデジタルアセットのサンプルがあります。
Unity5そのサンプルフォルダのEverGreenフォルダにあるEverGreen.otlを開くと、下図のようなプロップが読み込まれます。このプロップのパラメータをUnity側で変更することができます。
Unity6

Houdini Engine for MAYAインストールとトラブルシューティング

Houdini Engine for MAYAのインストール方法

インストールする方法には、
Houdini本体のインストーラーを使う方法とHoudini Engineのインストーラーを使う方法があります。
前者はHoudiniを使用し且つMAYAでHoudini Engineも利用する方
後者はHoudiniを使用せずMAYAでHoudiniのデジタルアセットを利用する方に向いています。
今回はWindows OSを例に説明します。

1.Houdini本体のインストーラーを使う場合
SidefxのダウンロードサイトからHoudini本体のインストーラーをダウンロードします。
インストーラーには32bitと64bit版がありますが、32bit版はUnity4向けにあり、Houdini Engine for Mayaに関しては64bit版のインストーラーをダウンロードしてください。
HoudiniSetupダウンロードしたインストーラーを実行し、[Next]をクリック、License Agreementで[I Agree]をクリックしてライセンス規約に同意します。
コンポーネント選択で必要なコンポーネントを選択し、[Next]をクリックします。
HoudiniInstallHoudini Engine for Maya 64-bitにチェックを付けて[Next]をクリックします。
HoudiniInstallMaya後はインストール場所等を指定して、進めていけばインストールの完了です。
これで”Houdiniインストールディレクトリ\engine\maya“にHoudini Engineのモジュールがインストールされました。
Houdini Engineプラグインの設定は、事前にインストールされているMAYAに対して自動的に行なわれています。
“MAYAインストールディレクトリ\modules”の中にhoudiniEngineモジュールが入っていることを確認します。
module次に、MAYAを起動して、WindowメニューのSettings/PreferencesサブメニューからPlug-in Managerを実行します。
houdiniEngine.mllのLoadedにチェックを付けます。
MAYAPluginmanagerこれでMAYAのメニューにHoudini Engineの項目が追加されました。
MAYAEngineMenu2.Houdini Engineのインストーラーを使う場合
Houdiniでデータを作成しないけれども、MAYAでHoudiniのデジタルアセットを利用したい方ならHoudini Engineだけをインストールすることもできます。
Sidefxのダウンロードサイトの下側でHoudini Engineのインストーラーをダウンロードします。
HoudiniEngineDownloadダウンロードしたインストーラーを実行し、[Next]をクリック、License Agreementで[I Agree]をクリックしてライセンス規約に同意します。
そして、インストール場所を指定して[Install]をクリックします。
これでHoudini Engineがインストールされます。
しかし、このインストーラーは1.Houdini本体のインストーラーを使う場合とは異なり、手動でプラグインの設定をする必要があります。
以下にその手順を載せます。
エクスプローラから”Houdini Engineインストールディレクトリ\engine\maya“に移動します。その場所にMAYAのバージョン別のフォルダがあるので、目的のバージョンのフォルダの中に進みます。
HEModuleDirhoudiniEngine-mayaバージョン名のファイルをコピーします。
HEModuleコピーしたファイルを”MAYAインストールディレクトリ\modules”の中にペーストします。
次に、MAYAを起動して、WindowメニューのSettings/PreferencesサブメニューからPlug-in Managerを実行します。
houdiniEngine.mllのLoadedにチェックを付けます。

トラブルシューティング

MAYAのPlug-in ManagerでhoudiniEngine.mllのLoadedにチェックを付けて以下のエラーが出た場合の対処方法を説明します。
HE4MAYAErrorMAYAのScript Editorで見ると、
// Error: file: C:/Program Files/Autodesk/Maya2015/scripts/startup/autoLoadPlugin.mel line 46: Unable to dynamically load : C:/Program Files/Side Effects Software/Houdini Engine 14.0.265/engine/maya/maya2015/plug-ins/houdiniEngine.mll
指定されたプロシージャが見つかりません。
// Error: file: C:/Program Files/Autodesk/Maya2015/scripts/startup/autoLoadPlugin.mel line 46: 指定されたプロシージャが見つかりません。
 (houdiniEngine) //
// Error: line 1: Unable to dynamically load : C:/Program Files/Side Effects Software/Houdini Engine 14.0.265/engine/maya/maya2015/plug-ins/houdiniEngine.mll
指定されたプロシージャが見つかりません。
 //
// Error: line 1: 指定されたプロシージャが見つかりません。
 (houdiniEngine) //
のメッセージが表示されている場合、MAYA側でHoudini Engineのパスが見えていないことが原因として考えられます。

対処その1.
MAYAインストールパス\modulesの中にあるhoudiniEngine-mayaバージョン名をテキストエディターで開き、そこに記述されているHoudini Engineのパスがあっているか確認してください。間違えていれば修正します。
対処その2.
システム環境変数Pathで指定されている文字列の文字数を確認してください。2015-03-10 14_20_02その文字列とHoudini(またはHoudini Engine)のインストールパス(例. C:/Program Files/Side Effects Software/Houdini Engine 14.0.65/bin)の長さの合計が
Windows OSの制限値である1023文字以内に収まっている必要があります。
この条件が満たされなかった場合には、上記のエラーが起こります。
この解決策は、MAYAのプリファレンスフォルダ(<ドライブ名>: \Documents and Settings\<ユーザ名>\My Documents\maya\<バージョン>の中にあるscriptsフォルダにuserSetup.pyという名前でテキストファイルを作成します。

そのテキストに
import os
os.environ[‘PATH’] = ‘C:/Program Files/Side Effects Software/Houdini Engine 14.0.265/bin;’+ os.environ[‘PATH’]
のように記述します。
これで1023文字数を超えたPathでもMaya側で正しく取り込まれるため、このエラーを解決することができます。

 

Houdini14からのショートカットの変更点

Houdini14から一部ショートカットが変更されています。

Houdini14では追加選択がShift+左クリック、選択解除がCtrl+左クリック、選択状態の反転がCtrl+Shift+左クリックになっています。
Houdini13までは追加選択がCtrl+Shift+左クリック、選択解除がCtrl+左クリック、選択状態の反転がShift+左クリックでした。

ループ選択の方法が変更されています。
部分ループは、コンポーネントを選択してAキーを押したまま別のコンポーネントを左クリックします。

loop01 loop02

全ループは、コンポーネントを選択してAキーを押したまま、ループさせる方向にある別のコンポーネントを中クリックします。

loop03
loop05 loop06

変更されたシーンビューでのショートカットキー

N Select All(以前はA)
Shift+N Select None(以前はN)
~ Secure Selection(以前は=)

追加されたシーンビューでのショートカットキー

+ または =
選択したオブジェクトのビューポートでのサブディビジョン表示を有効にします。これはGeometryノードのRenderタブのDisplay AsパラメータのSubdivision Suraceへのショートカットです。
SubHot
選択したオブジェクトのビューポートでのサブディビジョン表示を無効にします。
* ハンドル表示を拡大します。
/ ハンドル表示を縮小します。
9 ジオメトリグループ選択モードになります。
Ctrl+Shift+B ショートカットを押す度に、前側ピック、後側ピック、両側ピックのモードに切り替わります。
PickBack
SelectStyle
F2 選択スタイルをボックスに切り替えます。
F3 選択スタイルをラッソに切り替えます。
F4 選択スタイルをブラシに切り替えます。
F5 選択スタイルをレーザーに切り替えます。
Shift+Y ハンドルモードを逆方向に切り替えます(Yは順方向)。

HScriptエクスプレッションを使用した際には、Ctrl+スペースで自動補完が機能します。
H14Hot01Houdini13までは、HScriptエクスプレッションを使用した際に、”$”を入力して少し待てば、そのノードで使用可能な変数すべての一覧が表示されました。
H13HotHoudini14からは、”$”を入力した後にCtrl+スペースを押すことで、そのノードで使用可能な変数すべての一覧が表示されるようになっています。
H14Hot02

アニメーションのベイク

ここでは、アニメーションをベイクする方法を紹介します。
アニメーションのベイクは、CHOPの機能を使う方法とチャンネルファイル(.chan)を使用する方法の2通りがあります。
まずは、汎用性のある”CHOPの機能を使う方法”を説明します。
CHOPの機能によるアニメーションのベイク
球オブジェクトのトランスフォームのTranslateRotateのパラメータ、そしてその球オブジェクト内のSphere SOPのRadiusパラメータにキーフレームアニメーションが設定していると仮定します。

bakeCHOP01 bakeCHOP02

WindowsメニューからAnimation Editorを選択して、Animation Editorを開きます。次に球オブジェクトを選択します。 これでScoped Parametersに選択したオブジェクトのパラメータが入ります。ベイクしたいパラメータだけをピン留めします。この例ではTranslateRotateのパラメータをピン留めします。これによって、次にSphereノードのパラメータを追加する時にオートスコープが解除されなくなります。
bakeCHOP03次にSphereノードのRadiusパラメータをShift+左クリックすれば、Scoped Parametersにそのパラメータが追加されます。同様に、Radiusパラメータをピン留めします。

bakeCHOP04 bakeCHOP05

タイムライン上で右クリックして、Motion FXコンテキストメニューからCreate Clipを選択します。
bakeCHOP06Create Clip…ダイアログでそのままCreateボタンをクリックします。

bakeCHOP07 bakeCHOP08

motionfx CHOP Networkの中にChannel CHOPが生成されていることを確認します。
このCHOPにスコープしたパラメータが設定されます。 Channel CHOP右クリックして、Edit Data Channelsを選択します。
bakeCHOP10
確認メッセージはそのままYesをクリックします。すると、CHOPで生成されたカーブを編集するためのAnimation Editorが開きます。一番右上にあるアイコンをクリックすると、Fit Panelダイアログが開きます。

bakeCHOP11 bakeCHOP12

Fit PanelダイアログでFrames/Absoluteの設定にし、Start/Endにベイクしたいフレーム範囲を指定します。Tolerance0にします。0以外の値にすると、その許容値に基づいてキーフレームが間引きされてしまいます。Animation Editorのカーブの結果で良ければ、Copy To Export Destinationボタンをクリックします。

bakeCHOP13 bakeCHOP14

これでアニメーションカーブがベイクされます。
bakeCHOP15
チャンネルファイル(.chan)によるアニメーションのベイク
前述の方法では、ベイクするアニメーションの範囲や許容値を指定してキーフレームの間引きを行なうことができるので汎用性があります。
Global Animation Optionsで設定したフレーム範囲でフレーム毎にキーフレームを打つ場合であれば、チャンネルファイル(.chan)をエクスポートして、再度そのファイルをインポートすることでアニメーションをベイクすることもできます。
bakeCHAN
前述と同様にAnimation EditorにベイクしたいパラメータをScoped Parametersに入れます。
そして、右上にあるギアのアイコンをクリックして、Channels/Export Displayed Channels as…を選択します。
bakeCHAN01
チャンネルファイル(.chan)を任意の場所に保存します。
bakeCHAN02再び右上にあるギアのアイコンをクリックして、Channnels/Import into Displayed Parameters…を選択します。
bakeCHAN03
保存したチャンネルファイル(.chan)を指定します。
bakeCHAN04これでアニメーションカーブがベイクされます。
bakeCHAN05ここで使用したチャンネルファイル(.chan)の中身は、テキストファイルになっています。
bakeCHAN06
各行がフレーム番号に相当しています。
列の値は、Scoped Parametersに入っているパラメータ名(ラベル名ではなく)の順番で値が入っています。

テクスチャのベイク

デジタルアセットのポータルサイト「Orbolt」には色々役立つアセットがありますが、今回はTexture Baker(https://www.orbolt.com/asset/SideFX::texturebaker)アセットをご紹介します。
OrboltTextureBaker
このデジタルアセットは3Dシーンのライト情報を3Dモデルのテクスチャに焼き付ける、つまりベイクすることができる機能です。
Apprentice版ではテクスチャの解像度を下げれば機能しますがウォーターマークが付くのであまり意味がありません。

TextureBakerUI
概要:
このアセットは、”bake”バンドル内の各オブジェクトに対してテクスチャマップをベイクします。
すべてのライト情報がそれらのテクスチャマップ自体にベイクされます。
これによって、PBR/GIライティングのままリアルタイムでオブジェクトを使用できるようになります。また、このアセットにはレンダリングされたテクスチャの エッジを広げるポスト処理が用意されているので、ジオメトリのUVシームに黒い線が入るのを防ぐことができます。
ベイクされた画像には、法線パス(オブジェクト空間)を持つ平面を余分に持っています。さらに”diffuse/light map”パスを書き出すこともできます。このパスは、テクスチャを除いたライティング情報のみが含まれます。
条件:
1. オブジェクトに(ポイントUVではなく)頂点UVがあること。
2. 頂点UVが重なっていないこと。
動作:
“Bake”ボタンを押すと、現行シーン内にSHOPNETとテイクが作成されます。
MATERIALS_BAKED SHOPNET・・・ベイクしたバージョンのマテリアルが格納されます。
BAKEDテイク・・・ベイクされたテクスチャでマテリアルを上書きします。
BAKED_DIFFUSE・・・Diffuseベイクされたテクスチャでマテリアルを上書きします。
DIFFUSE_MATERIALS・・・’diffuse’パスをベイクする際にアセット側で使用されます。

 注意:
ベイク処理はポリゴンオブジェクトにのみ動作します。
デジタルアセットのオブジェクトをベイクしたい場合には、必要な部分を/objレベルでObject Mergeしてください。
`BAKED`テイクは、オブジェクトのマテリアルを上書きし、Geometryノードの”Ignore Geometry Attributes Shaders”にチェックを付けます。マテリアルをSOPレベルで割り当てていれば、BAKEDテイクでAttributeノードを追加し、”shop_materialpath”Primitiveアトリビュートを削除する必要があります。
これにより、ビューポートOpen GL内でオブジェクトレベルでマテリアルの上書きを更新することができます。

パラメータ:

Camera オブジェクトすべてを網羅したカメラをここに設定します。
Bundle Name ベイク処理で使用するバンドル名。
Add Bundle 指定した名前のバンドルを追加します。
Baked Texture Path 生成されたテクスチャマップの保存先。
Texture Format 画像フォーマット。
Resolution ベイクするテクスチャマップの解像度。
Pixel Samples レンダリング/ベイクの処理で使用するサンプル。
Ray Samples レンダリング時に使用する光線の数。画像の粒/ノイズを少なくするには、この数を上げます。
Noise Level 最適サンプリングに使用します。この値を低くするほどノイズが少なくなります。
Bake Texture 必要なテイクを作成し、ベイク処理を開始します。
Bake Separate Diffuse Pass さらに’baked_diffuse’テイクを作成し、追加で画像をレンダリングします。
Texture Edge Expand 黒い繋ぎ目がでないように、ベイクされたテクスチャの区画を広げるピクセル数。
Expand Textures 指定した量で、ベイクされたテクスチャの区間すべてを広げる処理をします。

今回はこのシーンでテクスチャのベイクをやってみたいと思います。
テストするシーン:
Man
この顔のモデルには事前に頂点UVを割り当てています。VertexアトリビュートにUVがなければこのアセットは機能しません。

ManUV 2015-02-24 19_36_16

Mantraでレンダリングした結果:
ManRendered

これからTexture BakerデジタルアセットのUIのパラメータを設定します。Cameraにカメラオブジェクトを指定し、次にAdd Bundleボタンをクリックします。これで”bake”という名前のバンドルが作成されます。TextureBakerUISet
次にWindowsメニューのBundle Listをクリックします。
bakeバンドルにベイクしたいジオメトリオブジェクトを追加します。

BundleMenu Bundle

Bake Textureボタンをクリックすれば処理が始まります。
これでベイクされたテクスチャが作成されます。
BakeTexture

HOUDINI_USER_PREF_DIR

デフォルトでのHoudiniの環境設定ファイルはホームディレクトリに格納されます。HOMEシステム環境変数を変更していなければ以下のフォルダが環境設定ファイルの保存場所になります。
Windowsの場合:
C:\Users\{ユーザー名}\Documents\houdini{バージョン名}
Macの場合:
Macintosh HD/ユーザ/{ユーザー名}/ライブラリ/Preferences/houdini/{バージョン名}
(ターミナルのパスは /Users/{ユーザー名}/Library/Preferences/houdini/{バージョン名}です。)
Linuxの場合:
/home/{ユーザー名}/houdini{バージョン名}
に格納されます。

Houdini14からは、その環境設定ファイルの場所を示すシステム環境変数HOUDINI_USER_PREF_DIRが追加されました。
この環境変数を利用することで、Houdiniの環境設定ファイルの場所を変更することができるようになりました。
Windowsでは環境変数に
HOUDINI_USER_PREF_DIR = 設定ファイルの保存場所\__HVER__
と定義します。
例えば、HOUDINI_USER_PREF_DIR = C:\HoudiniSetting\__HVER__
とかC:\HoudiniSetting\Houdini__HVER__などのように設定します。
必ず”__HVER__”を付けてください。__はアンダースコア2つです。Houdiniが自動的に”__HVER__”をHoudiniのバージョン番号に置換します。

Environment設定が終わりましたら、OSを再起動します。
Houdiniを起動すると、HOUDINI_USER_PREF_DIRの場所に設定ファイルが生成されます。
ExplolerMacやLinuxはお使いのシェル環境に合わせて環境変数を設定してください。
MacでHOUDINI_USER_PREF_DIRの値を反映させてHoudiniを起動するにはHoudini Shell TerminalからHoudiniを起動させる必要があります。

Houdini14で追加されたVOPノード

配列や文字列の処理に関するVOPが増えています。

Add Steer Force steerweightアトリビュートでステアリングフォースを乗算して、合計のsteerweightで正規化します。
Adbect by Volumes ディスクファイルに保存したボリュームプリミティブのセットによって位置を移流させます。
Agent Clip Catalog エージェントアトリビュートに読み込んだアニメーションクリップすべてを返します。
Agent Clip Length エージェントのアニメーションクリップの長さ(秒)を返します。
Agent Clip Names エージェントプリミティブの現行アニメーションクリップを返します。
Agent Clip Sample 特定の時間でのエージェントのアニメーションクリップをサンプリングします。
Agent Clip Times エージェントプリミティブのアニメーションクリップの現行時間を返します。
Agent Clip Weights エージェントプリミティブのアニメーションクリップのブレンドウェイトを返します。
Agent Convert Transforms エージェントプリミティブのアニメーションクリップのトランスフォームをローカル空間とワールド空間で変換します。
Agent Layer Bindings エージェントのレイヤーにある各形状とバインドされているトランスフォームを返します。
Agent Layer Name エージェントの現行レイヤーや衝突レイヤーの名前を返します。
Agent Layer Shapes エージェントプリミティブのレイヤーが参照する形状の名前を返します。
Agent Layers エージェントプリミティブに読み込まれたレイヤーすべてを返します。
Agent Rig Children エージェントプリミティブのリグのトランスフォームの子トランスフォームを返します。
Agent Rig Find エージェントプリミティブのリグのトランスフォームのインデックスを検索します。
Agent Rig Parent エージェントプリミティブのリグのトランスフォームの親トランスフォームを返します。
Agent Transform Count エージェントプリミティブのリグのトランスフォームの数を返します。
Agent Transform Names エージェントプリミティブのリグの各トランスフォームの名前を返します。
Agent Transforms エージェントプリミティブの現行ローカルまたはワールド空間のトランスフォームを返します。
Append 項目を配列または文字列に追加します。
Arg Sort ソートされた配列のインデックスのリストを返します。
Array Length 配列の長さを返します。
CHOP Input VEX CHOPに接続された4つの入力CHOPのどれかのサンプル値を返します。
Character to String ユニコードのコードポイントをUTF8文字列に変換します。
Compute Lighting PBRを使用してライティングを評価します。
Find 配列や文字列から項目を検索します。
Float to Matrix2 浮動小数点値をMatrix2値へ変換します。
Float to Vector2 浮動小数点値をVector2値へ変換します。
Get Element 配列から指定した項目を取得します。
Get Matrix2 Component 2×2のMatrix2コンポーネントを抽出します。
Get Vector2 Component Vector2コンポーネントを抽出します。
Import Detail Attribute ディスクに保存されたジオメトリからアトリビュート値を取得します。
Import Point Attribute ディスクに保存されたポイントからアトリビュート値を取得します。
Import Primitive Attribute ディスクに保存されたプリミティブからアトリビュート値を取得します。
Import Vertex Attribute ディスクに保存された頂点からアトリビュート値を取得します。
Insert 項目、配列、文字列を配列や文字列に挿入します。
Intersect All 光線とジオメトリのすべての交差を計算します。
Is Alphabetic 文字列のすべての文字がアルファベットなら1を返します。
Is Digit 文字列のすべての文字が数値なら1を返します。
Join Strings 配列の文字列すべてを区切り文字を挿入して連結します。
Matrix2 to Float 2×2のMatrix2を4つのコンポーネントに展開します。
Matrix2 to Matrix3 2×2のMatrixを3×3のMatrixへ変換します。
Matrix2 to Matrix4 2×2のMatrixを4×4のMatrixへ変換します。
Matrix3 to Matrix2 3×3のMatrixを2×2のMatrixへ変換します。
Matrix4 to Matrix2 4×4のMatrixを2×2のMatrixへ変換します。
OpenSubdiv Face Count サブディビジョンハルのフェースの数を返します。
OpenSubdiv First Patch サブディビジョンハルの指定したフェースで生成された最初のパッチの番号を返します。
OpenSubdiv Limit Surface サブディビジョンサーフェスの境界上のPointアトリビュートを評価します。
OpenSubdiv Patch Count サブディビジョンハルのパッチの数を返します。
Output Variables and Parameters シェーダネットワークの書き込み可能な出力変数となる入力を用意します。
Physically Based Hair(Primary Reflection) ヘアーのプライマリ反射のレンダリング用のBSDFを生成します。
Physically Based Hair(Secondary Reflection) ヘアーのセカンダリ反射のレンダリング用のBSDFを生成します。
Physically Based Hair(Transmission) ヘアーの透過のレンダリング用のBSDFを生成します。
Point Bounding Box 指定したジオメトリの境界ボックスの最小と最大のコーナーを意味する2つのベクトルを返します。
Point Cloud Find ファイルから最近接ポイントのリストを返します。
Point Cloud Find Radius ファイルから半径を考慮した最近接ポイントのリストを返します。
Pop 配列の最後の要素を削除して、その要素を返します。
Regex Find 文字列から正規表現を検索します。
Regex Find All 文字列から正規表現の該当項目をすべて検索します。
Regex Match 全体の入力文字列が正規表現に合致すると1を返します。
Regex Replace 検索した正規表現の該当項目を指定した正規表現で置換します。
Regex Split 正規表現に基づいて文字列を分割します。
Remove Index 配列から指定したインデックスの項目を削除します。
Remove Value 配列から項目を削除します。
Reorder 配列や文字列の項目を並べ替えます。
Reverse 配列の順序を逆にします。
Sample Sphere 最大角度の方向の範囲で、単円、球、超球の内側または表面をサンプリングします。
Set Agent Clip Names エージェントプリミティブの現行アニメーションクリップを設定します。
Set Agent Clip Times エージェントプリミティブのアニメーションクリップの現行時間を設定します。
Set Agent Clip Weights エージェントプリミティブのアニメーションクリップのブレンドウェイトを設定します。
Set Agent Layer エージェントプリミティブの現行レイヤーまたは衝突レイヤーを設定します。
Set Agent Transforms エージェントプリミティブのトランスフォームを上書きします。
Set Element 指定したインデックスにエレメントを設定します。
Set Matrix2 Component 値をMatrix2のコンポーネントのどれかに割り当てます。
Set Vector2 Component 値をVector2のコンポーネントのどれかに割り当てます。
Shading Layer Parameter VOPネットワーク(VOPNET)で定義されたVEX関数のシグネチャに表示させるパラメータを作成します。
Slice 文字列や配列のサブ文字列またはサブ配列をスライスします。
Sort 昇順でソートされた配列を返します。
Split String 文字列をトークンに分割します。
String Ends With 文字列が指定した文字列で終わっていれば1を返します。
String Length 文字列の長さを返します。
String Starts With 文字列が指定した文字列で始まっていれば1を返します。
String to Character UTF8文字列をコードポイントに変換します。
Strip 文字列の先頭と後尾にある空白を取り除きます。
Subnet Input Connector 親のVOPサブネットの入力を表現します。
Subnet Output Connector 親のVOPサブネットの出力を表現します。
Surface Color ポイントカラーやカラーマップで付けられた色から基本カラーを生成します。
Swizzle Vector2 Vector2のコンポーネントを並べ替えます。
Title Case 入力文字列をタイトル文字に変換します。
To Lower Case 入力文字列を小文字に変換します。
To Upper Case 入力文字列を大文字に変換します。
UV Coords 定義しているものに応じてテクスチャ座標やジオメトリのs,t座標を返します。
Vector to Vector2 ベクトルをVector2に変換し、そのベクトルの3番目のコンポーネントを返します。
Vector2 to Float Vector2を2つのコンポーネントに展開します。
Vector2 to Vector Vector2をベクトルに変換します。
Vector2 to Vector4 1組のVector2をVector4に変換します。
Vector4 to Vector2 vector4を1組のVector2に変換します。