普段使いで便利なHoudiniのSideFX LabのOperatorピックアップ

この記事はHoudini Advent Calendar 2019 13日目の記事です.

昨日の記事はK240さんの『HDKでアニメーションをSOPに取り込む』でした.このアプローチでボーンアニメーションで動くポリゴンと干渉するようなエフェクトを柔軟に生成したりもできそうです...!

はじめに

HoudiniにはIndie以上のグレードのライセンスで利用できる,Operatorの追加パッケージ,SideFX Lab(旧GameDevTooks)が存在します.

SideFX Labs | SideFX

今回の記事では,その中でも実際に使っていて便利だなあと思ったOperatorを紹介していこうと思います.主にゲームのAssetの制作等のリアルタイム用途で使いやすかったSOPを中心に,どう応用できるか軽い具体例も挟みつつ解説していきます.

SOP

Labs Align and Distribute

f:id:ttata:20191212024259p:plain 接続されているPrimitive(Piece)ごとに重ならないよう並べてくれるSOPです.並べる順番や並べる方向,間隔を設定できます.複数パーツで構成されるモデルを,Substance Painter等でペイントしやすいような配置で書き出す用途に使えます.(TexToolsのExplodeのような感じ)

Labs Axis Align

Geometryをそのバウンディングボックスの大きさにより移動させます.移動方法は各軸ごとにバウンディングボックスの境界や中心を基準に設定できます.わざわざbbox等で計算してtransformしなくて済むので,大変便利な利用頻度の高いSOPです.(今回の記事で一番オススメかもf:id:ttata:20191213135825p:plain 左: 入力Geometry,右: Labs Axis AlignでXZ平面に丁度乗るようY軸方向へ動かしたもの

Labs Caluculate Occlusion

入力したMeshのOcclusionをattributeに書き出します.光の当たらない箇所に植物を配置したり,shader側のtextureのブレンドに用いると便利です. f:id:ttata:20191213140035p:plain

Labs Calcurate Slope

入力したMeshの傾きをattributeに書き出します.HeightField Mask by FeatureのSlope RampのPolygonバージョンです.SOPLabs Caluculate Occlusionと同様な用途で使えます. f:id:ttata:20191213140417p:plain

Labs Dissolve Flat Edges

平らな複数の面に対してDissolveをかけて一つの面にまとめるSOPです.Houdiniのハードサーフェスモデリングでお世話になっています.ちなみにこのSOPを通すとUVの情報が壊れてしまうので,UV展開前に用いるか,あとからAttribute TransferでUVを他のGeometryから渡す必要があります. f:id:ttata:20191213140453p:plain 左: 入力Geometry,右: 面を一つにまとめたもの

Labs Distance From Border

ポリゴンの縁(共有されていないエッジ)からの距離でAttributeに値を書き込みます.Rampやブラー等で調整が可能です.汚し等,地面に配置するPropの縁をAlphaで抜いてなじませたりするのに便利でした. f:id:ttata:20191213140851p:plain

Labs Edge Color

ポリゴンの縁(エッジが共有されていてもOK,NormalではなくEdgeの角度で見てるっぽい)からの距離でAttributeに値を書き込みます.擬似的なSSSのような表現に使えました.Convex/Concave(凹凸)を区別して検出してくれるので,エッジが立った場所の劣化のような表現のmaskにも使えます. f:id:ttata:20191213141056p:plain

Labs Group Curve Corners

カーブのどのpointが内側/外側かをgroup化してくれます.また角度も計測してpointに書き込みます.ハードサーフェスの,シルエットからコーナーにディティールを追加する用途に便利です.

Labs Group Expand

PointやPrimitiveのGroupの範囲をPolygon上で指定した数だけ広げます. f:id:ttata:20191213141326p:plain

Labs Min Max Average

Attributeの最小値,最大値等の計測を行い,Detail Attributeに書き込みます.Attribute Promoteを手軽に使いやすくしたSOPです.

Labs Path Deform

PolygonをPathに従って曲げるSOPです.これを用いると道路や柵等がCurveで簡単に編集できるようになります.また,入力するMeshを,入力するCurveとぴったり同じ長さにしたい場合は,arclen("../path/to/curve_op", 0, 0, 1)等で調整すると便利です.注意点として,長手方向の軸の設定(Base SettingsのAxis)によっては,指定した軸回りに形状が180度回転してしまう場合があるので要調整です. f:id:ttata:20191213141626p:plain 左: 曲げる対象となる入力Mesh(Curveと同じ長さになるよう調整済み),中央: ガイドになる入力Curve,右: Path Deformをかけた出力

Labs Soften Normals

いい感じにやわらかい表示になるようNormalを計算するSOPです.通常のNormal SOPよりも汚いハイライト,陰が出ないので使いやすいです. f:id:ttata:20191213132042p:plain 左が通常のNormal SOP,右がLabs Soften Normals SOP

Labs Quick Material

SOPとしてPrinciple Shader,GameDev PBR,GameDev MatCapのMaterialを扱うことができます.Material NetworkにアクセスせずにSOP Network内でサクっとマテリアルのセットアップができるので便利です.

Labs Remove Inside Faces

内側に存在する閉じた面を削除します.BooleanやVolumeのPolygon化の後に使うと便利です f:id:ttata:20191213141854p:plain 左: 内側にポリゴンを持つMesh,右: Labs Remove Inside Facesの出力

Labs Thicken

Meshに厚みを付けます.表と裏の両面について同時に押し出しを行うことができます.(あと一応裏面のポリゴンリダクション機能付き) 厚みをつける用途ならPolyExtrudeよりも便利かなーと思います. f:id:ttata:20191213142126p:plain

Labs Trace PSD File

PSDファイルの画像をレイヤ毎にGroup分けされたMeshとして読み込むことができます.実際の活用は以下の動画がわかりやすいです. www.youtube.com

注意点として,PSD側のレイヤー名には日本語は使えないようです.また,レイヤー名の-(ハイフン)は,Groupでは_(アンダースコア)に自動で置き換えられるようです.

ROP

Labs CSV Exporter

GeometryのAttributeをCSVとして書き出します. 用途の一例ですが,ゲームエンジン側でCSVをパースしてオブジェクトの配置を行う専用のツールを作成すると,以下のセッションの動画のように,Houdini Engine無しに柔軟にPropの配置を行うフローが構築できたりします. www.youtube.com

Labs Games Baker

Mantraでテクスチャのベイクができます.ベイクできるチャンネルはよくあるPBRのテクスチャタイプについては一通り網羅しています.

f:id:ttata:20191213142754p:plain

個人的に嬉しいのはBase ColorのBakeができる点で(Substanceだと出来ない),このROPで書き出したBaseColorのMapをSubstanceに持っていってテクスチャリングを行っています.このフローだと模様がプロシージャルに生成できるので気持ちよく作業ができますね.

あとアイコンがかわいい.(houdiniのOperatorのアイコンで一番好き) f:id:ttata:20191213142156p:plain

まとめ

SideFXLabには,もうすでに自分で作ってしまった,もっと早く知りたかった,と思うような便利なOperatorが,今回紹介した以外にも複数パッケージされています. 今まで使ってなかった方もぜひ試しに導入してみてはいかがでしょうか.

Operatorとの良い出会いがありますように🙏


明日の記事はtakavfxさんの『HoudiniをPython3でやる!!!』です.post-EOLの来たるべきPython3の時代に備えていきたいですね.

(たのしみ)

42インチ4Kモニタを買った

f:id:ttata:20190523102941p:plain

身の回りの人が声を揃えて「4Kは良いぞ」と言うので前から気になっていたが,ついにとうとうぽちってしまった.決め手はいつも通話しながら作業している@OtObOxが放った「ものを作る人はみんな42インチ4Kモニタを買っているよ」という一言だった.確かに弊社のボスもオフィスで42インチ4Kを使っている.どうやらこの「ものを作る人はみんな~」構文は自分(の財布)に効くっぽい.ちなみに買ったのはこのモニタ.

実際に使い始めて2ヶ月が経ったのでさくっとレビューを書く.

レビュー

pros

  • デカい
  • ノングレア
  • 見た目のデザインがシンプルでかっこいい
  • 画面の明るさが柔軟に変えられる
  • 42インチなので文字が読みやすい.コード書くときに楽
  • USB-Cでmacを繋げられるらしい(未検証)
    • mac book proを給電しながらは使用するのは無理っぽい
    • 標準の付属ケーブルだと微妙に給電はされるが表示はできなかった
  • Windowを内部で分割するレイアウトのUIを使っているアプリケーションは4Kの恩恵を授かりやすい
    • UnityとBlender,Houdiniがヤバイ

cons

  • ディスプレイを斜めから見ると画面の縁が見えづらい.液晶からバックライトまでの距離が大きいのが原因かも.
  • コントラスト下げた時の暗い部分の階調の表現がちょっと弱い気がする.
  • マウスカーソルが失踪する
    • カーソルをちょっと大きくした

感想とか

どうやら4Kで快適に作業するための独特なWindowの使い方があるっぽい.ブラウザやファイラは最大化せずに画面の中央に散らばらせておくやり方が楽.画面分割できないようなアプリケーションは全画面表示ではなくこっちのほうが良いのかも.これをやると首が楽,というか首が楽なのでこのアプローチに収束すると思う.

まあトータルで満足.良い買い物をしたと思う. なんというか今まで使っていたザコいモニタが自分の脳の足枷になっていたことに気がつけた.暴力的ではあるが画素が多いのは開放感があって気持ちが良い.これでまたひとつ魂のステージが上がってしまった.今後も引き続き良いものを作っていくのでよろしくお願いします,という感じ.

今後の話

未だにArchlinux(xmonad)環境で試せてないのでそのうちやりたい.タイル型WMと絶対相性が良いと思う.

木瓜

f:id:ttata:20190113171537p:plain

木瓜の鉢植えを買った.インスタで見かけて以来ずっと気になっていて,ふと近くの花屋で探してみたらいい具合の鉢植えがあったので購入してしまった.ちょうど自分の誕生日だったというのもある.樹高は14cmくらいで,花のボリュームとのアンバランスが美しい.あと名前の漢字は「ボケ」って読むらしいですよみなさん.僕は知りませんでした.

ちなみに,買う前にどんな植物なのか調べたが,どうやら屋外環境じゃないと育てるのが難しいことがわかった.室内だと光量,気温,湿度,風通し等に過不足があるらしい.盆栽的な感じっぽい.弊家環境では屋外にモノをおけるスペースが無いので諦めそうだった.

むしゃくしゃしたので最終的にお迎えした.

環境要因についてはエンジニアの端くれなのでテックでボコスカ殴ることにした.これは技術的なハードルなので可及的速やかに問題解決されねばならない.幸い手元には使われていないArduinoRaspberry Piがある.

f:id:ttata:20190113181716j:plain

まずは植物育成用のLEDライト(光合成に必要な波長の赤と青のLEDが内蔵されたピンク色のパリピ仕様)を購入した.最終的には育成を自動化したい.たのしみ.

たにったさんを支える技術

この記事は苫小牧高専アドベントカレンダー2018 24日目の記事ですがクリスマスが終わった今も書いています🎉🎉🎉(デジャヴ感

これは言い訳ですが現在師走ランナーとして最後尾独走中です.たくさん応援してね.

前の日の記事ははっし~さん人生二度目のお気持ち表明(ヘッドハンティング編) | はしらぼ。でした.一度きりしかない人生,悔いの無いように生きていきたいですね.

次の日の記事はドールおじさんきついっす - 朴将軍録でした.やはり年末は忙しいですよね.追記が楽しみです.

きっかけ

ない子さん(@T_naiko)と#本当にひどい飲み会をやっているときに@mktakuyaから苫小牧高専AC2018の招集がかかりました.

自己紹介

今年はちゃんと自己紹介しようと思います.こういうのは苦手なのでそういえばあまり書いたことが無いはず.刮目せよ.

苫小牧高専機械工学科の卒業生のたにったさんです.マレーグマもやっています.在学当時は美術同好会三代目会長でした.有り金とスケジュールを溶かして共犯者の皆さんと一緒にインタラクティブに光るデカいキリンを作ったのは今となってはとても良い思い出ですね.

卒業後は謎の空白時代を経た後,立ち上げフェーズの3DCG系のデザインをやっていく系の某スタートアップに飛び乗り,エンジニア兼テクニカルアーティストとしてのびのびと働いています.エンジニアとしての主な業務内容はVRコンテンツ等のゼロベースでの新規開発,テクニカルアーティストとしてはツール開発によるアセットパイプラインの構築や開発環境の整備等で,無駄な工数を爆縮するなどしてチームの生産性を加速する裏方的なことをしています.このへんの話は今度別で記事書きます.

Twitterアカウントは日常用途の@ttata_tritと進捗用の@trit_techneの2つです.なかよくしてね.

さて,突然ですが今回はやっていきのための生産性を高めるTips集みたいな感じでどろどろと怪文書を書いていこうと思います.みんな好きですよね生産性.

プロダクティビティのための開発環境

最低限の衣食住が確保できたら最優先でおちんぎんをつぎ込みましょう. これは自明ですが自分の仕事との相性が良い構成にすると早めに投資を回収しやすい傾向があります(自明).

PC

とりあえずMac Book Pro 15 inch (late2016)をしばらく使っていたのですが,3Dやるには力不足感が否めず,またVR系のコンテンツの開発がしたかったので,VRヘッドセットの購入のタイミングでWinマシンを新しく組みました.GTX1080Tiが乗っています.このへんも別に記事を書きたいです.

Blender

最近勢いがあるフリーのDCCツールですね.CGWORLDでも特集が組まれることが多いような気がする今日このごろです.弊社としてはBlenderを組み込んだ開発フローを構築したいらしく,業務で使う機会も段々増えてきました.僕としてはとても嬉しいです.

サブスクリプションしてるやつとか

Adobe CCにクリエイティブ税を払っています.最近値上げが決まったらしいですね.ひもじい. ちなみに最近AllegorithmicにもSubstance税を納め始めました. あとちょっとやりたいことがあるので,もう少ししたらMarverous Designerも導入する予定です. 仕事でつかうならいつかそのうち投資金額を回収できるよね.

タスク,ネタ管理

作りたいものの管理とかです.

ちゃんと歳をとっていると,適当に思いついたアイデアに実装する価値が無いことがわかるようになってしまう.歳をとるほど,賢くなった自分の手を動かすために,普段の思いつきに頼るのではなく,自分から動的に,素材としての情報をストックする,価値のあるアイデアを練る作業が必要になってくる,みたいなのはよく思います.ポエムです.

Trello

f:id:ttata:20181228205808p:plain

未だにTrello使ってます.昔はTODOリストとして使っていたのですが,今はネタ帳(いつかやりたいこととか)と化しています.

Todoist

これも使ってます.TODOリストとしてTrelloに変わりに使っています.

todev

github.com

Trelloに開発で使いやすい手触りのタスク間の依存関係システムを導入したような感じのタスク管理アプリです.Electron+vue.jsで自分で書きました.既知のやらなきゃいけないことに手をつけると芋づる式に未知のやらなきゃいけないことが発生するような作業に向いているんじゃないかなと思います.

twitterに草を生やすやつ

https://pbs.twimg.com/profile_images/1078470629228068866/yfoAObpe_400x400.jpg

たにったさんのTwitterアカウントの名前とアイコンはGitHubのContribution具合を適当なタイミングで反映する仕組みになってます.アイコンはその日のContributionsに応じた草の色が適応され,アカウント名のレベル表記は一年間のContribution数になります.この仕組みを作ったのは相当前なんですが,確かGitHubのプロフィールページをスクレイピングして得られた進捗情報をTwitter APIで反映する,みたいなツールを書いた記憶があります.この仕組みにより,普段どのくらいサボっているのかすぐにバレるので進捗に緊張感が生まれます.やったね.

f:id:ttata:20181228203354p:plain

デカい木の板をソーホースの上に乗せた,お手軽テーブルを使ってます.天板はえごま油(乾性油)でひたすら磨き続けました.残ったえごま油は冷奴にかけていただいてます.ていうかえごま油の美味しい食べ方知っている人いたら教えてください.ググってもえごま油をメシに取り入れるインセンティブが健康面の話しかなくて困ってます.

椅子

謎の空白時代からずっとバランスボールを愛用しています.筋肉で姿勢が正しくなるので逆に疲れないのと体の不調も出にくくなるあたりが気に入っています.というかバランスボールが無いと一日中開発できる自信が無い.

プロダクティビティのための運動

資本は体.体力が無いと良いものが作れないので一週間に10kmくらい走ってます.(平均すると0.06km/h)バランスボールと同様に腰痛対策も兼ねてます.ちなみに雪が積もってる期間は滑って転ぶと痛いのでおやすみです.

プロダクティビティのためのメシ

作り置き

cookien.com

大量にタッパーを購入して作り置きをしましょう. うまく作り置きサイクルを回せると少ない調理時間で美味いごはんが継続的に食べられます. タッパーにはラップを敷くと洗浄にかかる時間が抑えられるのでプロダクティビティが向上します.

土鍋ごはん

f:id:ttata:20170125224143j:plain

あんまり生産性関係無いですがウマいごはんが食べられるのでバイブスが上がります.

炊飯器より美味しいごはんが炊飯器よりも早く作れます.

普段のレシピを書いておきます.

  1. 米を研いで水に1時間ほどつける
  2. 土鍋に米を入れる.水はお好みで(大体米が浸かるくらい)
  3. 蓋をして火力最大で沸騰するまで加熱する.ここから蒸らし終わるまで絶対に蓋を開けてはいけない.稀に沸騰に気が付かない場合があるので10分ほどタイマーで測っておくと安心.
  4. 沸騰したらとろ火で10分加熱する
  5. Option: おこげを増やすため,中火で15〜30秒ほど加熱する
  6. 火を消して10分蒸らす
  7. 蓋を開けてごはんをかます
  8. できあがり🍚

プロダクティビティのためのお仕事

チームの生産性の向上のため社内にGitHubesa.ioとSlackを導入しました.また,それによりどこでも情報にアクセスでき,作業量も可視化されたため,現在弊社ではリモートワークも可能になりました.これで通勤等で消える無駄なリソースをやっていきに回せるようになりました.やったね.計画通り.

ちなみにリモートワークは実現まで1年近くかかってます.長かった....このあたりの話も後で別の記事を書こうと思っています.

所感

来年はもうちょっと加速します.応援よろしくお願いします.

Global Game Jam Sapporo 2018に参加してきた #ggjsap #ggj

今年もGGJ札幌会場に参加してガッとゲーム作ってきました.

Global Game Jam Sapporo

全体の流れはtogetterがいい感じにまとまっていてオススメです(記事書いてて思ったけどサムネがひどい).

togetter.com

今回はUnityでゲームを開発するチームに参加し,グラフィック周りを担当しました.

成果物

f:id:ttata:20180129230639p:plain

『はーとふるラブレター』

Hatoful Love-letter | Global Game Jam®

ここから遊べます

ハトのモデリングに全力を注ぎました.他のモデリングは適当にシュッとやりました.

こっちは未使用リソースです

そういえば他にもゲームクリア時のアニメーションをUnityのTimelineを使って作りました.初めて触る機能だったんですが,チームメンバーのかまたさん(@kamayuki_fs)にオススメして頂いた以下の記事のおかげで,なんとかそれっぽいものが出来上がりました.

www.shibuya24.info

ゲームのアップロード後,本会での制作したゲームの発表が終わってから懇親会までの間に時間があったので,難易度を微妙に変えたバージョンを作成して懇親会会場で公開してました.クリアできたのは5,6人だったと思います.ちなみに僕はクリアできてません.

感想

GGJに参加するのは3回目なんですが,今年はエンジョイ勢としてたくさんツイッターをしながらゲームを作りました.楽しかったです.みなさんお疲れ様でした!

樽前FMについて

この記事は苫小牧高専アドベントカレンダー2017 24日目の記事ですが25日に書いています.メリークリスマス🎉🎉🎉

はじめに

tarumaefm.com

樽前FM,ご存知でしょうか.苫小牧高専関係者の方をゲストに呼び,適当に世間話をするpodcastです.MCは後輩の@mktakuyaがやってます. 今年の1月あたりに最初のエピソードが公開,そしてつい先日22日に新しいエピソードが投稿され,現時点で全10話ほど公開されています.その中で僕は初回のEP01とEP08でゲストとして出演させていただきました.今回の記事ではそんな樽前FMについて,ゲスト目線でちょっとだけお話してみようと思います.

きっかけ

自分は何年か前から@mktakuyaと,あまり真面目に作業しないさぎょいぷ(しかもskypeですらない)を定期的にしています.技術的な話からエモい話まで眠くなるまでざっくばらんに世間話をしているんですが,そこでほぼ毎回,お互い普段聴いてるrebuild.fmというエンジニア向けのpodcastの感想の話をしてるんですよね.で,確か大体1年くらい前にその話の流れで,podcastやってみないか,みたいな話になり,オッ,マジか,と最初は思ったんですけど,なんか最終的にまあやってみてもいいかなと.そして,僕も@mktakuyaもお互いそういった技術系から雑談系まで横断的に扱うpodcastの雰囲気を共有できてたので,今後の樽前FMの方向性をなんとなく形作る意味合いも兼ねて,第一回の収録の方で出演する運びとなりました.確かこんな感じの経緯だったと思います.ちなみにタイトルの"樽前"こと樽前山は,苫小牧高専付近にある,現在も定期的に地震や水蒸気噴火等のピクつきが観測される,やっていきに満ち溢れた活火山です.テスト期間になると皆が噴火を祈ります.山岳信仰ですね🙏

実際に喋ってみて思ったこと

 収録を聴いてくれる人を意識して喋るのが面白かったです.この樽前FMはエンジニアというよりもどちらかというと(苫小牧)高専関係者向けのお話をするpodcastっぽいので(そうだよね?)話題の選定や,妙ちくりんなテクニカルタームの使用に配慮した方がいいかなー?とか考えながら話をしてます.こんなふうに,その場にいない人を想定して世間話をすることは普段なかなか無いので,頭の変なところが回る感じがありました.

最後に

みなさんお手柔らかに聴いてみてください.また,苫小牧高専関係者(在校生,卒業生等)で,こういう雰囲気のやっていきで自分も面白い世間話を一緒にしてみたい,という方は@mktakuyaまで連絡していただけると色々と楽しいんじゃないかと思います:)