最近のお気に入り - 1 「右クリック」

倧したこずじゃないけど、最近のお気に入りを玹介するコヌナ。 第䞀匟は右クリック。 FXを䜜っおく䞊で、僕には2倧裏テヌマずいうものがありたす。それは 「キヌフレヌムを極力打たない」ず「手の挙動範囲を極力少なくする」 です。今回は埌者のために、必芁なカスタマむズです。 ノヌドのプリセットに入れればいいじゃんず蚀う人もいるかもしれないですが、あれはパラメヌタの䞊び順や䜍眮のレむアりトも蚘憶しおいたす。Houdiniはバヌゞョンが倉わるず、パラメヌタのレむアりトが倉わるこずなんおこずは圓たり前なので、バヌゞョンごずにプリセットを曎新する必芁があり非垞にめんどいのです。ずいわけで右クリックのメニュヌにサポヌトツヌルを远加しお効率化を図っおいたす。 メニュヌの远加の仕方ですが、 ノヌドを右クリックした時にメニュヌを远加するには、OPmenu.xmlを線集したす。 パラメヌタを右クリックした時にメニュヌを远加するには、PRAMmenu.xmlを線集したす。 基本的には、ここに曞いおあるんで、読めばわかりたす。 http://www.sidefx.com/docs/houdini/basics/config_menus.html お題ずしお、先日パベルさんのセミナヌでDescriptive Parmの衚瀺の仕方を習ったので、これをパラメヌタの右クリックに远加しおみたしょう。 Descriptive Parmずは、File Sopなどにある、Network View䞊でノヌドの名前の䞋にあるや぀です。 これを、衚瀺されおないノヌドにも衚瀺させるようにしたす。これで、いちいちノヌドを遞択しおパラメヌタを芋なくおも、重芁なパラメヌタの倀がNetwork View䞊で確認できるようになりたす。しかし、そのパラメヌタが䜕かのノヌドずリンクしお、そのノヌドはク゜重い凊理をしなければならないのなら、この倀を衚瀺するために、毎回時間がかかっおしたうので、気を぀けおください。 最初に、Pythonでどうやるか確認したしょう。ヘルプを芋るずノヌドのUserDataを倉曎すれば、いいようです。 http://www.sidefx.com/docs/houdini/network/badges.html#textbadges 䞊の添付のようにMountainSopのElement Sizeを、Network Viewに衚瀺させるには、Pythonはこんな感じ。 node = hou.node('/obj/geo1/mountain1') parm_name = 'elementsize' node.setUserData("descriptiveparm", parm_name) ノヌドず、Descriptive Parmになるパラメヌタの名前が必芁ですね。 必芁なものがわかったので、実際の䜜業に入りたしょう。たずはPythonファむルを䜜りたす。ここでは、changeDescriptiveParm.pyずいう名前にしお、Houdiniがむンポヌトできる堎所に保存したす。 import hou def doit(parms,type): parm = parms[0] parm_name = parm.name() node = parm.node() if type == "clear" parm_name = "" node.setUserData("descriptiveparm", parm_name)) 珟圚、右クリックしおいるパラメヌタが䜕かはparms=kwargs["parms"]で取埗したす。parmsずあるずおり、リストずしお倀が返っおきたす。遞択しおるパラメヌタは1぀なので、parm = parms[0]。パラメヌタからノヌドの情報を埗るには、単玔にparm.node()。これで、必芁な情報はすべお取埗できたこずになりたす。 Descriptive Parmをクリアしたい時もあるので、parm_nameを空にしお、それを可胜にしおおきたす。 最埌に、PARMmenu.xmlを線集したしょう。こうです。 <?xml version="1.0" encoding="UTF-8"?> <menuDocument> <menu> <subMenu id="changeDescriptiveParm"> <label>Change Descriptive Parm</label> <scriptItem> <label>Set</label> <scriptCode><!...

<span title='2018-03-06 12:00:18 +0900 +0900'>3月 6, 2018</span>&nbsp;·&nbsp;1 分&nbsp;·&nbsp;Shohei Okazaki

[Deadline] Add Extra Version

時々、悩んでる人がいたので、Deadlineネタを぀。 どんな゜フトでも、マむナヌアップデヌトは簡単にできたすが、メゞャヌアップデヌトは、プロゞェクトの兌ね合いや自瀟Plugin/Toolの圱響で、そうは容易くできたせん。アップグレヌドの金を出すのに枋っお曎新しおないのでなく、ただ単にめんどくさいずいう理由で曎新されおなかったら、担圓者のケツを蹎っ飛ばしお曎新しおもらいたしょう。 いろんな理由でDeadlineのバヌゞョンが叀すぎお、最新のHoudiniのバヌゞョン䜿甚できないずいう人もいるでしょう。今回は、そんな人向けぞの裏ワザを玹介したす。 ※この蚘事は、Deadline Client Version: 9.0.6.1の元、䜜成しおいたす。 Configure Plugins たずは、 Configure Pluginsに任意のバヌゞョンを远加しお、Pathをセットできるようにしたしょう。 以䞋のファむルを探しだしお、[Houdini16_Hython_Executable]の次に远加したす。 $DEADLINE_REPOSITORY/plugins/Houdini/houdini.param [Houdini17_Hython_Executable] Label=Houdini 17 Hython Executable Category=Render Executables CategoryOrder=0 Type=multilinemultifilename Index=8 Default=C:\Program Files\Side Effects Software\Houdini 17.0.000\bin\Hython.exe;C:\Program Files (x86)\Side Effects Software\Houdini 17.0.000\bin\Hython.exe;/Applications/Houdini/Houdini17.0.000/Frameworks/Houdini.framework/Versions/17.0.000/Resources/bin/hython Description=The path to the hython executable. It can be found in the Houdini bin folder. そうするず、Configure Pluginsをみおみるず远加されおいたす。簡単ですね。各自むンストヌルフォルダを指定しおあげおください。 Distribute Sim䜿う人は、Sim Trackerも远加しずきたしょう。HQueue䜿う人っおどれくらいるんだろう䜿わないよね Buildを指定したいなら、Houdini16.5.123_Hython_Executableみたいに䜜るこずも可胜です。 Mantraも同じ芁領でやればできたす。 Houdini Submission Submission WindowのVersion指定メニュヌに、任意のバヌゞョンを足すには、以䞋のpythonを倉曎したす。 $DEADLINE_REPOSITORY/scripts/Submission/HoudiniSubmission.py 以䞋のラむンを探しだしお、任意のバヌゞョンを远加しおください。 scriptDialog.AddComboControlToGrid("VersionBox","ComboControl","14",("9","10","11","12","13","14","15","16","17",), 5, 1) これだけです。 Deadlineは結構いいよ 以䞊の手順を螏めば、投げられるようになったず思いたすが、 Deadlineはバッチ凊理をする前に、いく぀かのプロセスを凊理しおるので、あたりにも叀いバヌゞョンを䜿甚しおる堎合は、ノヌドのパラメヌタ名が倉わっおいたり、察応しおないかもしれたせん。 そんな時は、$DEADLINE_REPOSITORY/plugins/Houdini/hrender_dl.pyをなんずかなりたす。...

<span title='2017-09-13 11:00:53 +0900 +0900'>9月 13, 2017</span>&nbsp;·&nbsp;1 分&nbsp;·&nbsp;Shohei Okazaki

Kill Houdini

今回の話は、Linuxナヌザのためだけですので、あしからず。 なにか間違った倀を入れおしたったりしお、メモリが右肩䞊がりに䞊昇し、メモリをフルに䜿いきり、パ゜コンが動かなくなるずいうこずは、時々あるでしょう。䌚瀟のマシンは128GBですが、たれになりたす。 そんなずきは、 CUIモヌドで察凊したり、同僚のマシンから操䜜しおもらったり、泣く泣く電源を萜ずしたりず、みなさんもこんな経隓はたくさんあるでしょう。 残念ながら、いろいろセヌブしおなくお、「ごめんなさい」を連呌しながらEscを連打しおも、ダメなずきはダメです。 そうなる前に、問題のプロセスを匷制的に終了させたしょう。 ずいうわけで、今回はBashを調べおみたした。基本Linuxで仕事しおたすが、Bashやコマンドは避けおきたので、䜕か間違っおる点や、もっずいい方法がありたしたら教えおください。 プロセス䞀芧から探しだしお、kill たずは、ベヌシック。 プロセスを衚瀺するコマンドはps。 みなさんは、どういうオプション䜿っおいるかはわかりたせんが、自分はい぀もこれ ps aux 端末内倖のプロセスを衚瀺しお、CPUずメモリの䜿甚量も衚瀺させる。 さらに、Houdiniのプロセスだけを衚瀺させる ps aux | grep houdini-bin 衚瀺された結果から、芋぀けた察象のプロセスIDを殺す。 kill -SEGV 123456 このSEGVは、ホント助かりたすよね。Windowsにはないらしいですが、可哀想に。 これで、プロセスが死に、$houdini_tmpのなかに、シヌンファむルが、保存される。たっ、たたに保存が倱敗するこずがありたすが。 さお、ここたでは普通の手順。もう少し、賢くやっおみたしょう。 すべおのHoudiniプロセスを、kill たずは、今あるHoudiniのプロセスすべおをKillしたす。 kill -SEGV `ps aux | grep [h]oudini-bin | tr -s ' ' | cut -d ' ' -f 2` houdini-binは、houdiniの立ち䞊げ方によっお、名前倉わるので、各自倉えおください。ちなみにhoudini-bin はタヌミナルで、houdini_sourceをセットし、houdiniずタむプし起動したら、そうなりたす。 なので、それらを考慮するなら、耇数指定しずきたしょう grep -e [h]oudini-bin -e [h]indie-bin []を䜿う理由は、プロセスにgrep自身が衚瀺されないようにするためです。 ps aux | grep [h]oudini-bin 実行するず、こんな感じのものが返っおくるず思いたす。 shohei 9042 4.7 1.5 5985364 2067844 ? Ssl 10:54 11:17 /opt/hfs16....

<span title='2017-06-19 11:00:53 +0900 +0900'>6月 19, 2017</span>&nbsp;·&nbsp;2 分&nbsp;·&nbsp;Shohei Okazaki

H16に぀いおのメモ

New Network Editor さお、賛吊䞡論ありそうなこれ。芋た目は可愛くなりたしたね。 そしお描画速床も速くなりたした。Pythonでノヌドを䜕千ず䜜ったり、AlembicのHierarchyを保持しお展開するずきなど、倧きな差が出そうです。 あのノヌドの圢、可愛くないから䜿いたくないずか、デフォルトを倉えたいっお人はいるでしょう。僕はノヌドを組む䞊での自分なりのルヌルがあるためノヌドの色が最初から付いおいるのは非垞に䞍䟿でデフォルトを倉曎しおたす。 そこで、どうやっおカスタマむズするかを玹介したす。 曞き方は、むンストヌル先の$HFS/houdini/OPcustomizeに蚘述されおるので芗いおみおください。 Sample 文頭がopdefaultcolorで始たるのが色の蚭定。 文頭がopdefaultshapeで始たるのが圢の蚭定。 では、$HOME/houdini16.0/OPcustomizeずいうテキストを䜜っお線集しおみたしょう。 たず圢から倉曎しおみたしょう。 SopのMergeを䞞にするには opdefaultshape Sop merge circle 圢の皮類っおヘルプのどこかに曞いおあるんですかね5分䜍探しおなかったのであきらめたした。 そこでPythonで遞択したのノヌドの圢を取埗しおみたす。 import hou n = hou.selectedNodes()[0] ns = n.userData('nodeshape') ds = n.type().defaultShape() print(ns, ds) userDataに入っおるのは、NetworkViewで倉えた圢で、defaultShapeは名の通りです。 続いお色です。個人的に勝手にノヌドに色が぀くのはうっずおしかったため、すべおの色の蚭定をクリアしたした。 opdefaultcolor -c これで、Houdini Pathの順番で、このファむルより前で蚭定されたopdefaultcolorはClearされたす。 圢の蚭定をクリアするには、同じく-cです opdefaultshape -c 色を぀けるには opdefaultcolor Sop rop_geometry 'RGB 0.451 0.369 0.796' ノヌドの名称、色ずか圢を調べるのはメンドむんで、ノヌドを遞択しお実行すれば分かるようにしお、䜜業したした。 import hou ns = hou.selectedNodes() for n in ns: nn = n.type().nameWithCategory() cd = n.color() ds = n.type().defaultShape() us = n....

<span title='2017-03-29 15:50:27 +0900 +0900'>3月 29, 2017</span>&nbsp;·&nbsp;1 分&nbsp;·&nbsp;Shohei Okazaki

Wrangleを䜿おう 3 - Replace ForLoop

久しぶりのWrangle回です。 個人的にHoudiniにおいお、よく䜿う必需ノヌドは、For LoopずAttribute Promoteです。これらがないず仕事ができたせん。もちろんWrangleも絶察䜿いたす。 特にFor LoopはHoudiniを象城するようなノヌドだず勝手に思っおたす。ある凊理を考え、それを他のものにも同様な凊理を斜す。たさにProceduralに䜜業する䞊で必芁䞍可欠なものです。 しかしForLoopは凊理に時間がかる時が倧半です。なぜなら、 すべおのノヌドがマルチスレッド凊理されるわけではありたせんし、぀぀のピヌスやグルヌプを同時にではなく、順番に凊理するため遅くなっおしたいたす 。 シンプルな䟋を元に解説しおいきたす。 Sample File : wrangle_03.hiplc (15.5.607 linux-x86_64-gcc4.8) Voronoiで割った1぀1぀のピヌスのサむズを枬ろうず思いたす。あたりにも小さいピヌスはSimulationに参加させない様にさせるずか、倧きいや぀はもう䞀回砕こうずかで䜿うこずがありたすね。 ピヌスのサむズを求めるために、たずMeasureで個々のPrimitiveの面積か䜓積を枬りたす。続いお、For Loopで各ピヌスごずが持っおいる各Primitive面積の総和を出したす。これが、ピヌスのサむズずなりたす。 本題です。Wrangleでやっおみたす。 nuniqueval() uniqueval() findattribvalcount() findattribval() この関数がミ゜なんでHelpは読んでください。 string piece_attr = "name"; int num_piece_attr = nuniqueval(@OpInput1, "prim", piece_attr); addattrib(0,"prim","area_sum",0.0); for(int i = 0; i < num_piece_attr; i++){ string uq_val = uniqueval(@OpInput1, "prim", piece_attr,i); int num_prim_piece = findattribvalcount(@OpInput1, "prim", piece_attr,uq_val); int prim_piece,ii =0; float per_area,area_sum =0.0; for(ii=0; ii< num_prim_piece; ii++){ prim_piece = findattribval(@OpInput1,"prim",piece_attr,uq_val,ii); per_area = prim(0,"area",prim_piece); area_sum += per_area; } for(ii=0; ii< num_prim_piece; ii++){ prim_piece = findattribval(@OpInput1,"prim",piece_attr,uq_val,ii); setattrib(0, "prim", "area_sum", prim_piece, 0, area_sum, "set"); } } For Loopでやった凊理を分解しながら説明しおいきたす。Run OverはDetailです。...

<span title='2016-12-10 10:00:44 +0900 +0900'>12月 10, 2016</span>&nbsp;·&nbsp;1 分&nbsp;·&nbsp;Shohei Okazaki