2015年5月 8日 (金)

バックアップのあれこれ その2

さて、Houdiniが落ちた時バックアップファイルを作ってくれるのはいいんだけど、
変なパラメータを入れたりして落ちた時、そのバックアップファイルを読み込んだ時点で落ちてしまうということがあります。
そのノードが原因で落ちてるので、読み込み直した時点で同じノードの処理で落ちてしまう訳です。
そのときの解決方法をいくつか。

・一番手っ取り早いのは、ネットワークビューをフル表示にしてから読み込む。
そうするとViewport表示をしない=ノードの計算をしないので落ちません。
その状態でパラメータを直すなりノードを削除すれば大丈夫です。
正規のファイルネームで保存するのを忘れずに。


・Cookのタイミングを手動にする方法。
一番右下のメニューでCookタイミングを設定できます。

Bup06

デフォルトではAutoUpdate、ネットワークが自動的に更新されます。
これをManualにしとくと、メニューの左側の更新ボタンを押さないと更新されません。
なので、Manualでバックアップファイルを読み込んでおかしいノードを削除してやればOKです。



・コマンドラインでhbatchでなんとかする。
だいぶ敷居が高くなりますが、hbatchでhscriptベースでファイルを読み込んで、いらないノードを削除、保存する方法です。

Bup07

それでも対処できない時がごくたまにあります。
あるノードが原因だとわかっているんだけど、読み込んだ時点で落ちてしまう時。

そんな時は最終手段としてhipファイルを展開して、いらないノードを削除して、元に戻すという方法があります。
バックアップファイルが保存の時に壊れてしまっているときはどうしようもないですが。

hipファイルを展開・アーカイブするにはコマンドラインでhcpioを使います。

hipファイルは実はネットワークの構造そのものをunix系のcpioというファイルアーカイバでアーカイブしたものなんですね。
なのでhcpioで展開すると、ネットワークの構造がそのままフォルダ・ファイルの構造となります。
そこでいらないノードのファイルを消すか、ファイルの中身を修正するかして、またhcpioでアーカイブしてやるわけです。
簡単に手順を。

Bup10

hipファイルのあるフォルダに展開されるので、展開用にフォルダを作ってそこにhipファイルをコピーして作業した方がいいでしょう。

最初に、アーカイブ用にファイルリストを作っておく。
 hcpio -i -t -I untitled.hip > namelist

untitled.hipを展開する。
 hcpio -i -d -I untitled.hip

これでフォルダ構造が出来上がります。

Bup12

この中からいらないノードを削除したり、パラメータを修正したり(.parmファイルを修正)します。
ノードを削除したときは namelist の中身も修正すること。

それをアーカイブする。
 hcpio -o -O untitled2.hip < namelist

Bup11こんな感じ

このブログのこの辺この辺も参照。

cpioについて詳しくはwikiってね。

2015年5月 7日 (木)

バックアップのあれこれ その1

さて、Houdiniに限らずですがノリノリで調子良く作業している時に限って落ちたり固まったりします。
この作業をやったらセーブしようと思っている時に限って落ちます。

Houdiniあるあるなのが、Copy-Stampとか重たいループ処理をしてる時に、
ラダーメニューで間違って大量の数値を入れてしまうこと。
Copyで10000000とかScatterで10000000とか。
そうなるとEsc連打でも帰ってこなくて、なんとか帰ってくるのを待つかメモリーオーバーフローで落ちるか強制終了しか無くなります。

まあCGソフトはなんでもこまめにセーブが基本でしょう。
その辺の対策はソフトによっていろいろあるでしょうが、
Houdiniの場合、Ctrl(Alt)+[s] で保存すると自動的にインクリメンタルバックアップファイルを作ってくれます。
基本的にHipファイルサイズはむちゃくちゃに大きくはならないので(NodeLockしてたりするとでかくなるけど)がんがんセーブしちゃいましょう。
AutoSaveの設定をしておくと自動でバックアップファイルを作ってくれるのも便利です。
たまにAutoSaveの設定してるのを忘れて、作業中一瞬かたまってびびる時もあるけどね。

Bup01

その辺の設定はPreferencesのSaveOptionで設定します。 最終的にプロジェクトをバックアップする時に古いバックアップファイルは消しちゃいましょう。 無駄なので。

Bup02

いきなり落ちた時でも、ある程度の確率でバックアップファイルを保存してくれます。

Bup03

こういうメッセージが出た時は$TEMPフォルダにバックアップファイルを作ってくれてます。

Bup04

ここから最新のファイルを読み込みましょう。 ファイルネームを戻して保存するのを忘れずに。

$TEMPおまけその1
ついでに、HoudiniはCtrl+c、vでNodeのコピペができますが、
実はCtrl+cした時この$TEMPフォルダにそれぞれのネットワークごとにcpioファイルとしてセーブされてます。

Bup05

Ctrl+vした時はこれらのファイルを読み込んできてるんですねえ。
だから複数のプロジェクトをまたいでコピペできる訳です。

$TEMPおまけその2
EnvLightでEnableSkyEnvironmentMapにすると、自動的にグラデーションのRATファイルを作るんですが、

Bup08

このファイルも$TEMPに保存されてます。
ただし、このファイルHoudiniを終了しても残ってます。

Bup09

というかレンダリングごとに作られてます。ほっとくと、どんどん増殖していきます。 HDD容量を圧迫していくので、こまめに消していきましょう。

2015年3月24日 (火)

Houdini to AfterEffects

Houdiniのカメラデータ等をAfterEffectsに持って行くためのスクリプトです。

Orboltのアセット紹介しようかなって思って、そういえばHtoAEって昔どこで落としたっけ?
Orboltじゃなかったよなあ、どこだっけ?Odforce?
って、ググってみたらHoudiniExchangeにありました。

HoudiniExchangeとは、Orboltの前にSideEffectsのHPにあった
投稿型の共有アセットストアみたいなもんで、
昔はTopのCommunityあたりにリンクがあった。
今のSideEffectsのHPにリンクは無いけどまだ生きてたのね。

リンク張っていいのかどうか迷ったけど、Google先生で見つかってるからまあいいか。

http://www.sidefx.com/exchange/info.php?fileid=498&versionid=498

ここからHoudini to AfterEffectsの.pyスクリプトをDLして、
説明通りにシェルフに登録すれば使えます。

シェルフをクリックして、吐き出したいカメラやオブジェクトを選択。
EnterでAE用の.jsxファイルを吐き出します。
その.jsxをAEでスクリプトファイルを実行すれば、AEで読み込むことが出来ます。
オブジェクトは各ChanのフレームごとのRAWデータにベイクされて、
3DのNULLレイヤーになります。
親子関係はなくなって、もろもろ計算された結果の位置やら回転やらがベイクされます。

2008年のものだけど、H14&AECS5.5では使えてます。
Houdiniで作ったシーンに3D的にテロップを乗せたり、
AEの3Dが使いにくいので、Hでアニメーションを作ってAEに持っていったりと便利に使えます。

Htoae1

こんなHIPが、

Htoae2

こんなAEPに。


2015年3月23日 (月)

ちょっとしたトラブルが合ったので自分メモ

H14にしてから、最近レンダリングが妙に遅くなって、1Fあたり10秒くらいで終わるはずが40秒くらいかかってる。
おかしいと思ってタスクマネージャを見てみるとなぜか20秒くらい謎のアイドルタイムがある。
単純に玉一個のシーンを作ってみても同じ。

ネットワークがらみのトラブルがあったばっかりなのでそれが原因か?
これはシステム再インストールか?と思うもとりあえず原因を探ってみる。
H13だと普通なので、H14のせいみたい。
なんか設定ファイルがおかしいのか?と思って、
$HOME/Houdini14.0を違う名前に。
お!!直った!!$HOME/Houdini14.0の中のなにかが原因みたい。
あとはフォルダを出し入れしつつレンダの繰り返し。

で原因を見つけましたよ。
statsっていうフォルダの中にcrashsession_data-1っていうようなファイルが10個ほどあって
こいつらが原因のようだ。

H14になってクラッシュした時にクラッシュリポートをSESIに送るようになってるんだけど、
作業マシーンはローカル環境なのでインターネットにつながっていない。
いちいちこれを送ろうとしてリトライする時間が無駄にあったんではないだろうか。
これらを消したら元通りになりました。

ついでにコマンドラインで立ち上げたときHoudiniを終了してカーソルが戻ってくるまで妙に遅かったんだけど、それも直ってた。
まあ、なんか問題が出たら設定ファイルを疑えってのは鉄板ですね。

2015年2月17日 (火)

H14のView

去年は4回しか書いてないのか。

今年はなるべく更新していこう。もう2月だけど。

さて、Houdini14。最近やっとさわりだしました。
そんなH14ですが、ViewのBackgroundのLightってColorSchemeで
どこぞの3Dソフトみたいにグラデ背景になります。

View_1

こんな感じ。

Houdiniの場合Configファイルをいじってやるとカラーを変えることが
出来ます。
たとえば、$HFS/houdini/config/3DSceneColors.light($HFSはHoudiniをインストールした場所)
がBackgroundLightのColorSchemeなので、

これの

BackgroundColor: 0.40 0.5 0.55
BackgroundBottomColor: 0.75 0.78 0.78

BackgroundColor: 0.4691 0.56860.6471
BackgroundBottomColor: 0.0941 0.1020 0.1098

に変えるだけで、

View_2

あっというまにMaya仕様に!!
だからなんやねん。
はい。

元ファイルをいじりたくなかったら、$HFS/houdini/config/3DSceneColors.light 
を $HOME/config にコピーしてから修正したほうがいいね。

他にも、色々設定ファイルがあって見た目をカスタマイズできるよ。

まあ、ViewのBackgroundColorくらいUI上でいじれりゃいいんだけどね。
SideEffectsはそんな気の利いたことはしてくれません。さすが。

と、2015年最初の記事はしょーもない小ネタでありました。

2014年9月29日 (月)

自爆スイッチ

ObjレベルのObjectノードには Select Script っていうものがあります。

Sw1


これはなにかっていうと、Viewport上でそのOBJを選択した時に
ここのScriptを実行するもんなですが、

ここに quit -f なんて入れてみると、

Sw2



ViewportでそのOBJを選択したとたんHoudiniが強制終了します。

それだけ。
けっして嫌なやつのProjに仕込んじゃだめだぞ!!

2014年9月10日 (水)

スタンドアローンツール

前回に続き、マニアックシリーズ。
コマンドプロンプトから使えるスタンドアローンツールについて。
UNIX系で使ってるとシェルから普通に使えるんだけど、
WINDOWだと知らない人が多いかも。

いくつか抜粋。

hbatch  HoudiniのNonGUIバージョン。スクリプトでHoudiniを制御する。
 達人はこれだけでシーンを構築するとかしないとか。

icp  イメージのフォーマット変換やサイズ変更
 例えば .tif を .rat (HoudiniRamdomTextureフォーマット)に変換。
 サイズを変えたり、クロップしたり。

iconvert  icpより細かく設定できるイメージのフォーマット変換。

isixpack  前後左右上下の6枚の絵から、環境マップ用テクスチャを作る。

iinfo  イメージファイルの詳細表示。解像度とかBitDepthとか。

mplay  Houdiniのイメージビューワ

ginfo  ジオメトリの詳細表示

gplay ジオメトリのビューワ

hconfig Houdiniの環境変数の表示

hcpio .hipファイルを展開する。
 .hipの中のツリー構造自体をフォルダのツリー構造として吐き出したり、
.hipにまとめたりする。
 めったにないけど読むとエラーが出て落ちてしまうような.hipファイルを、
 どうしようもないので展開して原因のSopを削除して修正した記憶が。

gicon ジオメトリファイルからアイコンを作る。


mcacclaim
mcbiovision
mcmotanal
  .bvh等のモーションキャプチャデータを
Houdiniで使えるチャンネル等に変換。


他にもいろいろあります。
実際よく使うのはicpくらいだけど。

2014年9月 9日 (火)

Windowsでバッチレンダ

久々更新。

Unix環境の場合(Winだとcygwinとか)だとhrenderっていうシェルスクリプトでバッチレンダリングできるんだけど、
Windowsのコマンドプロンプトからだとどうすりゃいいの?ってことでBATファイルを作ってみる。

HoudiniでバッチレンダリングするにはhbatchっていうNonGUIバージョンのHoudiniにHscriptのコマンドファイルを渡してあげればいい。
hrenderではそのファイルをシェルスクリプトを使ってやっている。
なので同じことをBATファイルでやってやればよい。

とってもシンプルで最低限のオプションしか無いけど、以下ソース

hren.bat

@echo off
if "%5%" equ "" (
echo hren HipName ROPdriver StartFrame EndFrame IncrementFrame
exit /b
)
echo render -V -f %3 %4 -i %5 %2 > temp_ren
hbatch %1 < temp_ren


これで例えば、

 hren test.hip mantra 1 30 1

で、test.hipのROPドライバのmantraを使ってフレーム1~30までをレンダリングする。
この時、以下の中身のtemp_renっていう一時ファイルができる。

 render -V -f 1 30 -i 1 mantra

これを

 hbatch test.hip < temp_ren

っていうかたちでhbatchにhipファイルとともに渡してやることでレンダリングできる。
hbatchに渡してやるファイルのオプション等、工夫するともっときめ細かく制御できる。

複数のレンダリングを続けるときは、

call hren test.hip REN1 1 30 1
call hren test.hip REN1 61 90 1
call hren test.hip REN2 1 90 1

のように、BATファイルからcallで呼び出す。

MS-DOS以来、何十年ぶりだろうか。
超久しぶりに、BATファイルなんぞ作ってみたから結構適当。
最後に del temp_ren で temp_ren を消そうとしたらなぜか消せないし。

2014年5月31日 (土)

今日の新発見

今日、FontSOPにAdd Text Attributesなるオプションがあるのに

今さら、気が付いた・・・

いつのまに・・・これが無かったから、

例えばタイプライターエフェクトのように

文字を順番に処理するようなエフェクトを作る時、

わざわざ手でグルーピングしたり、それ用のOTL作ったりしてたのに。

これがあると、むっちゃ簡単やんorz

調べると、H12からついたらしい。H11には無かった。

やっぱ、こまめにNodeは調べとかんとあかんなあ。

Font1_2

ちなみに、FontSOPで日本語使えます。

というかFontSOPでしか使えない。

UIが2Byte文字に対応していないので、

直接入力できないし、パラメータ表示もできないので、

テキストエディタからコピペしてやらんとあかんけど。

そして、Fontを日本語Font(MSゴシックとか)に

設定すると、ビューポートには日本語のモデルが出ます。

Font2

UI日本語化はいらんから、スティッキーズや

NodeのCommentくらいは日本語が使えると便利やのに。

2014年5月 2日 (金)

キーボード

やあ、半年ぶりの更新です。

とはいえ、たいした内容では無いのだけれど。

前にキーボードは英語の方がいいというような記事を書いたと思うんだけど、

最近、オフィスを引越して荷物の整理中に、

前に使ってたO2のキーボードが出てきたので、今はそれを使っております。

いやあ、やっぱ昔のWSのキーボードはいい。当然、英語だし。

金がかかってるね。タッチが気持ちいい。

なによりWindowsキーが無いのがうれしい。

Keybord