なんとなく作成。筋感のある煙は稀によくあるのでメモも兼ねて。
小さいスケールのものを作る場合は、リアルサイズではなく一度スケール10倍や100倍で作ったほうが作りやすい。
hip
cigaretteSmoke_v001_gd.hiplc - Google ドライブ
Houdini Indie 18.5.532で作成
OCIOはNuke12.2v6に付属する、ACES 1.1
使用しているHDRIとOCIOは入っていない。
煙

Pyro Sim
Advect by Volumeで使用するvelをPyro Solverで作る。
エミッター
スフィアにScatterしたものをVolumeにしたもの。
大きめの範囲をvelがカバーできるようにエミッターも大きめに作る。

コリジョン
TubeとCapで鐘のような形状を作成する。
Sim時に、このコリジョンにあたった部分から形が崩れるので高さがかなり重要。
幅はなるべく広め。

Pyro Sim
velを保存する以外に必須の設定はない。Turbulenceをちょっと加えて乱れた感じを追加する。
コリジョンの影響でできる上部の半球状の煙溜まりがポイント。

POP Sim
エミッター
Pyroで使用した球状エミッターの、上下を削り、輪っかにする。

その後、スケールをかけて潰れた輪っかにする。この際にPyro Simのエミッターよりも小さくなるように全体にスケールもかける。

$F などをRotate Yにいれて回転させ、その状態でCopy Transformで複製する。
この際に90度を超えないように微妙な交差状態のほうが筋が見やすくなる。

POP Sim
単純なPOP Networkで、Lifeを程よい値に変更し、POP Advect by Volumeを使用して先ほど作成したPyro Simのvelを適応する。

POP Advect by VolumeのAdvection TypeがUpdate Forceだとコリジョン形状がバレてしまう。
それを避けるためにVelocity Updateに変更する。


ちなみに、Update Forceの状態でTreat as Windをオフにするとどんどん立ち上る煙草の煙になる。
滞留感が不要な場合はこちらもあり。

Curve化
sourceptnumで各ポイントをコネクトしてライン上にし、一度NURBSにしたあとでResampleする。

Volume化
ageとlifeでdensityとpscaleを作成する。

Volume Rasterize AttributeでVolume化する。

Point数が足りない場合は、Velocity Blurで補完をかけてもいいが、その分筋感がぬるくなってしまうので注意。
最後に実際に使用するスケールや位置に戻す。
この際、Volume Mix等を使用して、1/スケールのぶんだけDensityをMultiplyすると見た目が維持される。


タバコ

形状
Lineをタバコの長さで作成し、Poly WireでTube状にする。

PolyWire前に、Point Wrangleでi@isinterior = neighbourcount(0, @ptnum) > 1;とし、
PolyWireのSmooth Pointを@isinteriorにすると蓋のされていないTubeになる。

色とアルファ
curveuから色を設定

curveuからAlphaを作成し、Alphaから火がついている部分の色を設定する。


灰部分
Peakで少し細くし、Polyfillで前後を塞ぎ、Subdivideで分割数を増やしたものにノイズをかけてそれっぽくする。

灰皿
形状
Circleを作成し、Group Rangeでくぼませる箇所を選択


作ったGroupを一度Edge GroupとしてPromoteし、Bevelをかける。

Group Transferを使用して最初のPoint Groupを再転送し、またEdge GroupとしてPromoteする。

上になるものは、Transformで高さ分だけY軸へ移動し、さらに先程PromoteしたGroupで-Yにちょっと戻すことでくぼみを作る。
下のものはSmoothをかけてPoint間をリラックスする。

Skinで面を貼り、Fuseで近接ポイントをマージ。
その後Group ExpressionでY軸が0のものをGroupにする。そのGroupもEdge GroupへPromoteする。

Edge Groupを指定してPoly Fillをすることで底面のみが塞がる。

Reverseで法線を反転し、Poly Extrudeで厚みをつけ、Poly Bevelで少しベベルをかけたら完成。
ベベル処理の有無でハイライトの出方がかなり変わるのでモデルを作る場合は必須。

レンダリング
今回はKarmaでレンダリングしている。Mantraよりかなりレンダリングが速いので早く実用段階になってほしい。
詳しくないのと大したことはしていない。


HDRI
HDRIはこちらを使用。
ただし、自分の環境ではACES CGでレンダリングしているので、COPで一度カラースペースを変換している。
変換処理


