tag:blogger.com,1999:blog-39647474090160333492024-03-16T10:09:42.838+09:00sBlogHoudini 3dsmax Photo Drawing BicycleSugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.comBlogger337125tag:blogger.com,1999:blog-3964747409016033349.post-9367172301824022222023-12-19T06:48:00.006+09:002024-01-09T00:43:56.460+09:00MaterialXでbumpの正しい設定方法 まだHoudiniアペレンティスの方のアドベントカレンダー↓に空きがあったので12日目に<div>入ってみました。</div><div><a href="https://qiita.com/advent-calendar/2023/happrentice" target="_blank">https://qiita.com/advent-calendar/2023/happrentice</a></div><div><br /></div><div>Material Xでグレースケールの画像を使い正しくバンプを設定する方法です。</div><div>以前ワークショップで紹介した方法は間違っていました。すみません (^^;)</div><div><br /></div><div>以前から何となくおかしいなと思ってはいたのですが、、、</div><div>言い訳をすると、diffuseの画像がごちゃっとしていたり、bumpの強度を少なくしていたので</div><div>間違いに気づいていなかったのと、某フォーラムで紹介されていたので合っていると信じてしまっていました。</div><div>(それと会社ではジオメトリのシェーダーはLookDevチームがArnoldシェーダーで行うので、、、)</div><div><br /><br /></div><div><br /></div><div>以下、解説です。</div><div>diffuseには何も張らずに、bumpだけ設定しています。<br />左は間違ったもの、右は正しい方法です。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIrY1wQSU0ukJCqio988gl1XGBH2M8fzQSPzPNIkxz9j0UQW4sr2RsfnrRfHnG-pVsD6XC6W6MjN9un5d-FoDSRnM0NFMCoISuLvG-ZDftdPCS_wPvY3mHMUYYgICQg7ERbK1z2YmfDMOZt5Eh0CfAMv5a49cP1_aLEpOpQ5A1JisyeEschj1LJD_WfRU2/s1072/materialXbumpTop.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="463" data-original-width="1072" height="277" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIrY1wQSU0ukJCqio988gl1XGBH2M8fzQSPzPNIkxz9j0UQW4sr2RsfnrRfHnG-pVsD6XC6W6MjN9un5d-FoDSRnM0NFMCoISuLvG-ZDftdPCS_wPvY3mHMUYYgICQg7ERbK1z2YmfDMOZt5Eh0CfAMv5a49cP1_aLEpOpQ5A1JisyeEschj1LJD_WfRU2/w640-h277/materialXbumpTop.jpg" width="640" /></a></div><div><br /></div>ノイズ画像を用意して、<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig2jiP3H9JqtmZ-ryT5xwkFCMgjTWz9k7V4RlxScg0fClrISO3lmgJjHJ4Qo8TR8mqRqDzzZsVAW6NFc7CZ9x76qYwa6UuNysf4A4xosdGEkA3JtAQhcFt1UzMEi8Vz7_AO5pQrFCkSyvq4QhW-rwZGOiaXAM9rlHpzm2NEX6zTZ8AsKG5rTR5GNW4O9od/s512/noise.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="512" data-original-width="512" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig2jiP3H9JqtmZ-ryT5xwkFCMgjTWz9k7V4RlxScg0fClrISO3lmgJjHJ4Qo8TR8mqRqDzzZsVAW6NFc7CZ9x76qYwa6UuNysf4A4xosdGEkA3JtAQhcFt1UzMEi8Vz7_AO5pQrFCkSyvq4QhW-rwZGOiaXAM9rlHpzm2NEX6zTZ8AsKG5rTR5GNW4O9od/s320/noise.jpg" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div>以下の様に設定していました。mtlx tile imageで画像を読み、グレースケールの画像なので height to normalでnormalに変換しmtlx standard surfaceマテリアルのnomarlに指す。</div><div>するとトップ画像の左側の様になんかおかしな感じの結果になります。</div><div>ボックスの色は白です。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsugn3DYKeLUd39wWEXfA8ES9S0oNLwq6SgYGuGXnksN6AXmJ9umr8LWe2D3raz3UGR-nTb0gm8xZbpBHUDEITKPkNz9PHfeduDNNat9f7RN4On1PY2nF54lLxcdmP3wjlwONi_MYpyEKPVcBEYiHV-C3f4-C-YJJVsMwH6o3UYPq0YA_uUqXm1Gf7rCAt/s874/NG_network.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="489" data-original-width="874" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsugn3DYKeLUd39wWEXfA8ES9S0oNLwq6SgYGuGXnksN6AXmJ9umr8LWe2D3raz3UGR-nTb0gm8xZbpBHUDEITKPkNz9PHfeduDNNat9f7RN4On1PY2nF54lLxcdmP3wjlwONi_MYpyEKPVcBEYiHV-C3f4-C-YJJVsMwH6o3UYPq0YA_uUqXm1Gf7rCAt/w640-h358/NG_network.jpg" width="640" /></a></div><div><br /></div><br /><div>念のため、同じ画像でディスプレスメントを設定するとどうなるか試しました。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNSsiey62-jd7lVeasHuzKJxXvHY1W6lHl8asaEn0NeFCUU71uxNkNc5zgXN8Nd_KE2I8lxgjNOGkatrsHRTa_P6TX89RnDXkzOkTU1uQDGUA_YkdIJgPQLsx0kIZXo6JYcxJf-kmaJmCIMdN8Q-LpyWKxsjg5nHqNEzVf5vF1lPQVOKTmxCQrV-Am6MGc/s914/displacement.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="430" data-original-width="914" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNSsiey62-jd7lVeasHuzKJxXvHY1W6lHl8asaEn0NeFCUU71uxNkNc5zgXN8Nd_KE2I8lxgjNOGkatrsHRTa_P6TX89RnDXkzOkTU1uQDGUA_YkdIJgPQLsx0kIZXo6JYcxJf-kmaJmCIMdN8Q-LpyWKxsjg5nHqNEzVf5vF1lPQVOKTmxCQrV-Am6MGc/w640-h302/displacement.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">これが正しい結果ですね。</div><div class="separator" style="clear: both; text-align: left;">bumpでもこれに近しい感じにならないといけません。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">以下は正しい方法、height to normalの後に normal mapノードが必要でした。結果はトップの右側の絵です。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEierv4BaE5DTGqnb7MjQtj3fhrJBADRGdYOVIlv5BJnLhxBmd8qh0Ga7TQMoai9i49emh0WFDDDTEidphidcCcJxIgRvOIftXzhl2Rgb5jOe4zEXvmrD0O2VI9H7sFAC1WtkwAX84ydFv5YsaOyhJSvUtUGrtFFm0iQpGCWDfGLeqrjbr7fsT9VHS-VHXOk/s905/Good_network.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="541" data-original-width="905" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEierv4BaE5DTGqnb7MjQtj3fhrJBADRGdYOVIlv5BJnLhxBmd8qh0Ga7TQMoai9i49emh0WFDDDTEidphidcCcJxIgRvOIftXzhl2Rgb5jOe4zEXvmrD0O2VI9H7sFAC1WtkwAX84ydFv5YsaOyhJSvUtUGrtFFm0iQpGCWDfGLeqrjbr7fsT9VHS-VHXOk/w640-h382/Good_network.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">簡単な記事で恐縮ですが、以上です。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">hipファイルは<b><a href="https://drive.google.com/file/d/1Fyh6ggL7eojUPj-69PLPqr9_bFSOzOBJ/view?usp=sharing" target="_blank">こちら</a></b>。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">そろそろ年の瀬ですね。皆様良いお年を!</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div>Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-9895512450415824842023-12-14T12:34:00.007+09:002023-12-26T03:19:02.347+09:00サブフレーム無し! カーブモーションブラーをかける<p>この記事はHoudiniアペレンティスアドベントカレンダー↓ 14日目の記事です。<br /><a href=" https://qiita.com/advent-calendar/2023/happrentice" target="_blank"> https://qiita.com/advent-calendar/2023/happrentice</a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLZskLjLyOv-BRD2bAal2N76ap7mmPMBo2brS_iaU-6FjsKVnGYPQ_3wS8k8sQHiIPlghENyBIG_0Z4eoXF27SqvNGCgLbXz-SC5Ry6gHuT3nufUnYE4LJgadJH-fXbKhxq3IvzwDVY5qEqMciOA-erO4-A-7AOyinJNh0tjXxOOnxwyubA2ZwjETMm8OK/s1232/top.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="475" data-original-width="1232" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLZskLjLyOv-BRD2bAal2N76ap7mmPMBo2brS_iaU-6FjsKVnGYPQ_3wS8k8sQHiIPlghENyBIG_0Z4eoXF27SqvNGCgLbXz-SC5Ry6gHuT3nufUnYE4LJgadJH-fXbKhxq3IvzwDVY5qEqMciOA-erO4-A-7AOyinJNh0tjXxOOnxwyubA2ZwjETMm8OK/w640-h246/top.jpg" width="640" /></a></div><br /><p>パーティクル(だけではなく何でもいけます。)にカーブモーションブラーをかける方法を紹介します。<br />Mantraではめんどくさい感じだったですが、Karmaレンダーでaccelを使って簡単にカーブモーションブラーをかけれる様になりました。<br />上の図は、左はvのみを使用したモーションブラー、右はaccelを使ったモーションブラーです。</p><p>以下シーンの解説です。とてもシンプルです。<br /><br />Sphere(球)から適当にパーティクルを出して、Windのノイズで動かしています。<br />popnetやpopsolverでサブフレームは使っていません。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Gvhd9aDiRaKSraj56p_3hfBh988VfEXjd1MWrG6UE5av03XJLUGeTT_TSYP4lE7dhaysQ9DbNmy4x-QBEQSJrhs_1P092M1o0eh68-avJ2LuVDRjdx_7tAedn-U_LP6m28TlS8mBnorE_elJ3tgqGI8pKDRxFB-Mwm_LNKe2RKtrT0USqjCkcwQEFndB/s1822/pop_network.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="955" data-original-width="1822" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Gvhd9aDiRaKSraj56p_3hfBh988VfEXjd1MWrG6UE5av03XJLUGeTT_TSYP4lE7dhaysQ9DbNmy4x-QBEQSJrhs_1P092M1o0eh68-avJ2LuVDRjdx_7tAedn-U_LP6m28TlS8mBnorE_elJ3tgqGI8pKDRxFB-Mwm_LNKe2RKtrT0USqjCkcwQEFndB/w640-h336/pop_network.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7yaCThcKuew3bIqQwJFzxrmgJi1TeevjfH6OXAtS3DIqPHiE8y1G1O9Ox8ohntkM7qpijVtf1v6zau6LM8GnupFn1eNsRKoUEw6_HZtOcvT3NTOabGpUj3_ca4tAR6rbP7-7_9UgCeeBOJm6GGKZvhSp3FRfLUqaksvk3fXfxylcZ3XCrH7Td4DUbZKeg/s705/networkTrail.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="705" data-original-width="298" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7yaCThcKuew3bIqQwJFzxrmgJi1TeevjfH6OXAtS3DIqPHiE8y1G1O9Ox8ohntkM7qpijVtf1v6zau6LM8GnupFn1eNsRKoUEw6_HZtOcvT3NTOabGpUj3_ca4tAR6rbP7-7_9UgCeeBOJm6GGKZvhSp3FRfLUqaksvk3fXfxylcZ3XCrH7Td4DUbZKeg/w271-h640/networkTrail.jpg" width="271" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">パーティクルのSimの後に、Trailでaccel(加速度)アトリビュートを作ります。</div><div class="separator" style="clear: both; text-align: left;"><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKjGgzMISVBotbQY6fo2lyvcc-PSt4VPtX9DkaeDXLdp01d8vUvX7HlaLyXcXs8xUTEPJvBzBCXru9DEWOc3mc1gKXlXhcPfZ2geiVF215pwEwQSd1ai6tl93_ckRTpTUpKq6XoDJcLgJWlhymTEXilLB8lu_RbeBUu_ywloCUUG0r5R3p92E1Fs78REJh/s559/parameterTrail.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="407" data-original-width="559" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKjGgzMISVBotbQY6fo2lyvcc-PSt4VPtX9DkaeDXLdp01d8vUvX7HlaLyXcXs8xUTEPJvBzBCXru9DEWOc3mc1gKXlXhcPfZ2geiVF215pwEwQSd1ai6tl93_ckRTpTUpKq6XoDJcLgJWlhymTEXilLB8lu_RbeBUu_ywloCUUG0r5R3p92E1Fs78REJh/s16000/parameterTrail.jpg" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><b>Velocity Approximation</b>をCentral Differenceに、<b>Compute Accelration</b>にチェック、</div><div class="separator" style="clear: both; text-align: left;"><b>Match by Attribute</b>にチェックを入れ<b>id</b>を指定するのを忘れずに。<br />このチェックでパーティクルが死んだりした場合でも、キチンとidが同じものをみてvやaccelを計算してくれます。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">下準備は以上です。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Solaris(stage / lop)に移動して、Sop Import Lopでこのパーティクルを読み込んで</div><div class="separator" style="clear: both; text-align: left;">レンダリングします。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">カメラは適当に好きな位置に置きました。<br />モーションブラーを長くしたかったので、下図の様にシャッターが開いている時間を長くしてあります。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwc3iilOlMTBAS-Ed-m_2B6uENC_JK8yiAuB0MFR641dA-_uz8N6oTtDGkK_NNOzQtco7bhK9AUuRAzrNB7WuPGUQsbd8oG0cu5xbUi_B_ATvTjaXKrMS93Ys2wx52HTdHc929qY0QTkz52YuCVwd8_xIJwzNJvcNfPW-Fsr_SyHZk3YIJmf4J_MvdFdsM/s882/LopNetworkParamter.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="722" data-original-width="882" height="525" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwc3iilOlMTBAS-Ed-m_2B6uENC_JK8yiAuB0MFR641dA-_uz8N6oTtDGkK_NNOzQtco7bhK9AUuRAzrNB7WuPGUQsbd8oG0cu5xbUi_B_ATvTjaXKrMS93Ys2wx52HTdHc929qY0QTkz52YuCVwd8_xIJwzNJvcNfPW-Fsr_SyHZk3YIJmf4J_MvdFdsM/w640-h525/LopNetworkParamter.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Karma Render Settingで、<b>Geometry Time Sample</b>を2以上に(大きくすればするほど綺麗なカーブ、数が少ないとカクカクしたカーブになります。)、</div><div class="separator" style="clear: both; text-align: left;"><b>Velocity Blur</b>をAccleration blurに指定するだけです。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh02WR3S_T3B43wsNppS8kSZYQ3Wz7Pwx8jYJ6QoLyOpXfc3E-SGLq4xii6Aj20zP9ihPneuzq10Rsl3F6hT0qS7Xr0egmhAfmB8XRi4gj0bnBjeLxsXlSjdV7eWivAz3HVJog9pSvKrgJd48fZxm0mwEthSmAf-YGJOTDN5qxtZidqWgg7b1U-YkGnQ5It/s1039/curveMB_result.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1039" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh02WR3S_T3B43wsNppS8kSZYQ3Wz7Pwx8jYJ6QoLyOpXfc3E-SGLq4xii6Aj20zP9ihPneuzq10Rsl3F6hT0qS7Xr0egmhAfmB8XRi4gj0bnBjeLxsXlSjdV7eWivAz3HVJog9pSvKrgJd48fZxm0mwEthSmAf-YGJOTDN5qxtZidqWgg7b1U-YkGnQ5It/w640-h360/curveMB_result.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">accelを保存しておくだけで、簡単にカーブモーションブラーかけられて便利ですね。<br />欠点としてはレンダーグローバルのサンプルを高くしないとノイズがなかなかとれないです。<br />(カーブモーションブラーに限らず、どんなモーションブラーでもシャッター開放時間を長くするとどんなレンダラーでもノイズは出てしまいます。)</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">火花なんかは、ワークショップで紹介している実態化する方法がサンプルを上げずに済むので良いですね。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">hipファイルは<b><a href="https://drive.google.com/file/d/15locvDdRGaTxPYq4e5MV9U8FoXOY1rT_/view?usp=sharing" target="_blank">こちら</a></b>。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">2023年の<a href="https://qiita.com/advent-calendar/2023/houdini" target="_blank">Houdiniアペレンティスアドベントカレンダー</a>全て埋まりそうな勢いですね。</div><div class="separator" style="clear: both; text-align: left;">indie以上の<a href="https://qiita.com/advent-calendar/2023/houdini" target="_blank">カレンダー</a>は既に満席です。</div><div class="separator" style="clear: both; text-align: left;">毎年素晴らしいです。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><p><br /></p>Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-1357105489747137352023-12-05T08:43:00.006+09:002023-12-13T05:06:38.394+09:00交差してても大丈夫! Curveでパーティクルをコントロール<div style="background-color: white; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;"><span style="color: #444444;">こちらはHoudiniアドベントカレンダー2023↓ 6日目の記事です。<br /></span><a href="https://qiita.com/advent-calendar/2023/houdini" target="_blank">https://qiita.com/advent-calendar/2023/houdini</a></div><div style="background-color: white; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglguBm0hNFPNK7vIusnFeYSkoprn91EH_XqQnFbTGLYSVmUP2sCvtvm5mUeaAekem7J1gBuO5z0RpJ7c6VZyQ0Xp6eJwG_-4EjmsRpYRv7MYBjNDtcIweOkZvd15gCRvbcQk_mtw68gSV21UQLX-f_fMZamgpo7bt21UKNX94I06do6RKdj8GYpKoHL0za/s1348/00.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="525" data-original-width="1348" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglguBm0hNFPNK7vIusnFeYSkoprn91EH_XqQnFbTGLYSVmUP2sCvtvm5mUeaAekem7J1gBuO5z0RpJ7c6VZyQ0Xp6eJwG_-4EjmsRpYRv7MYBjNDtcIweOkZvd15gCRvbcQk_mtw68gSV21UQLX-f_fMZamgpo7bt21UKNX94I06do6RKdj8GYpKoHL0za/w640-h250/00.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: left;">左がデフォルトのCurve Force 、右がこの記事で紹介する方法です。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">デフォルトのCurve Forceも巷にあるチュートリアルのカスタムな方法も、交差したカーブだったり、パーティクルのスピードが速すぎると大体うまくいきません。</div><div class="separator" style="clear: both; text-align: left;"><br /><b><span style="font-size: medium;">なぜなのか?</span></b></div><div class="separator" style="clear: both; text-align: left;">1つ目の理由は、パーティクルの粒それぞれが自分に一番近いカーブを<b>空間ベース</b>で参照しにいくので</div><div class="separator" style="clear: both; text-align: left;">交差した部分にはカーブが複数存在するので、ごちゃっとしてしまいます。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">2つ目は、下の図の様に急カーブな位置でパーティクルが速すぎると次のフレームでカーブから遠い位置に移動してしまい、<br />カーブに近い位置に戻ってこれなくなったり、戻れたとしてもカーブに沿った形状を保てなくなります。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEsBaLGxilWx-qc3dnH3Yko9nL79T0VEiYV8Z4HV_9SWBLtbkKzP9k_yREzLEzlWI4gldd0_HC0r8T3jmLHku730dtydILmiF5EEKTDFQEThhsVSnpp721YcOhBeeAJ7YUNR-og_irRlDwxSzEBUYQ3nwDpNTrIWXIzmvAnJ38DPGr3NRxIYiapxKZ9tiF/s843/01.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="528" data-original-width="843" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEsBaLGxilWx-qc3dnH3Yko9nL79T0VEiYV8Z4HV_9SWBLtbkKzP9k_yREzLEzlWI4gldd0_HC0r8T3jmLHku730dtydILmiF5EEKTDFQEThhsVSnpp721YcOhBeeAJ7YUNR-og_irRlDwxSzEBUYQ3nwDpNTrIWXIzmvAnJ38DPGr3NRxIYiapxKZ9tiF/w640-h400/01.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">2つ目の理由はサブステップ数を上げれば解決する場合もありますが、交差しているカーブの場合は空間ベースでカーブを参照している以上解決できません。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">上記の2つの問題を解決する方法は、<b>@ageの値を使ってカーブ参照する</b>というやり方です。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">まずは、適当に交差する様描いたCurveをResample Sopで細かくします。(こんなに細かくしなくても大丈夫。結果を見ながらお好みで)</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZEvDvw5RYjM0g8grj25WOQP19jgpB8nbJju6_BMD6E6EFnPs2GuO9aNlo_WL4AHRZCfkyV1Rm3tuhWeMilwEXRP3o5b0AUQF7MKppDeFNHBOdPQN5VO3FP7huybhRTcbTlCs3xvIRyzWhw18LpDkk7c-nWzz-ubAmys7UHK02E_8PEcVzI2D1xXHaK5eA/s1446/002.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="774" data-original-width="1446" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZEvDvw5RYjM0g8grj25WOQP19jgpB8nbJju6_BMD6E6EFnPs2GuO9aNlo_WL4AHRZCfkyV1Rm3tuhWeMilwEXRP3o5b0AUQF7MKppDeFNHBOdPQN5VO3FP7huybhRTcbTlCs3xvIRyzWhw18LpDkk7c-nWzz-ubAmys7UHK02E_8PEcVzI2D1xXHaK5eA/w640-h342/002.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">(クリック拡大)</td></tr></tbody></table><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">カーブをpopnetの2番目に指しておきます。(1番目はスタート付近に置いたエミッターです。)</div><div class="separator" style="clear: both; text-align: left;"><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVqo5Y9-Dgo-pZhx_dYIMA5ncAfkb_YbBOwch1vWQWO0W9WZ4bT7lbPpZfh79ZW6TNZVmbByYve63-2ed67A0PoGQqsNdOMIjqSEWScbFi1KetFsP-tPo56pdrw8MLZBqaHT8wW9sS5KH2dfiY_p3Hn3QYH4A4ec63gsn0tobCS_XrIK4iy91klUJdnLeN/s541/025_popnet.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="465" data-original-width="541" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVqo5Y9-Dgo-pZhx_dYIMA5ncAfkb_YbBOwch1vWQWO0W9WZ4bT7lbPpZfh79ZW6TNZVmbByYve63-2ed67A0PoGQqsNdOMIjqSEWScbFi1KetFsP-tPo56pdrw8MLZBqaHT8wW9sS5KH2dfiY_p3Hn3QYH4A4ec63gsn0tobCS_XrIK4iy91klUJdnLeN/s320/025_popnet.jpg" width="320" /></a></div></div><div><br /></div>popnet_customの中<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_qRMMeOIqoxH-61NzzHpufnd3-EXq-WZ64WWc8m_f8rVZy7sbtIhHPwpPRzROuVPy6qlNt7u4rpmcV9hAxREf4DRUT2Z__ZWQBZP1LEFR89Ul17ZOA3sXsWFZRdDDwPW8NGU0sqeoH687G9DKdVtmwGxVJePKGtOJG4ar_7w2arrFXOoLt-4xoBErPeG_/s553/003_pop_network.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="553" data-original-width="541" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_qRMMeOIqoxH-61NzzHpufnd3-EXq-WZ64WWc8m_f8rVZy7sbtIhHPwpPRzROuVPy6qlNt7u4rpmcV9hAxREf4DRUT2Z__ZWQBZP1LEFR89Ul17ZOA3sXsWFZRdDDwPW8NGU0sqeoH687G9DKdVtmwGxVJePKGtOJG4ar_7w2arrFXOoLt-4xoBErPeG_/s320/003_pop_network.jpg" width="313" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">follow (POP Wrangle)<br /><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr_Pi21EhhcnCrmiGp5WPofKv6Lf28wpq3DIvCLEF6Cl6YzZphbf1JD-fW8tbkNFNBpFqoE3REgZAnbQx-WD0PDHbmI83x0KwL2agRAZsqRdAtkvdLWSPz_AgJWyCKOAkKCwJYYN7UANXXjFTsVrixIsgXT-AzSHjaVvcFduAT6KDhjdaFHcbpvt4NS5KR/s924/040_follow_PopWrangle.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="302" data-original-width="924" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr_Pi21EhhcnCrmiGp5WPofKv6Lf28wpq3DIvCLEF6Cl6YzZphbf1JD-fW8tbkNFNBpFqoE3REgZAnbQx-WD0PDHbmI83x0KwL2agRAZsqRdAtkvdLWSPz_AgJWyCKOAkKCwJYYN7UANXXjFTsVrixIsgXT-AzSHjaVvcFduAT6KDhjdaFHcbpvt4NS5KR/w640-h210/040_follow_PopWrangle.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">/////////////////////////////////////////////////////</div><div><b>float ageF = @age / @TimeInc;</b> </div><div>//@ageは単位が秒なのでフレームにします。</div><div><br /></div><div><b>vector P0 = point(1,'P',ageF); </b></div><div><b>vector P1 = point(1,'P',ageF+1);</b></div><div><b>vector moveDir = P1 - P0;</b></div><div>//ageFが0の時は、カーブの最初のポイントと次のポイントの位置を使い、動く分のベクトルを作ります。</div><div><br /></div><div><b>@P += moveDir;</b><br />//その値をパーティクルのポジションに追加するだけです。</div><div><br /></div><div><b>i@ageF = ageF; //</b>次のPop Killで使用、パーティクルがカーブの最後のポイントを参照したら消けすようにしています。</div><div>/////////////////////////////////////////////////////</div><div><br /></div><div>通常のCurveForceはv@forceだったり、v@vをいじりますが、</div><div>それだとどうしても破綻が起きるので、パーティクルのポジション@Pを直接いじる結構強引なやり方です。</div><div><br /></div><div>動きにノイズを加えたり、カーブを中心に回転させたりも@PをVex(POP wragle)で変更を行</div><div>う事で複雑な動きを作る事も可能です。</div><div><br /></div><div>以上です。</div><div><br /></div><div><br /></div><div>hipファイルは<a href="https://drive.google.com/file/d/17PPYefuej_ICeQL2BNlXS45WBPA8vVJL/view?usp=sharing" target="_blank"><b>こちら</b></a>。</div><div><br /></div><div><br /></div><div><br /></div><div><div style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;">Houdiniアドベントカレンダー2023全て埋まってるみたいで、素晴らしいですね。<br />Apprenticeの方のカレンダーがまだ空いているみたいなので、別の記事を書いてみようかと思います。</div><div style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;"><br /></div><div style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;">Houdiniアドベントカレンダー2016年から始まりもう8年目ですね。<br />Houdiniのテクニックは過去のものも古くならず有効なものが多いです。<br />是非こちらから過去のものやチェックしてみてください。</div><div style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"><span style="font-size: 13px;"> </span><br /><a href="https://qiita.com/advent-calendar/2022/houdini" style="color: #44cdff; text-decoration-line: none;" target="_blank">https://qiita.com/advent-calendar/2023/houdini</a></div></div><div style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;"><br /></div><div style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;"><br /></div><p></p>Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-79462519360391225352023-03-04T05:03:00.004+09:002023-12-13T05:20:03.278+09:00Houdiniワークショップ第7弾<div class="separator" style="clear: both; text-align: left;">Houdiniワークショップ第7弾のページオープンしました。</div><div class="separator" style="clear: both; text-align: left;"><a href="https://sugi-iggy.blogspot.com/p/workshop7.html">https://sugi-iggy.blogspot.com/p/workshop7.html</a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">2023年3月25日から開催です。よろしくお願いいたします!!</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirrnEVbsqYhKisX_H82tcrSzL7Rt-W4kZbH4CrBNCnwduSfB1jTTxlDp3MeEt_aQXmbP8CxPNgK7Re_xhlwPyBef8T8NcezTDeozOoYj3PGtA9Fo0MD9akrGsqvfNGzSab-78cy7BYUqVTrpM1tfzI0xOVwfLuoIDZxYuKZByKIT-uDBQuNi-4jNIC9Y-4/s2560/all.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1440" data-original-width="2560" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirrnEVbsqYhKisX_H82tcrSzL7Rt-W4kZbH4CrBNCnwduSfB1jTTxlDp3MeEt_aQXmbP8CxPNgK7Re_xhlwPyBef8T8NcezTDeozOoYj3PGtA9Fo0MD9akrGsqvfNGzSab-78cy7BYUqVTrpM1tfzI0xOVwfLuoIDZxYuKZByKIT-uDBQuNi-4jNIC9Y-4/w640-h360/all.jpg" width="640" /></a></div><p><br /></p>Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-62951616766178535162022-12-05T08:41:00.006+09:002022-12-06T05:06:35.325+09:00ダイナミックオプティマイズサブディビジョン(長っ)<p></p><div style="text-align: left;">こちらはHoudiniアドベントカレンダー2022↓ 6日目の記事です。</div><a href="https://qiita.com/advent-calendar/2022/houdini" target="_blank">https://qiita.com/advent-calendar/2022/houdini</a><p></p><p>別ジオメトリからの距離に応じてサブディビジョンの細かさをコントロールする仕組みです。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGIt16mEl41q_BF987YLZ0avz2xmXRPEUR4Oavn00ZWeWsetNHZ5pv3nG9E2xfthOS8KaA3v1C6G26JIuCF_DBqjXg3kEn18UqLS8p__SY2zA7PB304FnnKGNkDEkab74omNRbxuq-RRI3WFrrnvajGjT_Sjv70I3bD_VQc4JgVchbtHPuW9LseGAl1g/s921/final_image.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="399" data-original-width="921" height="277" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGIt16mEl41q_BF987YLZ0avz2xmXRPEUR4Oavn00ZWeWsetNHZ5pv3nG9E2xfthOS8KaA3v1C6G26JIuCF_DBqjXg3kEn18UqLS8p__SY2zA7PB304FnnKGNkDEkab74omNRbxuq-RRI3WFrrnvajGjT_Sjv70I3bD_VQc4JgVchbtHPuW9LseGAl1g/w640-h277/final_image.jpg" width="640" /></a></div><br />以前ツイートしたこちらの解説です。<br />
<blockquote class="twitter-tweet"><p dir="ltr" lang="ja">ダイナミックオプティマイズサブディビジョン(長っ)<br />地味だけど、こうゆう仕込みが大事だったりする。他のデパートメントにも易しいデータ。 <a href="https://t.co/7R16N1TpBY">pic.twitter.com/7R16N1TpBY</a></p>— 杉村 (@sugiggy) <a href="https://twitter.com/sugiggy/status/1585852863242063872?ref_src=twsrc%5Etfw">October 28, 2022</a></blockquote>
<p> この例では、ラインに近いグリッドのプリミティブが細かくなる様になっています。<br /><br />どんな時に使うかと言うと、エフェクトではアセットチームから来たモデル破壊などする時に<br />破壊する部分にディティールを持たせたいのでメッシュを細かくします。たまにモデル全体を細くしてしまう例も見かけますが、データが重くなり、自分の作業も遅くなり、破壊したモデルをパブリッシュするので、後工程にデパートメントへの影響や(ライティングは勿論のこと、最近はコンパーもジオメトリを読み込んだりしているので)、トラフィックなどデータの大きさは、行程全てに影響があるので成るべくオプティマイズした下準備がお勧めです。</p><p><br /></p><p>ネットワークは非常にシンプルで、大まかに説明すると<br />グリッドのプリミティブにラインからの距離に応じたアトリビュートを持たせ、<br />その値でSubdivideの回数を設定するというものです。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8bS-BPmhYLrIgWNvMdbe3ZNuRA0pnmWUs3A8cXpkpdp_JAvmj6oJVFJtxpZaDnIh8oU1Xd6r5mzn8_4sJ0i7iA716DEGs2qBIwSbA6Nojajgl5wJOqvAbr8ijiC1YJP1aP0z2Yq2U-SD1SWr77P7brSH3d9RA3dIt6sOc1Ja9INU44P4G45fj06Vg_g/s695/network.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="695" data-original-width="547" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8bS-BPmhYLrIgWNvMdbe3ZNuRA0pnmWUs3A8cXpkpdp_JAvmj6oJVFJtxpZaDnIh8oU1Xd6r5mzn8_4sJ0i7iA716DEGs2qBIwSbA6Nojajgl5wJOqvAbr8ijiC1YJP1aP0z2Yq2U-SD1SWr77P7brSH3d9RA3dIt6sOc1Ja9INU44P4G45fj06Vg_g/w504-h640/network.jpg" width="504" /></a></div><br /><p>最近HoudiniにDistance From Geometry というSopが着きましたが、少し遅いのと<br />後に値を0 - 1にノーマライズする際に最大値を決めるのが面倒なので使いません。<br /><br />グリッド側のポイントにカラー0(黒)、ライン側のポイントに1(白を)もたせAttribute TransferでBand Widthを利用する事で、0 - 1 にマッピングする手間を省きつつ距離に応じて<br />グラデーションが作成されます。<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjegTSauNxvKQcuhY5NRXn4VhkoFRXusawPN5_sYYWat19oQQfwWXeN-rQOSRUAFbq1rq0962rVufspExFaBwm8T6WUyzQJP8-cN0f2fLJS7oivJ2KI0v531NspPqzXOviLJZQ97flECIN2IOIup5Xa5XqsLFc-fSxV1bjudWqkxqirmqIF_5sCWFHXAw/s922/attrTransfer.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="748" data-original-width="922" height="520" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjegTSauNxvKQcuhY5NRXn4VhkoFRXusawPN5_sYYWat19oQQfwWXeN-rQOSRUAFbq1rq0962rVufspExFaBwm8T6WUyzQJP8-cN0f2fLJS7oivJ2KI0v531NspPqzXOviLJZQ97flECIN2IOIup5Xa5XqsLFc-fSxV1bjudWqkxqirmqIF_5sCWFHXAw/w640-h520/attrTransfer.jpg" width="640" /></a></div><br /><p>このpointアトリビュートを値をAttribute Promoteでprimitiveに移します。<br />(最初からprimitiveにカラーを持たせてAttribute Transferしないのは、グリッドのプリミティブが大きい場合、primitiveの中心とラインとの距離が大きく上手くグラデーションが作成されない事がある為。)</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikgVJ9ORjDR9VtoqoQ2Qu_1jtm2cziGHyGeRWY75fnXp-nOGES3oZmLfWtzsooxJHavyzk084w5-QWfBJ3eyVXnWR06A-LFVuC_DwHvc6KQVpbHaSPWSC48tKtQ44VAgIhNxUcJcrjgPPvW5nBy9O7F1Jldz_rM3T_7HN-nimIyRZ6MQPi93mr7LzVog/s868/attrPromote.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="676" data-original-width="868" height="498" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikgVJ9ORjDR9VtoqoQ2Qu_1jtm2cziGHyGeRWY75fnXp-nOGES3oZmLfWtzsooxJHavyzk084w5-QWfBJ3eyVXnWR06A-LFVuC_DwHvc6KQVpbHaSPWSC48tKtQ44VAgIhNxUcJcrjgPPvW5nBy9O7F1Jldz_rM3T_7HN-nimIyRZ6MQPi93mr7LzVog/w640-h498/attrPromote.jpg" width="640" /></a></div><p>この各プリミティブが持っているカラー(Cd)の値を、subdivという整数値にリマップ(fit) させて(この例では白い所は4、黒い所は0)subdivide sopのdepthに利用します。</p> <script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEjj2LvDmadr1Zh_E9_xznDCzgDJhR6IBd9uHev1SgPosupXmvzygYnwM6A9Y3OX-SZydnGVXA35fN8Bbe43W0Nvk1T2g8ClxhGudGCI-cIEVnqsnuA1Um5VBumpDjKxQqAhJQl1dpliBIMJBHIz4RtyophSSuJxfeikKUYiKtUVOYTBJkyBWrRFNlvw/s723/fit.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="686" data-original-width="723" height="608" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEjj2LvDmadr1Zh_E9_xznDCzgDJhR6IBd9uHev1SgPosupXmvzygYnwM6A9Y3OX-SZydnGVXA35fN8Bbe43W0Nvk1T2g8ClxhGudGCI-cIEVnqsnuA1Um5VBumpDjKxQqAhJQl1dpliBIMJBHIz4RtyophSSuJxfeikKUYiKtUVOYTBJkyBWrRFNlvw/w640-h608/fit.jpg" width="640" /></a></div><br /><div><br /></div><div><br /></div><div>Subdivide Sopのdepthパラメーター(サブディバイド回数)が、この新たに作った@subdivアトリビュートを参照出来れば楽なのですが、多くのHoudiniのパラメーターはh-expressionで変数(この場合は自分自身のプリミティブ番号)を使用しつつ、値を取る事が出来ないので<br />forloopを@subdivの値が同じプリミティブのくくりで回してあげる事で、変数を仕様せずに</div><div>prim h-expressionでプリミティブ番号0番の@subdivの値をとってきて、depthの値に使用できます。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA4JFdO-0ZI3uiSyVbRnESwig98pwA4CWUnqPqgvFhAaJIWqlfGEPo_9EdUN5bk0HxdFvV68aYZVspwD0xj33B36lt8nWeCQIwcktu7SzXqfpIlkiVJ7O227u47Q2AlODd5EOgr9URtUpqAdvYWEM4y-QXF-65hJqSrukNtoCAhbYKyG9ElSyRmQifFw/s804/foreach.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="638" data-original-width="804" height="508" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA4JFdO-0ZI3uiSyVbRnESwig98pwA4CWUnqPqgvFhAaJIWqlfGEPo_9EdUN5bk0HxdFvV68aYZVspwD0xj33B36lt8nWeCQIwcktu7SzXqfpIlkiVJ7O227u47Q2AlODd5EOgr9URtUpqAdvYWEM4y-QXF-65hJqSrukNtoCAhbYKyG9ElSyRmQifFw/w640-h508/foreach.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguLn12lmQZy1wChMt9IsaTHvrPCU4x-H4D23gcHX3z1VudO3BafZlfmVb71C0qrFm080-Irts_vkSyzB5omo0GNnRPc1kiTKT97tkEha6we-t1UkOnsO1c42_LnrPIPz8TBC2tVIupHVIGKyFfXZI6v1YBliIQ7MfcgpeAjFnG2MXEBrPRqGyNNDWkRA/s871/end.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="366" data-original-width="871" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguLn12lmQZy1wChMt9IsaTHvrPCU4x-H4D23gcHX3z1VudO3BafZlfmVb71C0qrFm080-Irts_vkSyzB5omo0GNnRPc1kiTKT97tkEha6we-t1UkOnsO1c42_LnrPIPz8TBC2tVIupHVIGKyFfXZI6v1YBliIQ7MfcgpeAjFnG2MXEBrPRqGyNNDWkRA/w640-h268/end.jpg" width="640" /></a></div><br /><div><br /></div><div>以上です。</div><div>hipファイルは<a href="https://drive.google.com/file/d/1J-G1ETQdecPxNKXzCWIN-CdciT_Huls2/view?usp=share_link" target="_blank">こちら</a>。<br /><br />毎年小ネタで恐縮です、アドベントカレンダーに空きがあったら、もう一つ小ネタ記事を書こうかと思いますのでご了承下さい(^^;)</div><div><br />Houdiniアドベントカレンダー2016年から始まりもう7年目ですね。<br />Houdiniのテクニックは過去のものも古くならず有効なものが多いです。<br /> 是非こちらから過去のものやチェックしてみてください。 <br /><a href="https://qiita.com/advent-calendar/2022/houdini" target="_blank">https://qiita.com/advent-calendar/2022/houdini</a></div><div><br /></div><div><br /></div><div><br /></div>Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-81027015106700839672022-08-30T04:48:00.006+09:002022-12-05T08:42:04.108+09:00Houdiniアドバイザー<p>ありがたい事に 日本のとある会社さんとHoudiniアドバイザーの契約を結びました。<br />期間契約でセットアップを提供したり、Houdiniの質問への回答だったり、パイプラインの構築のアドバイスをするというもの。</p><p>基本的にサブスクリプション方式で毎月固定の金額ではあるが、何も相談事が無い月があれば支払いは発生しないという形。<br />何も手助け出来ていない月に金額が発生するのも気まずいですので、これは双方にメリットがありそうで良い形態だなと思います。</p><p>日本でもHoudiniがもっと広く使われるよう手助けができて嬉しいです。</p><p><br /></p><p>話は変わりますが、Houdiniワークショップ6の録画視聴期限を9月末まで延長いたしました。<br />あと1ヵ月ご活用いただけたらと思います。</p><p><br /></p><p><br /></p>Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-35756177519701826382022-04-14T10:49:00.001+09:002022-04-14T10:49:06.428+09:00参加作品<p></p><div class="separator" style="clear: both; text-align: left;">これまでに参加した作品をまとめてみました。</div><div class="separator" style="clear: both; text-align: left;">たまにこうやって振り返るといいですね。定期的にやっていこうかと思います。</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyF1KXr6RUrnVX88CcroKbXa1OgwyymMqQzDFYiIKIdBUonNdg7lfY-k0RmdYG1tfjcJXiUHuo7QXaqEuoluFG3MAG4L2OVf5CjRkc4HXR1OnOSeGjPDPX53ZlL1hZbfYarUjnLWOtelOJIZFz8-u746TvQjBuoGWP-C9nD03ebKcCKTqYimvZQRT74A/s3560/@movie_posters4.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3560" data-original-width="2400" height="1335" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyF1KXr6RUrnVX88CcroKbXa1OgwyymMqQzDFYiIKIdBUonNdg7lfY-k0RmdYG1tfjcJXiUHuo7QXaqEuoluFG3MAG4L2OVf5CjRkc4HXR1OnOSeGjPDPX53ZlL1hZbfYarUjnLWOtelOJIZFz8-u746TvQjBuoGWP-C9nD03ebKcCKTqYimvZQRT74A/s3560/@movie_posters4.jpg" width="900" /></a></div><br /> <p></p>Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-50365238739763497042022-03-11T05:58:00.008+09:002022-12-05T08:42:16.529+09:00Houdiniワークショップ第六弾<p>まだ絶賛準備中ですが、 Houdiniワークショップ第六弾のページをオープンしました。<br /></p><p>4月9日から開催です。よろしくお願いいたします。</p><p><a href="https://sugi-iggy.blogspot.com/p/workshop6.html">https://sugi-iggy.blogspot.com/p/workshop6.html</a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgBMQw6gbtDTZ9YnNJfwnv4HH9Laq-5RFgHWnDzp0QpEi1xnp0yF4L4hbyGnjdlX4qYeCrSoOwIbYZ8AF1HOhoUHwD4V45q4EXl_7CxTEtrDbgEt1h16P-SuBISlrgmpp5oeJBSxUVheSa9VPY4wuom16HCR9pbMipgOj5uXEHzZC1syu4xHIrYidcXjg=s2560" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1440" data-original-width="2560" height="360" src="https://blogger.googleusercontent.com/img/a/AVvXsEgBMQw6gbtDTZ9YnNJfwnv4HH9Laq-5RFgHWnDzp0QpEi1xnp0yF4L4hbyGnjdlX4qYeCrSoOwIbYZ8AF1HOhoUHwD4V45q4EXl_7CxTEtrDbgEt1h16P-SuBISlrgmpp5oeJBSxUVheSa9VPY4wuom16HCR9pbMipgOj5uXEHzZC1syu4xHIrYidcXjg=w640-h360" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><p><br /></p><p><br /></p>Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-29505423199509227112021-12-20T08:29:00.011+09:002022-04-20T04:26:05.618+09:00オブジェクトをブレンドする <p>この記事は<a href="https://qiita.com/advent-calendar/2021/houdini" target="_blank">Houdini アドベントカレンダー</a> 20日目の記事です。 </p><p>ぶっさしのオブジェクトをブレンドした感じに見せる2つのテクニックの紹介です。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhGOAJ-EXyoH7pmifEJjdo5BqVLSXYegOTVes2VVFRwqDkWUSyiKsjF301MOgPbXtNH0saOvm2_0O6vBbbxBvqHs5iLp65KN1KWwuSodlOX8IGeHUM-yrGrtK1H7_-Z6vNam1w4QP2j-NTCOdtTO4DL89b5_0F1aHYMSCOAtQ8Bzf0Z_38grbeVmq_lxQ=s716" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="524" data-original-width="716" height="468" src="https://blogger.googleusercontent.com/img/a/AVvXsEhGOAJ-EXyoH7pmifEJjdo5BqVLSXYegOTVes2VVFRwqDkWUSyiKsjF301MOgPbXtNH0saOvm2_0O6vBbbxBvqHs5iLp65KN1KWwuSodlOX8IGeHUM-yrGrtK1H7_-Z6vNam1w4QP2j-NTCOdtTO4DL89b5_0F1aHYMSCOAtQ8Bzf0Z_38grbeVmq_lxQ=w640-h468" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><span></span><div class="separator" style="clear: both; text-align: left;">---------------------------------------------------------------------------------------------------------------------------</div><div class="separator" style="clear: both; text-align: left;"><p>初級編と中級編2つ紹介します。</p><p>まずは初級編すごくシンプルです。<span style="font-size: x-small;">(初級編は当初空きがあったら<a href="https://qiita.com/advent-calendar/2021/happrentice" target="_blank">Apprenticeのカレンダー</a>があったらそちらに書こうかと思っていたんですが、全てスケジュール埋まってますね。素晴らしいです。)<br /></span>円柱側(右側)へSphereの法線(N)をattribute transfer で移すのみ!Band widthパラメータで、元の法線は残しつつ境界のみにグラデーションで移せます。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg6UFWqlmYOdCpE8kncRaiRRTMSquM8qDLK13hpZcw3w0AT_swY_7dcTLztVIANyBOmGWGYeeLqm_3f7__vp8vF4TniaelhuoweGoXd9NXZNiAgpBBJLjuIfbWoZS8tCPTA4VezTKUJjk_Y5Bs-bAoiZWljRsMCe4Ehnr7LCthBvYmMxrHJnj34LYnvxQ=s723" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="593" data-original-width="723" height="524" src="https://blogger.googleusercontent.com/img/a/AVvXsEg6UFWqlmYOdCpE8kncRaiRRTMSquM8qDLK13hpZcw3w0AT_swY_7dcTLztVIANyBOmGWGYeeLqm_3f7__vp8vF4TniaelhuoweGoXd9NXZNiAgpBBJLjuIfbWoZS8tCPTA4VezTKUJjk_Y5Bs-bAoiZWljRsMCe4Ehnr7LCthBvYmMxrHJnj34LYnvxQ=w640-h524" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgxkRfVrBKNvtSNFNnnpClb0Sc1yJ6BTATtBh2oKmixXPxk2WvGGkIoLXQ9n15EcY1DmF8m0ULKAHFBBBun3M-lALDyVM97TqvnmlJp0v0puGgk7CV34ZuszlP-UiyAqMla1ECtbyZBgwmMzHs7vZIYNYOtqLZAKt_eQbFVkjUYkCia0_j1t7yQSdeUdg=s857" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="476" data-original-width="857" height="356" src="https://blogger.googleusercontent.com/img/a/AVvXsEgxkRfVrBKNvtSNFNnnpClb0Sc1yJ6BTATtBh2oKmixXPxk2WvGGkIoLXQ9n15EcY1DmF8m0ULKAHFBBBun3M-lALDyVM97TqvnmlJp0v0puGgk7CV34ZuszlP-UiyAqMla1ECtbyZBgwmMzHs7vZIYNYOtqLZAKt_eQbFVkjUYkCia0_j1t7yQSdeUdg=w640-h356" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">簡単な方法ですが難点としては、ある程度メッシュが細かくないと綺麗にいきせん。<br />後半の中級編はこの問題は起きません。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiUsPelVSYujL6HT3cWNgPVeN0d7NwsyKCXKgGHB5tnUkTuazSSipcBXT3NfJ310ADTgYQOd-etDoyiBBC9Pujq84VXtj7x8es9r5P38wqtcgd1JUGN_16Mztmt1TMH67tJdHOS8UQnMqOBxO87ymt7MGaagl_f4SCPDDZxhhJIjNIglf84Sr7iirAm2Q=s857" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="476" data-original-width="857" height="357" src="https://blogger.googleusercontent.com/img/a/AVvXsEiUsPelVSYujL6HT3cWNgPVeN0d7NwsyKCXKgGHB5tnUkTuazSSipcBXT3NfJ310ADTgYQOd-etDoyiBBC9Pujq84VXtj7x8es9r5P38wqtcgd1JUGN_16Mztmt1TMH67tJdHOS8UQnMqOBxO87ymt7MGaagl_f4SCPDDZxhhJIjNIglf84Sr7iirAm2Q=w640-h357" width="640" /></a></div><br /><span></span><div class="separator" style="clear: both; text-align: left;">---------------------------------------------------------------------------------------------------------------------------</div><div class="separator" style="clear: both; text-align: left;"><br /></div>次に中級編です。</div><div class="separator" style="clear: both; text-align: left;"><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhGOAJ-EXyoH7pmifEJjdo5BqVLSXYegOTVes2VVFRwqDkWUSyiKsjF301MOgPbXtNH0saOvm2_0O6vBbbxBvqHs5iLp65KN1KWwuSodlOX8IGeHUM-yrGrtK1H7_-Z6vNam1w4QP2j-NTCOdtTO4DL89b5_0F1aHYMSCOAtQ8Bzf0Z_38grbeVmq_lxQ=s716" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="524" data-original-width="716" height="468" src="https://blogger.googleusercontent.com/img/a/AVvXsEhGOAJ-EXyoH7pmifEJjdo5BqVLSXYegOTVes2VVFRwqDkWUSyiKsjF301MOgPbXtNH0saOvm2_0O6vBbbxBvqHs5iLp65KN1KWwuSodlOX8IGeHUM-yrGrtK1H7_-Z6vNam1w4QP2j-NTCOdtTO4DL89b5_0F1aHYMSCOAtQ8Bzf0Z_38grbeVmq_lxQ=w640-h468" width="640" /></a></div>こちらは境界に補助ジオメトリをプロシージャルに作成する方法です。その際補助ジオメトリに法線をそれぞれの法線Nを持たすことで綺麗にブレンドして見えます。<br /><br /><br /></div><div class="separator" style="clear: both; text-align: left;">まずは全体のネットワーク。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgjdhsgzUgrtVjJi6bOYK53du8SmUsvdIp1r0IonArOUbEr6naJmnzd2bmjUo7Bpez5Wv_XA8TPg4HA8Gyy3ZLN7H2TeuX70tA8AuNumSXy1BqgOTL_ajSy6TzMadMFkquTK7s5o19MvX6gJj3UHBj25nom5W1_mKjsRgeJRa5FYFFwyc_t7WipgaAORQ=s747" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="747" data-original-width="564" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEgjdhsgzUgrtVjJi6bOYK53du8SmUsvdIp1r0IonArOUbEr6naJmnzd2bmjUo7Bpez5Wv_XA8TPg4HA8Gyy3ZLN7H2TeuX70tA8AuNumSXy1BqgOTL_ajSy6TzMadMFkquTK7s5o19MvX6gJj3UHBj25nom5W1_mKjsRgeJRa5FYFFwyc_t7WipgaAORQ=w484-h640" width="484" /></a></div><div><br /></div>メッシュは細かくなくとも大丈夫です。<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEghdyzlOfWiA00gw0Wfo32XhHNOjxwUsf3pz9Xz3zEdaxnJcoRclYEbxNfE0y7Z2b7QO6128j6AxtuW8qxWGwHVAorE4yqr3L1MYtTeOoThTxMvnKX6mM1NXvCHwG0XmB_rIOJCsYJ8aOLIxDqS92tts3fGL3Fe2Ue_vUkTwM9aV9nqhoSOWik6GuC5FA=s688" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="531" data-original-width="688" height="309" src="https://blogger.googleusercontent.com/img/a/AVvXsEghdyzlOfWiA00gw0Wfo32XhHNOjxwUsf3pz9Xz3zEdaxnJcoRclYEbxNfE0y7Z2b7QO6128j6AxtuW8qxWGwHVAorE4yqr3L1MYtTeOoThTxMvnKX6mM1NXvCHwG0XmB_rIOJCsYJ8aOLIxDqS92tts3fGL3Fe2Ue_vUkTwM9aV9nqhoSOWik6GuC5FA=w400-h309" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">重なった部分のメッシュをBooleanで取り出し、Divide SopのRemove Shared Edgeを使い外周のみのジオメトリにします。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgSnmobj0iha2iP4Ro8-LijFgR3E0wueeR9B9CpkqKO0oZc2PYoYhL9F-1NUXI5JyyuhsVEk2B4nUdSkVKERPJyOvvt_KY08ZE6ZxIt0NaeOmSdxXrWUGPaPowiVp0V2NYKS1AbcHr1QA-UryPNNGxEVH_7-pPc8d0xsaDrNIHBfSoYatYSq3oF1qse8Q=s688" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="531" data-original-width="688" height="309" src="https://blogger.googleusercontent.com/img/a/AVvXsEgSnmobj0iha2iP4Ro8-LijFgR3E0wueeR9B9CpkqKO0oZc2PYoYhL9F-1NUXI5JyyuhsVEk2B4nUdSkVKERPJyOvvt_KY08ZE6ZxIt0NaeOmSdxXrWUGPaPowiVp0V2NYKS1AbcHr1QA-UryPNNGxEVH_7-pPc8d0xsaDrNIHBfSoYatYSq3oF1qse8Q=w400-h309" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">その取り出したメッシュにそれぞれ(球と円柱)から法線Nを移します。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiTXyT6frREeIhZTWJ-M18IjH2BrNTBi0cuO-MDY5ojACYkWY0tZi9u89vzfrAaOwHn5cCoIO2QFlHyaYXJyOV3uiUtXT9euwZk0Qzv0SYArWdl-8c6VxGdNKAS_kV3bhy88oS65bDo7J-qz2-LX9tqlquwwsUgMixnAdRdyng06ic9MaMpxSbO_ZM_4g=s836" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="748" data-original-width="836" height="572" src="https://blogger.googleusercontent.com/img/a/AVvXsEiTXyT6frREeIhZTWJ-M18IjH2BrNTBi0cuO-MDY5ojACYkWY0tZi9u89vzfrAaOwHn5cCoIO2QFlHyaYXJyOV3uiUtXT9euwZk0Qzv0SYArWdl-8c6VxGdNKAS_kV3bhy88oS65bDo7J-qz2-LX9tqlquwwsUgMixnAdRdyng06ic9MaMpxSbO_ZM_4g=w640-h572" width="640" /></a></div><div><br /></div>その2つの法線Nをブレンドするのですが、内積をとって位置の調整をします。<br />この法線Nがこの後のSweep Sopで沿わすLineの傾きになります。<div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhoy1R4dZmS2QTqepolJXcQHaRm2gX4lLOrbB49G21YWjUehl_NYnOOYUepM6rLOffmoMbRmFImxyDOcXFCmY9NKl_i4yrkbkbVGVddez55q1exikGASqY8ce2dJa3Uj7LNiWv4-f-Dy5DCFBu_lsV0mHEbOGAjrNdiHelFHm-ZQhayxXNTQ8m51apwWw=s789" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="740" data-original-width="789" height="600" src="https://blogger.googleusercontent.com/img/a/AVvXsEhoy1R4dZmS2QTqepolJXcQHaRm2gX4lLOrbB49G21YWjUehl_NYnOOYUepM6rLOffmoMbRmFImxyDOcXFCmY9NKl_i4yrkbkbVGVddez55q1exikGASqY8ce2dJa3Uj7LNiWv4-f-Dy5DCFBu_lsV0mHEbOGAjrNdiHelFHm-ZQhayxXNTQ8m51apwWw=w640-h600" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">以下はSweepの結果。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhokK3ezV5d9_SPC2daJ665tPCVYC3Bhxqj_FFqyclRsESlE2D1w0y4EmiJXH-Y2X4X82qM37CNCtkmx6dt1mescznTyJTipSsotZwJkpp4u-L7qyIwpiA8AMkv0KIkKl2Ye71ovapOsrMajp0dKVj1xxD-u92w2ZOOXLRgUr7OguwsIn2RLE7WTarB2Q=s985" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="337" data-original-width="985" height="218" src="https://blogger.googleusercontent.com/img/a/AVvXsEhokK3ezV5d9_SPC2daJ665tPCVYC3Bhxqj_FFqyclRsESlE2D1w0y4EmiJXH-Y2X4X82qM37CNCtkmx6dt1mescznTyJTipSsotZwJkpp4u-L7qyIwpiA8AMkv0KIkKl2Ye71ovapOsrMajp0dKVj1xxD-u92w2ZOOXLRgUr7OguwsIn2RLE7WTarB2Q=w640-h218" width="640" /></a></div>この作例では球に対して円柱が垂直に立っていてどの境界も同じ角度ですが、<br />以下のような重なり具合が違う場合、内積の値を位置の調整に使う有用性が分かり易いです。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEju1ZR7Uywx-FpLdE7blQOrhBKkmZwX8IGmfuusNruJwh8hEDb9INmbi7TmYuXyt8Y-fOmw54s6ViDARsJaW7KqkwsZW3JOLmqGUecUbpdtJknHYk1DZ_n_hxialOCL3oP3TM9qr_dzR6XQxbNBPJCxSAxvXm9DyrpGomkOB3IVFMkz6G1N_3aHq2FIpw=s738" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="455" data-original-width="738" height="246" src="https://blogger.googleusercontent.com/img/a/AVvXsEju1ZR7Uywx-FpLdE7blQOrhBKkmZwX8IGmfuusNruJwh8hEDb9INmbi7TmYuXyt8Y-fOmw54s6ViDARsJaW7KqkwsZW3JOLmqGUecUbpdtJknHYk1DZ_n_hxialOCL3oP3TM9qr_dzR6XQxbNBPJCxSAxvXm9DyrpGomkOB3IVFMkz6G1N_3aHq2FIpw=w400-h246" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">Sweepで沿わせるLineには、後に使用する終点と始点の分かる様アトリビュートを仕込んでおきます。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhR0778nSf6lJgkIZRGb3JawfPrIZyqOPEDQS_7fGCTi2Yg7LpwAUK-pv5QvRIZo4c647P6u_SwLK12GlGE_nn4mzgTd-M5OikVgOnVtZ_g6KZmXU3COCOTVtCb6tWkdaiVXQbSzn6vFVbb3y3DiBU0mvPkT8P_xdqw44NCTY1QoRqFg41D9Ggufb-h0Q=s674" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="501" data-original-width="674" height="297" src="https://blogger.googleusercontent.com/img/a/AVvXsEhR0778nSf6lJgkIZRGb3JawfPrIZyqOPEDQS_7fGCTi2Yg7LpwAUK-pv5QvRIZo4c647P6u_SwLK12GlGE_nn4mzgTd-M5OikVgOnVtZ_g6KZmXU3COCOTVtCb6tWkdaiVXQbSzn6vFVbb3y3DiBU0mvPkT8P_xdqw44NCTY1QoRqFg41D9Ggufb-h0Q=w400-h297" width="400" /></a></div></div><div><div class="separator" style="clear: both; text-align: center;"><br /></div></div><div class="separator" style="clear: both; text-align: left;">Sweepで作っただけでは元ジオメトリの表面と完璧に一致する位置にはないので、RaySopで円柱側に終点側(上記で仕込んだ@mapアトリビュートが1.0)のみ円柱側へ貼り付けます。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjnBU-8msNo54hF0KfmxI0dbusrVSnvSY2KXswqRWls7DsvV6LR8wm65kcog08mcW7EqCqBiBMg0WuWS7P-9sJBzAbnKagasXsocnJ4XiyhQE7ux7yQraAW7FdYshn8xusdMB-SPXzKb9F49cD92K2-RvREZ1ox_RqJpc9kuqkiFkJiIuLCqhf6jJRf0w=s1302" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="785" data-original-width="1302" height="386" src="https://blogger.googleusercontent.com/img/a/AVvXsEjnBU-8msNo54hF0KfmxI0dbusrVSnvSY2KXswqRWls7DsvV6LR8wm65kcog08mcW7EqCqBiBMg0WuWS7P-9sJBzAbnKagasXsocnJ4XiyhQE7ux7yQraAW7FdYshn8xusdMB-SPXzKb9F49cD92K2-RvREZ1ox_RqJpc9kuqkiFkJiIuLCqhf6jJRf0w=w640-h386" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">同様に始点側(@mapアトリビュートが0)を球に貼り付けます。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj4wJzOLRxNm49_Edq3yeHKAwY2_-creRHVRDiuN8UMIpldtcuGOIEbmLpw8_S5iVc2PWMrTULGiOaIuEJpX45dJb9u5q23RGZNgEuUf2xo006Nt-tQGD6d-vJvv46Ga8yr87uwfK0_s-9NErZXpzIHi3F5Hqe_lzl4r1exp_qUK2YzMYR1pHkwd_2BJw=s612" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="612" data-original-width="463" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEj4wJzOLRxNm49_Edq3yeHKAwY2_-creRHVRDiuN8UMIpldtcuGOIEbmLpw8_S5iVc2PWMrTULGiOaIuEJpX45dJb9u5q23RGZNgEuUf2xo006Nt-tQGD6d-vJvv46Ga8yr87uwfK0_s-9NErZXpzIHi3F5Hqe_lzl4r1exp_qUK2YzMYR1pHkwd_2BJw=w303-h400" width="303" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">以上で形状は完成です。2つのRay共にPoint Intersection Normalを有効にするとそれぞれ球側・円柱側の法線Nを持ってこれスムースにつながります。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEisLZIOo0LN8b2bY2H4M-xpSDKTu1n7SERl5kW1CsLqNwnRjprxX1SIYCpUBf903TjLsWZ-6it4k7lcqUERGs5XTVMbE1u1Y_Nd9ffAfEKH8KsrToQeyBnFaXSBzKQYi0YRbW2B-THXZY-ZeR-T73vQfJNR9OF_lbaXTiRmY_KNPYKCyY17cEqWlvzF3Q=s1016" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="482" data-original-width="1016" height="304" src="https://blogger.googleusercontent.com/img/a/AVvXsEisLZIOo0LN8b2bY2H4M-xpSDKTu1n7SERl5kW1CsLqNwnRjprxX1SIYCpUBf903TjLsWZ-6it4k7lcqUERGs5XTVMbE1u1Y_Nd9ffAfEKH8KsrToQeyBnFaXSBzKQYi0YRbW2B-THXZY-ZeR-T73vQfJNR9OF_lbaXTiRmY_KNPYKCyY17cEqWlvzF3Q=w640-h304" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;"><br /></div>最後にストレステストをしてみました。そこそこ複雑な形状やアニメーションさせても有効です。<div><div><br /></div></div>
<div style="text-align: center;"><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/ArQggGWWL5s" title="YouTube video player" width="560"></iframe></div><div style="text-align: center;"><br /></div><div style="text-align: left;">以上です。</div><div style="text-align: left;"><br /></div><div style="text-align: left;">Houdiniアドベントカレンダー2016年から始まりもう6年目ですね。Houdiniのテクニックは過去のものも古くならず有効なものが多いです。今回はAppernticeのカレンダーもすべてスケジュールが埋まっているようなので素晴らしいです。<br />是非こちらから過去のものやチェックしてみてください。</div><div style="text-align: left;"><a href="https://qiita.com/advent-calendar/2021/houdini">https://qiita.com/advent-calendar/2021/houdini</a></div>Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-5153906868858189002021-01-21T05:51:00.019+09:002022-01-04T04:09:59.951+09:00Houdiniワークショップ第5段<p>ワークショップ第5段正式に募集開始いたしました。3月13日から開催です。</p><p>よろしくおねがいいたします!!</p><p><a href="https://sugi-iggy.blogspot.com/p/workshop5.html">https://sugi-iggy.blogspot.com/p/workshop5.html</a></p><p>(2021年8月追記)<br />↑こちらのワークショップ終了いたしました。第六弾は2022年3月辺りに開催できたらと思います。よろしくお願いいたします。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhy1FA88fHGTYZFs4EWq0zHnCe8uTtOyHPQz-B5haEaz7LpnC1wFE7SCZbuDSQFVK7w8s60ssk9Nv5QFrMJ84IuuNpjNenL_XdoohClevlR-w2l6GyqCKccOLqnPL4BWNwCNcluJ85mwWNgwkc_KgVoPE-stRmw36nxFjs32G5CtMPO2I9S07PqeO0-LQ=s2560" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1440" data-original-width="2560" height="360" src="https://blogger.googleusercontent.com/img/a/AVvXsEhy1FA88fHGTYZFs4EWq0zHnCe8uTtOyHPQz-B5haEaz7LpnC1wFE7SCZbuDSQFVK7w8s60ssk9Nv5QFrMJ84IuuNpjNenL_XdoohClevlR-w2l6GyqCKccOLqnPL4BWNwCNcluJ85mwWNgwkc_KgVoPE-stRmw36nxFjs32G5CtMPO2I9S07PqeO0-LQ=w640-h360" width="640" /></a></div><br /><p><br /></p><p><br /></p>Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-89424993749155834882020-12-11T00:00:00.011+09:002020-12-25T02:30:01.114+09:00使ってはいけないStamp!<p>この記事は<a href="https://qiita.com/advent-calendar/2020/houdini" target="_blank">Houdiniアドベントカレンダー2020</a> 11日目の記事です。</p><p style="text-align: center;">
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/YkIsbYF0HAA" width="640"></iframe>
</p><p>皆さん、大量なオブジェクトのアニメーションのタイミングをアトリビュートを利用してズラしたい!なんて事はありますでしょうか?<br />はい。自分は良くあります。<br />実は、様々なチュートリアルでStampとTime shift Sop使った<b>悪手</b>が散見されるので記事にしました。</p><p>Houdini独特の機能のStampですが、移動・回転・スケール・Alphaなどなどアトリビュートで操作できる値はアトリビュートを直接いじりましょう!というのはHoudiniをある程度触った事がある人ならば共通認識だと思いますが、見落とされがちなのが<b>アニメーションをキーフレームで行いたい場合</b>です。<br />そんな時はwrangleでch関数の<b>とあるオプション</b>を使いましょう。</p><p>まずは簡単な例から。ランダムにアニメーションをズラしています。</p>
<div style="text-align: center;"><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/diiGGUpIEV8" width="640"></iframe></div><div style="text-align: left;"><p>よく見るダメな例。ランダムな値が入ったshiftアトリビュートをstampで参照しtimeshiftノード内で使用。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBTP6G611pNds2t_R_1xLRtf4wRsF3aygoJWNAXwDUhRj7aGOzbtxLN5I3ZkarFz9CoWdtHQ6MDwb2_OCncJ5x12Y0Oypzz662zXQk-e6Qfv1PbrEGzVSrlzvbwsphJwuN9H4469VNlPUf/s1616/sample_NG.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1146" data-original-width="1616" height="454" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBTP6G611pNds2t_R_1xLRtf4wRsF3aygoJWNAXwDUhRj7aGOzbtxLN5I3ZkarFz9CoWdtHQ6MDwb2_OCncJ5x12Y0Oypzz662zXQk-e6Qfv1PbrEGzVSrlzvbwsphJwuN9H4469VNlPUf/w640-h454/sample_NG.jpg" width="640" /></a></div><p>スケールのアニメーションは以下の様にキーフレームでアニメーションつけています。(上図ではscale_Animationノード)</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD0v8pRTfZmxuuurenl_fuHlTFioP4BDUMWa_2UqDWlWI4W3J_YGnlttKGYLezsqfN6ZcxAok7OBlTi_O_-zebQCS-5hSEKeqZ39dv48sMY4My2NkgoNk0mzDjiHDiIKLQufHjGKm_Xske/s1952/keyFrame.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="864" data-original-width="1952" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD0v8pRTfZmxuuurenl_fuHlTFioP4BDUMWa_2UqDWlWI4W3J_YGnlttKGYLezsqfN6ZcxAok7OBlTi_O_-zebQCS-5hSEKeqZ39dv48sMY4My2NkgoNk0mzDjiHDiIKLQufHjGKm_Xske/w640-h284/keyFrame.jpg" width="640" /></a></div><div style="text-align: left;"><br /></div>良い例。Wrangleノードの自作したscaleというパラメーターに、上と同じキーフレームアニメーションが付いています。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV6ZK5KJm8Lq9nHxTW1Y73lVZ_tgxeM99BbZG0Rf4jF28d8qwFS0EzwDwTKybmiUyQaM2iwysFNafy0WZrNlRgDITc9Bg-7RZzG5MBnuV-Q3C1Mv4D8rvyWnOBVJtLDmisHhzSKpHqy6QW/s1494/sample_Good.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1156" data-original-width="1494" height="496" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV6ZK5KJm8Lq9nHxTW1Y73lVZ_tgxeM99BbZG0Rf4jF28d8qwFS0EzwDwTKybmiUyQaM2iwysFNafy0WZrNlRgDITc9Bg-7RZzG5MBnuV-Q3C1Mv4D8rvyWnOBVJtLDmisHhzSKpHqy6QW/w640-h496/sample_Good.jpg" width="640" /></a></div><div style="text-align: left;"><p>Wrangleでパラメーターを作る時に、chf , chvなど良く使うかと思いますがch関数には<b>時間指定して値を取ってくるオプションがあります。</b></p><p>上の例だと <b>chf('scale' , @Time - ここにズラしたい値を入れる)</b> </p><p><span style="font-size: x-small;">つまりchf('scale',@Time) だと元のアニメーションと全く同じタイミングでchf('scale')と同様の挙動です。 </span> </p><div>この方法のほうが、パフォーマンスは段違いに速いのでstampはどうしようもない時のみ使う様にしましょう。</div><div><br /></div><div><br /></div><div><br /></div><div>----------------------------------------------------------------------------</div><div>応用例です。(トップのムービー)</div><div><br />
<p style="text-align: center;">
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/YkIsbYF0HAA" width="640"></iframe>
</p></div><div>といっても、本題のch関数のオプションの話は済んでいるので</div><div>この様な各面の基点、サイズ、スケールアニメーションの向き、面の向きがバラバラなタイプの表現をする時に使えるテクニックの紹介です。</div><div><br /></div><div>大まかに流れを説明すると、各ポリゴンをから基点(pivot)、upとNの向き、サイズ(scale)を</div><div>割り出し、1ポリゴンのgridを割り出した各面のpivotにcopy to points でコピーし面を再構成しなおすという感じです。</div><div>元の形状は<a href="https://www.sidefx.com/products/sidefx-labs/sidefx-labs-tools/" target="_blank">Sidefx Lab tools</a>のLot subidivisionというSopで作りました。</div><div>このSopお手軽ですが、以前R&D行っていた<a href="https://sugi-iggy.blogspot.com/2018/01/r.html">Treemapアルコリズム</a>とは違う様で用途は限定的です。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi90U2Ce6Jr7mdkTxn0Gmkc4edP-CBllNLzhG8Qqto4wR0if0m-t0Fsugq3Q08AkO4Pv88fBszhg_ByZnzKoHuVNhCgTQPIgBiIUdGxPpr5d3D9AvG1vD6ZPDdjhGxxj468jXoiKmtnFmjn/s1800/advance_network1.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1226" data-original-width="1800" height="613" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi90U2Ce6Jr7mdkTxn0Gmkc4edP-CBllNLzhG8Qqto4wR0if0m-t0Fsugq3Q08AkO4Pv88fBszhg_ByZnzKoHuVNhCgTQPIgBiIUdGxPpr5d3D9AvG1vD6ZPDdjhGxxj468jXoiKmtnFmjn/s1800/advance_network1.jpg" width="900" /></a></div><div class="separator" style="clear: both; text-align: left;">facet sopでプリミティブをバラバラにします。Primitive wrangle(上図get_pivot_dir)で各プリミティブのエッジ上の中点を基点としたいので、</div><div>prim points関数を使って下図の様に全ての面に対してpt0とpt1を選びます。</div><div><div><b>int primPts[] = primpoints(0,@primnum);</b></div><div><b>int numPt = len(primPts);</b></div><div><b>int start = floor(fit01(rand(@primnum*1.23),0,numPt));</b></div><div><b><br /></b></div><div><b>int pt0 = primPts[start];</b></div><div><b>int pt1 = primPts[start+1];</b></div><div><b>if (start == numPt-1) pt1 = primPts[0];</b></div></div><div>この2点が選べれば、それらのポジションの平均が中点になり、</div><div><div><b>vector P0 = point(0,'P',pt0);</b></div><div><b>vector P1 = point(0,'P',pt1);</b></div><div><b>v@pivot = avg(P0,P1); </b></div><div><b>v@dir = P0 - P1 ;</b></div></div><div>-----------------------------------------------------------------</div><div>upとの外積を取る事でN、dirのlengthでx size、中心点からpivotまでの距離から</div><div>z size も取得できます。下図参照。</div><div><br /></div><div>(set_pivot_N)</div><div><div><b>vector pivot = prim(1,'pivot',@ptnum);</b></div><div><b>@zsize = length(@P-pivot)*2;</b></div><div><b>@P = pivot;</b></div><div><b>vector dir = prim(1,'dir',@ptnum);</b></div><div><b>@N = cross(v@up,dir);</b></div><div><b>@xsize = length(dir);</b></div></div><div><br /></div><div>(この図は黄土色のプリミティブのみ図解していますが、各プリミティブに同様の処理が行われます。)</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2cxc1thgR_oxWguLCnh57vxT0FKpo3KmQIL7Q2ArM01IjSEG_VAol0DV2uUqIoiYy-qd5vN-TuMqVDLlR-WIa9c5I9spnVyN28VaFCrEhSSHIH0PZrrE7Acvc49qxg_j2H4lMh9h-3lha/s972/advance2.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="822" data-original-width="972" height="542" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2cxc1thgR_oxWguLCnh57vxT0FKpo3KmQIL7Q2ArM01IjSEG_VAol0DV2uUqIoiYy-qd5vN-TuMqVDLlR-WIa9c5I9spnVyN28VaFCrEhSSHIH0PZrrE7Acvc49qxg_j2H4lMh9h-3lha/w640-h542/advance2.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: left;">scale_timeshiftノード</div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: left;"><b>float timeShift = @Time - fit01(rand(@ptnum),0,2) ;</b></div><div class="separator" style="clear: both; text-align: left;"><b>v@scale = set(@xsize, 1, chf('scale', timeShift) * @zsize ); </b></div><div class="separator" style="clear: both; text-align: left;">先ほど同様、chvのオプションを使ってタイミングをズラします。各面が1方向にスッと動きを付けたかったのでz sizeのみアニメーションさせています。</div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKIXUqa5BJ72Jt65Sla-Yl8PqjK_JC36eiUaG74xS507bi_wRDMXuZJySKOKZKnTx_dDYF1YAifpUXMWxnRX42LcicXwU1Udl6Rw_cDe3ZRvZ5SFA-vEByD2HE0RM8IjzdtFZaDc3bExRE/s972/xsize_zsize.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="822" data-original-width="972" height="542" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKIXUqa5BJ72Jt65Sla-Yl8PqjK_JC36eiUaG74xS507bi_wRDMXuZJySKOKZKnTx_dDYF1YAifpUXMWxnRX42LcicXwU1Udl6Rw_cDe3ZRvZ5SFA-vEByD2HE0RM8IjzdtFZaDc3bExRE/w640-h542/xsize_zsize.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">以上です。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">早いものでHoudiniアドベントカレンダーが始まってもう5年目ですね。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">毎年沢山の方が記事を書いてくれています。過去のテクニックも古くなるものは殆どないので、是非みてみて下さい。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span face=", "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , "hiragino kaku gothic pron" , , "meiryo" , sans-serif" style="background-color: white; color: #4a4a4a; font-size: 16.1px;">2019年 </span><a class="autolink" href="https://qiita.com/advent-calendar/2018/houdini" style="background-color: white; box-sizing: inherit; color: #337ab7; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Kaku Gothic ProN", メイリオ, meiryo, sans-serif; font-size: 16.1px; text-decoration-line: none;" target="_blank">https://qiita.com/advent-calendar/2019/houdini</a></div><div class="separator" style="clear: both; text-align: left;">アペレンティス <a class="autolink" href="https://qiita.com/advent-calendar/2018/happrentice" style="background-color: white; box-sizing: inherit; color: #337ab7; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Kaku Gothic ProN", メイリオ, meiryo, sans-serif; font-size: 16.1px; text-decoration-line: none;" target="_blank">https://qiita.com/advent-calendar/2019/happrentice</a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both;"><span face=", "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , "hiragino kaku gothic pron" , , "meiryo" , sans-serif" style="background-color: white; color: #4a4a4a; font-size: 16.1px;">2018年 </span><a class="autolink" href="https://qiita.com/advent-calendar/2018/houdini" style="background-color: white; box-sizing: inherit; color: #337ab7; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Kaku Gothic ProN", メイリオ, meiryo, sans-serif; font-size: 16.1px; text-decoration-line: none;" target="_blank">https://qiita.com/advent-calendar/2018/houdini</a></div>アペレンティス <a class="autolink" href="https://qiita.com/advent-calendar/2018/happrentice" style="background-color: white; box-sizing: inherit; color: #337ab7; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Kaku Gothic ProN", メイリオ, meiryo, sans-serif; font-size: 16.1px; text-decoration-line: none;" target="_blank">https://qiita.com/advent-calendar/2018/happrentice</a></div><div style="text-align: left;"><br /><span face=", "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , "hiragino kaku gothic pron" , , "meiryo" , sans-serif" style="background-color: white; color: #4a4a4a; font-size: 16.1px;">2017年 </span><a class="autolink" href="https://qiita.com/advent-calendar/2017/houdini" style="background-color: white; box-sizing: inherit; color: #337ab7; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Kaku Gothic ProN", メイリオ, meiryo, sans-serif; font-size: 16.1px; text-decoration-line: none;" target="_blank">https://qiita.com/advent-calendar/2017/houdini</a><br /><span face=", "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , "hiragino kaku gothic pron" , , "meiryo" , sans-serif" style="background-color: white; color: #4a4a4a; font-size: 16.1px;">2016年 </span><a class="autolink" href="https://qiita.com/advent-calendar/2016/houdini" style="background-color: white; box-sizing: inherit; color: #337ab7; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Kaku Gothic ProN", メイリオ, meiryo, sans-serif; font-size: 16.1px; text-decoration-line: none;" target="_blank">https://qiita.com/advent-calendar/2016/houdini</a><br /><div><br /></div><div><br /></div></div>Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-90542484727621537362020-04-16T13:53:00.003+09:002020-12-10T16:57:18.726+09:00007 トレイラー 公開<div style="text-align: center;">
<br />
<div style="text-align: left;">
007のトレイラー公開されてました!</div>
<div style="text-align: left;">
いつか関わりたいと思ってた作品なので参加できて凄く嬉しい。</div><div style="text-align: left;">公開はコロナの関係で未定。。 スクリーンで観れますように。</div>
</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/r7rcE7bhCFE" width="560"></iframe>
</div>
Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-64628140988032006992020-02-10T10:28:00.002+09:002020-02-10T10:33:04.019+09:00Houdiniが使われている良作第2段今年もHoudiniが使われている良作を集めてみました。<br />
<span style="font-size: x-small;">去年のものはこちら→<a href="http://sugi-iggy.blogspot.com/2019/01/houdini_30.html">http://sugi-iggy.blogspot.com/2019/01/houdini_30.html</a></span><br />
<br />
いつもながらハリウッド大作では必然的に使わているので、あまり知られていなさそうなものを集めてみました。<br />
<br />
<br />
<iframe allow="autoplay; fullscreen" allowfullscreen="" frameborder="0" height="360" src="https://player.vimeo.com/video/385507822" width="640"></iframe>
<br />
<a href="https://vimeo.com/385507822">Motion Design Reel</a> from <a href="https://vimeo.com/sartakov">Denis_Sartakov</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
<br />
Netflix ロスト・イン・スペースの背景実例<br />
<iframe allow="autoplay; fullscreen" allowfullscreen="" frameborder="0" height="360" src="https://player.vimeo.com/video/387492572" width="640"></iframe>
<br />
<a href="https://vimeo.com/387492572">18th VES ILP - Lost in Space - Environment</a> from <a href="https://vimeo.com/ilpvfx">Important Looking Pirates</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
<br />
Netflix ロスト・イン・スペースのエフェクト実例<br />
<iframe allow="autoplay; fullscreen" allowfullscreen="" frameborder="0" height="360" src="https://player.vimeo.com/video/387632672" width="640"></iframe><br />
<a href="https://vimeo.com/387632672">18th VES ILP - Lost in space - FX</a> from <a href="https://vimeo.com/ilpvfx">Important Looking Pirates</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
<br />
毛・ファーの実例 For Sidefx<br />
<iframe allow="autoplay; fullscreen" allowfullscreen="" frameborder="0" height="360" src="https://player.vimeo.com/video/297814532" width="640"></iframe><br />
<a href="https://vimeo.com/297814532">Andriy Bilichenko - Houdini grooming Demo Reel</a> from <a href="https://vimeo.com/cgfaun">Andriy Bilichenko</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
珍しく背景周りの記事が出ていましたので貼っておきます。<br />
<a href="https://www.artofvfx.com/the-aeronauts-christian-kaestner-vfx-supervisor-framestore/" target="_blank">フレームストアの記事</a><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3T71yzbEhHd7mAwwF7NB907xKODa8-J2ZDQLGV2uQ4HB_qVyWSAnK-W24sSN3lNArlLQN3aMpar9PkEFDPd7HPPxlgRFchwiV9ronxwd_UopHSFv0fDuk8P4ffPmk6khzV_vj-JSa3Q2_/s1600/TheAeronauts_Framestore_ITW_06A.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: left;"><img border="0" data-original-height="736" data-original-width="1400" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3T71yzbEhHd7mAwwF7NB907xKODa8-J2ZDQLGV2uQ4HB_qVyWSAnK-W24sSN3lNArlLQN3aMpar9PkEFDPd7HPPxlgRFchwiV9ronxwd_UopHSFv0fDuk8P4ffPmk6khzV_vj-JSa3Q2_/s640/TheAeronauts_Framestore_ITW_06A.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://www.artofvfx.com/the-aeronauts-christian-kaestner-vfx-supervisor-framestore/" style="font-size: medium;">https://www.artofvfx.com/the-aeronauts-christian-kaestner-vfx-supervisor-framestore/</a></td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-47645112436167683962020-01-21T11:13:00.002+09:002020-12-10T16:59:17.148+09:00Houdiniワークショップ第4段多くの方から、今年はいつ始まるのですか?とお問い合わせを頂きありがとうございます。<br />
<div>
そしてすみません、まだ準備中で2月中旬あたりから始められたらと思っています。</div>
<div>
<strike>今まさに新たな作例の追加や案内のページを作成中で(近日中に右上に<a href="https://sugi-iggy.blogspot.com/p/workshop4.html">Workshop4</a>が現れます。)しばしお待ち頂けたら幸いです。</strike><br />
まだ更新していきますが、2月15日から開催、正式に募集開始いたしました。<br />
よろしくお願いいたします!!<br />
<a href="https://sugi-iggy.blogspot.com/p/workshop4.html">https://sugi-iggy.blogspot.com/p/workshop4.html</a><br />
<br />
<br />
以下は去年のアンケート結果です。</div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJKJP61FZvIpUvIElqYSDTAnnNUPeCB7lhQApuj5dKc4Ty6wSEFtp7mVYmaW_c0hXWpQZEJx3EYM6WYxSTtrGDTNTDfCYLd1a18wWTD8pZnWK5JeJeGAcz3SIAmB6FsL6fbRm8juBUbpjo/s1600/questionnaire3.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1489" height="696" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJKJP61FZvIpUvIElqYSDTAnnNUPeCB7lhQApuj5dKc4Ty6wSEFtp7mVYmaW_c0hXWpQZEJx3EYM6WYxSTtrGDTNTDfCYLd1a18wWTD8pZnWK5JeJeGAcz3SIAmB6FsL6fbRm8juBUbpjo/s1600/questionnaire3.jpg" width="960" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-78334617399715740662019-12-03T12:22:00.000+09:002019-12-05T12:53:44.491+09:00パリピHoudiniロゴアニメーションとPDGでムービー出力この記事はHoudiniアドベントカレンダー2019 3日目の記事です。<br />
<a href="https://qiita.com/advent-calendar/2019/houdini" target="_blank">https://qiita.com/advent-calendar/2019/houdini</a><br />
<br />
まずは完成絵です。<br />
この絵を見せた人から「パーティーピーポーみたいだね」と有難い感想を頂いたので<br />
パリピHoudiniロゴアニメーションと題しました。<br />
<div style="text-align: center;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/yg4C0NVtRiI" width="560"></iframe>
</div>
<br />
SoftbodyシミュレーションにはWireソルバーを使用。今やVellumeソルバーが搭載されてすっかり影の薄くなったWireソルバーですが、<br />
こんな感じ固めでかつトゥーンチックな嘘っぽいシミュレーション(奥行方向には変形しないなど)を作ろうとするとVellumeでは上手くいきませんでした。<br />
因みに文字同士は貫通したりしてますが気にしない事にします。<br />
<br />
<br />
全体の流れはFont Sopで作った文字をDivideで分割して平べったい状態でシミュレーションし、最後に厚みをつけています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu47rMsSmLMgGiOSQPod-BiuGiN0IKxsPvON46nRVbgEn2K61afbRFB2YhQYSa0YIMjPA29FGF8M6zxpd0phLQ_9Sqpm4AHzwxJ6kvRxVRj9FJ9H6LPj-GNWrnz_V6mD9Bl1qqUlhAFLQF/s1600/network.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="567" data-original-width="251" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu47rMsSmLMgGiOSQPod-BiuGiN0IKxsPvON46nRVbgEn2K61afbRFB2YhQYSa0YIMjPA29FGF8M6zxpd0phLQ_9Sqpm4AHzwxJ6kvRxVRj9FJ9H6LPj-GNWrnz_V6mD9Bl1qqUlhAFLQF/s400/network.jpg" width="176" /></a></div>
<br />
<br />
まずはFontで作った文字をDivideで分割。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAPtcSNf-vH2fOfifMm1C2hKgPT4mFlbFGKtE-VwREVV6XKNhP0ZGfhhG49haS8uNBREkKlgdjsR_XNwzmQGoJli_HLTdwdbNJuerPG9GYFETYqkMnLBRUauwvfi12yrlKDrb1aTtgrvpG/s1600/divide.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="234" data-original-width="592" height="157" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAPtcSNf-vH2fOfifMm1C2hKgPT4mFlbFGKtE-VwREVV6XKNhP0ZGfhhG49haS8uNBREkKlgdjsR_XNwzmQGoJli_HLTdwdbNJuerPG9GYFETYqkMnLBRUauwvfi12yrlKDrb1aTtgrvpG/s400/divide.jpg" width="400" /></a></div>
<br />
<br />
次に潰れた状態から3F目で元の状態になるアニメーションをつけます。Y軸スケールで0から1に。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO0o9ouITBx8SGne6Ty6ZkwtjftldOjsxicNvhmujd8QhpkyAw7SkBPynYmGuENrdiSeD3pJh8n2__gU5xVxQoj5ZNAURv1IkvYkmOqFHfgBhYqYpGgCqtMDfBtNx2sxnMenlZWrqcL2ww/s1600/animation1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="785" data-original-width="1600" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO0o9ouITBx8SGne6Ty6ZkwtjftldOjsxicNvhmujd8QhpkyAw7SkBPynYmGuENrdiSeD3pJh8n2__gU5xVxQoj5ZNAURv1IkvYkmOqFHfgBhYqYpGgCqtMDfBtNx2sxnMenlZWrqcL2ww/s640/animation1.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5cSBRBP33OLw0AmyrQQr5PQQY6NOSxZX_62YFKs4mipIytXye-S-hCL4hlWMZOfwT60N6ANP2uPBgqbJqBhbSoD-q8ADS2ll5vvT2cgdo4hH1aGLd-rmID3nYe5KuAYzgAXBX2YAFAM7n/s1600/animation3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="785" data-original-width="1600" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5cSBRBP33OLw0AmyrQQr5PQQY6NOSxZX_62YFKs4mipIytXye-S-hCL4hlWMZOfwT60N6ANP2uPBgqbJqBhbSoD-q8ADS2ll5vvT2cgdo4hH1aGLd-rmID3nYe5KuAYzgAXBX2YAFAM7n/s640/animation3.jpg" width="640" /></a></div>
<br />
その後Trail Sopでvelocityを作っておきます。Dop内で地面(Ground)を作るので、めり込まないように少しだけ(0.01)浮かせてあります。(Transform2)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgukcG57csxeMfGKAwq0Chk3IZZ0Ifv9BP7x2e45WaqabKQaCgTBUVhZbJHkVCOPXoXRe6j7L5u19KrCpwZmN69x5Q46U9-ilOchSdVCwMvJx09uhkk9AiL89_DAYL3tHasrCtlGui6UkWq/s1600/dop.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="690" data-original-width="481" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgukcG57csxeMfGKAwq0Chk3IZZ0Ifv9BP7x2e45WaqabKQaCgTBUVhZbJHkVCOPXoXRe6j7L5u19KrCpwZmN69x5Q46U9-ilOchSdVCwMvJx09uhkk9AiL89_DAYL3tHasrCtlGui6UkWq/s320/dop.jpg" width="223" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
dopnet1の中です。特別な事はせず、WireObjectで読み込みWireソルバーで計算させるだけです。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOVXO5FKokaEWMi3O-H1dEOF-rLVG5y_VSGoo-cOe-y3boOCwU1A9-Jbwlkpoagq8JPVWMDwJDKPbs0a00NjI_-kIz-g5nK8nW9iIq8SHpmRoEnJbjAyxskcKCGDGRbiVgswf2KAEMyWAe/s1600/dop_inside.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="766" data-original-width="1600" height="305" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOVXO5FKokaEWMi3O-H1dEOF-rLVG5y_VSGoo-cOe-y3boOCwU1A9-Jbwlkpoagq8JPVWMDwJDKPbs0a00NjI_-kIz-g5nK8nW9iIq8SHpmRoEnJbjAyxskcKCGDGRbiVgswf2KAEMyWAe/s640/dop_inside.jpg" width="640" /></a></div>
<br />
最後にPolyExturdeで厚みをつけて完成です。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNgLDxUs6YsT_o-2otW7qJj9lORrJ0orHy65lbdZotWOyIH2LBsgvZYPj66y84LAbD5SUKZIC2eANEBGzaq6zLjviTrf7uz4Gl4OCcEuSJGF5fu8mO3Ws1muRK0YxD9jGC0WGGX4lQ5W2V/s1600/extrude.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="779" data-original-width="1600" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNgLDxUs6YsT_o-2otW7qJj9lORrJ0orHy65lbdZotWOyIH2LBsgvZYPj66y84LAbD5SUKZIC2eANEBGzaq6zLjviTrf7uz4Gl4OCcEuSJGF5fu8mO3Ws1muRK0YxD9jGC0WGGX4lQ5W2V/s640/extrude.jpg" width="640" /></a></div>
<br />
<br />
<br />
<b>PDGで連番をムービー出力。</b><br />
<b><br /></b>
今まではチュートリアルをWebにアップする場合は、レンダリングした連番を別ソフトでムービー(mp4)にしてYoutubeにアップする流れでしたが、Houdini17.5から付いたPDG(TOP)の機能によりHoudini以外の様々なタスクまでもプロシージャルに自動化出来るようなりました。そこでPDGの機能でムービー化してみようと思います。<br />
(厳密にいうとPDGは単体のソフトでHoudiniにTOPとして一部の機能が付随しています。)<br />
<br />
例えば、<br />
モデリング -> エフェクト -> ライティング -> レンダリング -> コンポジット -> ムービー作成 -> shotgunにアップロードまですべて自動化可能です。他にも様々なHoudini以外の機能があるので是非色々試してみてください。<br />
(といつつもまだ新しい機能なので、私自身もSidefxのヘルプから参照できるサンプルファイルで検証を始めたところです。)<br />
<br />
ヘルプに、OpenGL ROPで作成した連番からムービーを出力するまでのサンプルが<br />
あったのですが、今回は連番をすでに作成済みだったので連番を再度作成せずに<br />
ファイルを参照し、それをムービー化する方法を探りました。<br />
<br />
まずは、TOP networkをobjレベルにつくり、<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjK5ReueImfvQFWsqsU3zg4kmQk1MfVQSK0tLFa9hI62FTXCA3Fxp1sgk57dHLh1DzvNZ4SrBAN7VT0Lc8kfYoPIdJzgcgzq-CaLeHNXMnRBsM0HxN_SkomyY4rOOSLtiHxTEd0qzBYx_W/s1600/Top_obj.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="528" data-original-width="739" height="456" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjK5ReueImfvQFWsqsU3zg4kmQk1MfVQSK0tLFa9hI62FTXCA3Fxp1sgk57dHLh1DzvNZ4SrBAN7VT0Lc8kfYoPIdJzgcgzq-CaLeHNXMnRBsM0HxN_SkomyY4rOOSLtiHxTEd0qzBYx_W/s640/Top_obj.jpg" width="640" /></a></div>
<br />
Topの中はデフォルトではlocalscheduler(一番右のノード)があるだけの状態ですが、<br />
ヘルプ付属のサンプルファイルから、OpenGL Ropを参照しレンダリングが終わったらムービー化するネットワークを持ってきました。真ん中のwait for all ノードは上の全ての処理が終わってから次に進むノードです。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAzTf1MSz3nebWnQVEIKjNgq8t0azWOwpg2Y_G7nBPZakw6TH0ObAjAIYYHKouWUAW26ja4jDdViYrivW_aMbOlBIebQgSeblBxnWhk-GMbWp36CM-alb02GV353mceHDm-KSGRCJwdITu/s1600/top_openGL.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="583" data-original-width="1035" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAzTf1MSz3nebWnQVEIKjNgq8t0azWOwpg2Y_G7nBPZakw6TH0ObAjAIYYHKouWUAW26ja4jDdViYrivW_aMbOlBIebQgSeblBxnWhk-GMbWp36CM-alb02GV353mceHDm-KSGRCJwdITu/s640/top_openGL.jpg" width="640" /></a></div>
<br />
<br />
(localschedulerは使用しないと思って消してしまったのですが、そうするとTOPの計算が行われなくなるのでご注意を。これはTOPのスケジュールを管理するノードらしく残しておかなくてはなりません。)<br />
<br />
TOPのノード達は繋ぐだけで、前のノードからどんなデータが出力されているか<br />
既に判断されている様で、例えばこの例ではropfetchで参照している/out/openglが書き出した連番のファイルの場所が、一番下のffmpeg encode videoノードに渡されている様です。<br />
<br />
ffmpeg encode videoノードのみでもファイルを参照できそうなのですが、txtファイルで指定する仕様になっていて、どのようなフォーマットで書けばよいのか不明なのと(この辺りはffmpegの仕様だと思います。)txtを用意するのも面倒ですのでTOP内で既に書き出された連番を参照するfile patternノードを見つけました。<br />
<br />
ディレクトリ名とワイルドカード( *)を使用する事でそのフォルダのすべてのファイルを参照できます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR7ox8xn8Jd3IIy7cAUaDSapHtDzc7aRTc-AliZe70HPo_9hX-z9I4Y2wdG15Yoqta-lA1xuwQY9xYbtgUvFHYalofjZmgsZzzIXYLZyY1z4woG78zYRlM-iImcnfiYHJBL7KYNZAfHwvo/s1600/filepattern_ui.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="270" data-original-width="877" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR7ox8xn8Jd3IIy7cAUaDSapHtDzc7aRTc-AliZe70HPo_9hX-z9I4Y2wdG15Yoqta-lA1xuwQY9xYbtgUvFHYalofjZmgsZzzIXYLZyY1z4woG78zYRlM-iImcnfiYHJBL7KYNZAfHwvo/s640/filepattern_ui.jpg" width="640" /></a></div>
<br />
ropfetchをfile patternに入れ替えています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0vsxCYjM_uPAY5xfOOEm35iH1DfBmSStYGmS1oR_kzQ7pMwieggaHbMAWd2ulNwGGtiWkenO-88sRHtMrWVMkeAAt4riwZu20ATeRWtvRCDPlvLESdLQjw2gjlCz2vh_QijVZagVMTIbV/s1600/filepattern_network.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="510" data-original-width="641" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0vsxCYjM_uPAY5xfOOEm35iH1DfBmSStYGmS1oR_kzQ7pMwieggaHbMAWd2ulNwGGtiWkenO-88sRHtMrWVMkeAAt4riwZu20ATeRWtvRCDPlvLESdLQjw2gjlCz2vh_QijVZagVMTIbV/s400/filepattern_network.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
全てを計算させるには右クリックからCook Selected Nodeを選びます。</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7Z6As2PrqQcmFxRiq6V7hrkth1iLMtCo4vqyyXZzlklQ45rWsf5DIInqwGeXfb72VGpHElsOSKgLAXcuO1E6G1a7im8sdmZxqDJK1dzKGz1sKCNafAyy6l6xJ2tpj5ZJNmYWvY5RpyVwZ/s1600/cook.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="774" data-original-width="373" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7Z6As2PrqQcmFxRiq6V7hrkth1iLMtCo4vqyyXZzlklQ45rWsf5DIInqwGeXfb72VGpHElsOSKgLAXcuO1E6G1a7im8sdmZxqDJK1dzKGz1sKCNafAyy6l6xJ2tpj5ZJNmYWvY5RpyVwZ/s400/cook.jpg" width="191" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
以上です。</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; text-align: left;">Houdiniアドベントカレンダーは2016年から続いています。</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; text-align: left;">Houdiniのほとんどのテクニックは古くならずいつまでも使えるものが多いので是非読んでみて下さい。</span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; color: #4a4a4a; font-family: , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , "hiragino kaku gothic pron" , , "meiryo" , sans-serif; font-size: 16.1px;">2018年 </span><a class="autolink" href="https://qiita.com/advent-calendar/2018/houdini" style="background-color: white; box-sizing: inherit; color: #337ab7; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Kaku Gothic ProN", メイリオ, meiryo, sans-serif; font-size: 16.1px; text-align: start; text-decoration-line: none;" target="_blank">https://qiita.com/advent-calendar/2018/houdini</a></div>
<a class="autolink" href="https://qiita.com/advent-calendar/2018/happrentice" style="background-color: white; box-sizing: inherit; color: #337ab7; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Kaku Gothic ProN", メイリオ, meiryo, sans-serif; font-size: 16.1px; text-align: start; text-decoration-line: none;" target="_blank">https://qiita.com/advent-calendar/2018/happrentice</a><br />
<span style="background-color: white; color: #4a4a4a; font-family: , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , "hiragino kaku gothic pron" , , "meiryo" , sans-serif; font-size: 16.1px;">2017年 </span><a class="autolink" href="https://qiita.com/advent-calendar/2017/houdini" style="background-color: white; box-sizing: inherit; color: #337ab7; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Kaku Gothic ProN", メイリオ, meiryo, sans-serif; font-size: 16.1px; text-align: start; text-decoration-line: none;" target="_blank">https://qiita.com/advent-calendar/2017/houdini</a><br />
<span style="background-color: white; color: #4a4a4a; font-family: , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , "hiragino kaku gothic pron" , , "meiryo" , sans-serif; font-size: 16.1px;">2016年 </span><a class="autolink" href="https://qiita.com/advent-calendar/2016/houdini" style="background-color: white; box-sizing: inherit; color: #337ab7; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Hiragino Kaku Gothic ProN", メイリオ, meiryo, sans-serif; font-size: 16.1px; text-align: start; text-decoration-line: none;" target="_blank">https://qiita.com/advent-calendar/2016/houdini</a><br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-79653595056451437442019-03-28T03:06:00.000+09:002019-03-28T03:06:13.177+09:00note始めました。<span style="color: #222222; font-family: Arial, Helvetica, sans-serif;">実験的ですが、Blogと何かが変わるのかと暫く続けてみようと思います。</span><br />
<div style="color: #222222; font-family: Arial, Helvetica, sans-serif;">
2つnoteを書いてます。</div>
<div style="color: #222222; font-family: Arial, Helvetica, sans-serif;">
<br /></div>
<div>
<span style="color: #222222; font-family: Arial, Helvetica, sans-serif;">Linux vs Windows10パフォーマンス対決その1</span></div>
<div>
<span style="color: #222222; font-family: Arial, Helvetica, sans-serif;"><a href="https://note.mu/sugiggy/n/n2528d8526ea7">https://note.mu/sugiggy/n/n2528d8526ea7</a></span></div>
<div>
<br /></div>
<div>
Linux初心者のLinuxとWindowsのデュアルブート環境構築(その1)。</div>
<div>
<a href="https://note.mu/sugiggy/n/ne0631ec9f933">https://note.mu/sugiggy/n/ne0631ec9f933</a></div>
Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-69445324148067087252019-01-30T11:31:00.003+09:002019-01-30T11:41:19.334+09:00Houdiniが使われている良作これもワークショップの最初で紹介してきましたが、別の事に時間を使いたいのでまとめてみました。<br />
<br />
ハリウッドの大作はほとんどの作品で使われているので、<br />
なるべくあまり知られて無さそうなものを集めてみました。<br />
<iframe allowfullscreen="" frameborder="0" height="272" mozallowfullscreen="" src="https://player.vimeo.com/video/256401428?color=ffffff&title=0&byline=0&portrait=0" webkitallowfullscreen="" width="640"></iframe>
<br />
<a href="https://vimeo.com/256401428">BEAR</a> from <a href="https://vimeo.com/shedmtl">SHED</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
ゲームFarCry5 ダイジェスト (5分) 1時間のセミナーはこちら<a href="https://vimeo.com/273986776">https://vimeo.com/273986776<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="https://player.vimeo.com/video/272839285" webkitallowfullscreen="" width="640"></iframe></a>
<br />
<a href="https://vimeo.com/272839285">Far Cry 5 | Ubisoft | Houdini Connect</a> from <a href="https://vimeo.com/goprocedural">SideFX Houdini</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="https://player.vimeo.com/video/248525333" webkitallowfullscreen="" width="640"></iframe>
<br />
<a href="https://vimeo.com/248525333">Logitech - Powerplay</a> from <a href="https://vimeo.com/simonholmedal">Simon Holmedal</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="https://player.vimeo.com/video/213856925?color=7d7d7d&byline=0&portrait=0" webkitallowfullscreen="" width="640"></iframe>
<br />
<a href="https://vimeo.com/213856925">Main Road Post "Attraction" VFX breakdown ' 2017</a> from <a href="https://vimeo.com/user2598677">Arman Yahin</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="https://player.vimeo.com/video/169599296?color=949494&title=0&byline=0&portrait=0" webkitallowfullscreen="" width="640"></iframe>
<br />
<a href="https://vimeo.com/169599296">2016 AICP Sponsor Reel - Dir Cut</a> from <a href="https://vimeo.com/methodcreative">Method Studios</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="https://player.vimeo.com/video/192130017?color=ffffff&title=0&byline=0&portrait=0" webkitallowfullscreen="" width="640"></iframe>
<br />
<a href="https://vimeo.com/192130017">Nike ~ Air Max 2017</a> from <a href="https://vimeo.com/mvsm">ManvsMachine</a> on <a href="https://vimeo.com/">Vimeo</a>.Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-3037874891123608962019-01-28T10:51:00.014+09:002023-03-23T13:22:40.395+09:00Houdiniのメリット・デメリット<div style="background-color: white;">
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;">
毎年ワークショップ1週目に力説しているところなんですが、他のことに時間を使いたいのでまとめてみました。</div><div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;"><br /></div><div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;">2023年3月アップデート。</div>
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;">
<br /></div>
<b>メリット</b><br />
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;">
<b><br /></b>
<b>・ソフトウェア設計・UIの一貫性</b></div>
</div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
何を作るにしても似た方法で行えます。スキルの応用が容易で、新機能への対応も素早く行える。記憶に頼らずに済みます。</div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<b>・ファイル内容・作業工程の可読性の高さ、パラメーターの変更箇所など明確。</b></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<b>・データの透明性、<wbr></wbr>どんなデータがどこに入っているか明確、ビジュアライズ機能の搭<wbr></wbr>載。</b></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<b>・学習がし易い。</b><br />
プロシージャル、ノードベースのソフトなので他の人のファイルから作業順、作業内容が明確に分かります。<br />
<br /></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<b>・柔軟性が高く、そしてデータが扱いやすい。</b><br />
他のジオメトリからデータ転送、ジオメトリ・ボリューム・パーティクル区別なく扱えます。<br />アニメーションの伸縮、反転、他のフレームの値、形状の取得なども容易です。</div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<b>・最新テクノロジーの導入が早く、<wbr></wbr>毎年着実に大幅なバージョンアップが行われている。</b></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<b>・ファイルシェア、再利用のしやすい。ファイル間でのコピペ、ユーザー間でのシェアも非常にシンプル。</b></div><div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">別ユーザー間でコピペ出来るツールなども用意してある会社あります。</div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<b>・ファイルサイズが小さい。</b><br />
通常の3Dソフトと違い、ノードの情報のみ保存しているので10MB以上になるのはほとん<wbr></wbr>どありません。普段の仕事でも2ー3MB がほとんどです。</div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
堅牢なパイプライン構築・バックアップ・トラフィック負荷軽減への恩恵があります。</div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<div>
<b>・CG文法の理解が深まる。</b><br />
Houdiniで使われる用語の多くは、ハリウッドのCG制作のスタンダードな用語です。</div>
<div>
シーグラフや海外でのセミナーで話していることの理解度が高まります。</div>
</div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<b>・使用用途、ユーザー層の拡大中 。</b><br />
エフェクト、背景モデリングだけでなくモーショングラフィックス、CFX、<wbr></wbr>ライティング・LookDev・レンダーマネージメントでも普及しつつある。(ライティング・レンダーマネージメントではHoudini CoreでSolaris運用が安定性・シンプルさ・コストパフォーマンスが良いと思います。)</div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<b>・システム面でも環境構築しやすい設計。</b></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">豊富に用意された環境変数、HDAなどの仕組みのお陰でパイプライン構築コストが低いです。</div><div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">他の多くソフトは、プラグイン同士の連携のリサーチ、導入手続き、ライセンス管理等のコストが非常に大きい。(HoudiniでもArnoldもしくはRedshiftはおすすめです。標準レンダラーのMantraは柔軟性は高く、<b>何ライセンスでもフリーで使える</b>ので巨大なレンダーファームがある会社にはメリットがありますが速度は遅いですが、新しいレンダラーKarmaが解決しつつあります。Houdini用のプラグインはノードで用意されるのでシームレスに移行できます。)</div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<br />
<br /></div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<b>デメリット</b><br />
<b><br /></b></div>
<div style="background-color: white;">
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;">
・他の3D総合ソフトウエアよりも値段が高い。(とよく言われますが、上記のメリットを考えるとコストパフォーマンスは群を抜いて高いと思います。)</div>
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;">
<br /></div>
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;">
・キャラクターアニメーションの機能に関しては<strike>まだ発展途上</strike>。(18.5のKineFXで大きく進化しました。)</div>
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;">
(MIGSでこの会社<a href="http://shedmtl.com/en/">http://shedmtl.com/en/</a>のセミナーを見て、大分良い所まで来ていると思いました。リグ・アニメーションもHoudiniに移行しています。)</div>
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;">
<br />
・1 点物の手動モデリング等には向いていない。(ポリゴン編集はここ数年進化してきてはいます。)<br />
<br /></div>
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small;">
・マテリアル周りが弱い。(シェーダーは柔軟で中へ潜ればカスタムできますが、表のUIはオプションが足りない気がします。プロシージャルシェーダーの種類が少ない。)<br />
<br />
・ビューポートがMayaよりもレスポンスが悪い部分がある。(大量のポイントやポリゴン表示などはHoudiniは高速です。)</div>
</div>
<div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<br /><b>
その他のデメリットと回避方法はワークショップで解説しようと思います。</b></div>
Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com2tag:blogger.com,1999:blog-3964747409016033349.post-14493683388155079172018-12-10T11:36:00.000+09:002019-01-09T10:10:27.467+09:00失われたTransformを取り戻す。こちらはHoudini Advent Calender 2018 10日目の記事です。<br />
<a href="https://qiita.com/advent-calendar/2018/houdini">https://qiita.com/advent-calendar/2018/houdini</a><br />
<br />
ジオメトリの形状からTransform(位置、回転、スケール)を取得(作成)し、別ジオメトリを追従させる方法です。<br />
この間同僚にやり方を聞かれ、これまで何人かに同じ事聞かれたので記事にする事にしました。<br />
本当はこのような場面(Transformデータが無い)は出くわすのを避けるべきですが、<br />
データが連番ジオメトリしか残っていないっ!なんて場合に使えます。<br />
(基本AlembicやFBXでTransformデータが残っている場合はパラメーターをchで繋げるのみです。)<br />
<br />
以下は結果です。<br />
ドーナツ(Torus)ジオメトリのアニメーションに、ぬいぐるみ(rubbertoy)が付いて行っています。<br />
<div style="text-align: center;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/OLhugHxo724" width="560"></iframe><br /></div>
<div style="text-align: center;">
<br /></div>
<br />
Transformをつくる全体を簡単に説明すると、<br />
<br />
ポジションは全体の中心座標、回転とスケールは任意のポリゴン一枚からN、up、 pscaleを計算し、copy to points sopで流し込むという流れです。<br />
<br />
(このサンプルではTorusを適当にアニメーションしたものをObject引っ張り、Transformのデータは無いと仮定して進めています。)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE_n9nZxmzijI2_DrHPCJ_IUo6C8CQOrU_1UYHZq6VYbbzCiRi6SF1HeY_shGJ_cSVv4mdbB3Oo9HUvfPdSbbA8-7k_lAoBBWN09LkSAfz2OUwSyU8QEoLGI6m5cElj_8A-g6iZIYhiZpi/s1600/network2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="768" data-original-width="599" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE_n9nZxmzijI2_DrHPCJ_IUo6C8CQOrU_1UYHZq6VYbbzCiRi6SF1HeY_shGJ_cSVv4mdbB3Oo9HUvfPdSbbA8-7k_lAoBBWN09LkSAfz2OUwSyU8QEoLGI6m5cElj_8A-g6iZIYhiZpi/s640/network2.jpg" width="499" /></a></div>
まずはグリーンの部分、<br />
位置(中心座標)の取得ですが、ジオメトリをpack化する事で1point のみになり自動でpointの位置も中心にくるので楽で良いです。<br />
add sopで1pointつくり でHscriptのcentroidを使用しても良いと思います。<br />
<br />
次に回転、スケールを計算するオレンジの部分の説明です。<br />
<br />
Torusから任意のポリゴンを一枚選び残します。<br />
(今回は解説の為見やすいようビューポートで一枚選択してキーボードのdeleteキーを押し作成されたblast sopのオプションをDelete Non Selectedにしていますが、 blastのGroupに0とすればインプットのジオメトリを変えてもそのままの仕組みが流用しやすくなります。)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ8mMOlgBbxNIF3U1DivJZgP9kit6RjUdGXyQmv_jNUzrwkiMeJ_mzBEXLMlw-jdHx1mCfQe9E3-_qv6xyEYItJ1l2stm08yS5U52Zc9z0bDxT8eyBuv8shWusMUE9yZIR_7evg9B2R7l5/s1600/blast.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="438" data-original-width="841" height="329" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ8mMOlgBbxNIF3U1DivJZgP9kit6RjUdGXyQmv_jNUzrwkiMeJ_mzBEXLMlw-jdHx1mCfQe9E3-_qv6xyEYItJ1l2stm08yS5U52Zc9z0bDxT8eyBuv8shWusMUE9yZIR_7evg9B2R7l5/s640/blast.jpg" width="640" /></a></div>
<br />
次にNormal SopでPrimitiveにNを作ります。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Kc7th0iAYaUT0pvIW63Y8Vq7kPXdKREkLnXBsjH3Zjr-R3PgVBRd3c0duMhl-M1k8Znkxq2wLZm4-3M22Pze3iZap3RjE9b630zDGryTspAaxVuBWt8IBhynZdDa0QF6nquAGB7IPwru/s1600/normal_viw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="438" data-original-width="841" height="333" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Kc7th0iAYaUT0pvIW63Y8Vq7kPXdKREkLnXBsjH3Zjr-R3PgVBRd3c0duMhl-M1k8Znkxq2wLZm4-3M22Pze3iZap3RjE9b630zDGryTspAaxVuBWt8IBhynZdDa0QF6nquAGB7IPwru/s640/normal_viw.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf_Tz_AXNdUbTCxgtHPgSmhZAVr1iPnjKwd8PgFnM98QUz3IGNDKXnuuLD1Nmgpjkx13ohDS_AKa0ymNZSjM_T4YOToCFYu5AC1bMW8vCJUGRtdiRvXcHxGqJbmkPD1w3yYy9sbWlmkOKZ/s1600/normal_parmeter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="256" data-original-width="619" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf_Tz_AXNdUbTCxgtHPgSmhZAVr1iPnjKwd8PgFnM98QUz3IGNDKXnuuLD1Nmgpjkx13ohDS_AKa0ymNZSjM_T4YOToCFYu5AC1bMW8vCJUGRtdiRvXcHxGqJbmkPD1w3yYy9sbWlmkOKZ/s1600/normal_parmeter.jpg" /></a></div>
<br />
ここでpointタイプに作成してしまうと、次につくるupと直交した物にならないので要注意です。<br />
直交したNとupがあれば最後のcopy to points sopで回転として上手く作用します。<br />
<br />
次にUpとpscaleの作成です。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEUc8tAGf3F73jJt-Tkx8WA7tRhh9XaLbTfvVcQYRmPVbEntc0XOTdMpYyE0dh48YGTm5ggeuFWTMX7YE7pm3TS8cFB9pjmBsN5v1H9x3JLPS6AQy5n5fBE6vaEyZUIoZlwfY3MIHxb25_/s1600/up_pscale_view.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="438" data-original-width="841" height="333" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEUc8tAGf3F73jJt-Tkx8WA7tRhh9XaLbTfvVcQYRmPVbEntc0XOTdMpYyE0dh48YGTm5ggeuFWTMX7YE7pm3TS8cFB9pjmBsN5v1H9x3JLPS6AQy5n5fBE6vaEyZUIoZlwfY3MIHxb25_/s640/up_pscale_view.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
vector dir = point(0,'P',0)-point(0,'P',1); //ポイント番号0のポジションから番号1番のポジションを引き算しベクトルを作ります。</div>
<div class="separator" style="clear: both; text-align: left;">
v@up = normalize(dir); //ノーマライズして長さが1のupというベクトルにします。</div>
<div class="separator" style="clear: both; text-align: left;">
@pscale = length(dir)*3.5; //エッジの長さの変化をスケールとして扱うので、ノーマライズ前のベクトルdirのlengthをとりpscaleとします。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKGv-ACsgSmscnxtgNn1dL0JVd5puHlEV6DceQjjHuarRCJyo6uRRiMvyG57lkrA6qTPceHLbjLko3lmkelk2HA9bQ6YNYbxFVtsfnkNdix1NwLhP-bOUI9DDXUYPqfUvQjKS1YQ6ss0ly/s1600/up_pscale_parmeter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="256" data-original-width="619" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKGv-ACsgSmscnxtgNn1dL0JVd5puHlEV6DceQjjHuarRCJyo6uRRiMvyG57lkrA6qTPceHLbjLko3lmkelk2HA9bQ6YNYbxFVtsfnkNdix1NwLhP-bOUI9DDXUYPqfUvQjKS1YQ6ss0ly/s1600/up_pscale_parmeter.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
この手法の欠点は、ぬいぐるみジオメトリの初期状態をキープは出来ないので大きさや</div>
<div class="separator" style="clear: both; text-align: left;">
向きを調整してあげる必要があります。pscaleに3.5をかけているのはその為です。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
これでNとUp、pscaleができましたがNがprimitiveアトリビュートのままでは次のattribute copyでpack化した中心のpointに移せないので、attribute promoteでpointアトリビュートに変換します。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRqxelFuArMe6fChZlN7I9FJgsRrQQzqSJ-z_FegqM7VgO3vwu8G7wR7hU5s6Pss8TTWu8HCxNE7i6l5cALOVs9emfmSGFr9AX0yJK_evQ0YELpdEE6ddoH_E3u033K8LNGkTmsa9mOrAB/s1600/promote_parmeter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="256" data-original-width="619" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRqxelFuArMe6fChZlN7I9FJgsRrQQzqSJ-z_FegqM7VgO3vwu8G7wR7hU5s6Pss8TTWu8HCxNE7i6l5cALOVs9emfmSGFr9AX0yJK_evQ0YELpdEE6ddoH_E3u033K8LNGkTmsa9mOrAB/s1600/promote_parmeter.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
このNとUp、pscaleを左側のpack化したpointにattribute copyで渡します。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXVc2BzeQcw6qXGXavP7Nm7HBF5txm9F7v8WGDM6KjdzPj8ptHfB1PpT5qef33amsK_1ww_xAz5dWRUUGqaQ7_cPkFaHp3i_KPtA5z4h4Zym61-_C2sYz5FfcXmrdS2IuKEa7W6CXBvLGY/s1600/attrcopy_parmeter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="256" data-original-width="619" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXVc2BzeQcw6qXGXavP7Nm7HBF5txm9F7v8WGDM6KjdzPj8ptHfB1PpT5qef33amsK_1ww_xAz5dWRUUGqaQ7_cPkFaHp3i_KPtA5z4h4Zym61-_C2sYz5FfcXmrdS2IuKEa7W6CXBvLGY/s1600/attrcopy_parmeter.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
このポイントにcopy to points sopでぬいぐるみジオメトリを配置すると<br />
ドーナツ(Torus)と同じように移動、回転、スケールが反映されます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOCmdBEe6-q02Eu3ZycyqMX2aa96aGdaJ0UDBIYK6JgMc9wFvPPbA9tkycKBotYrERPVQGoDWVqMMgFI8BgcO3ptnvsYTjzZHKYxKjPGx55j23DmmvfN_VS-gDlK6pizjxC_fOQ-8ZhGqM/s1600/final_network.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="282" data-original-width="448" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOCmdBEe6-q02Eu3ZycyqMX2aa96aGdaJ0UDBIYK6JgMc9wFvPPbA9tkycKBotYrERPVQGoDWVqMMgFI8BgcO3ptnvsYTjzZHKYxKjPGx55j23DmmvfN_VS-gDlK6pizjxC_fOQ-8ZhGqM/s1600/final_network.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiViFrJIuBW_BM2GstPnfsWtGxtKrNaFlQTEmIWbochYptuTAjXr_PEnMyju_Mp0r3KF_YspawjZPoPolHeangZbgJ6FY81jWaU30mFD_IC-8bIA97J1sZPKHTRCxcFJ2kldEGIviy0xrzQ/s1600/final.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="438" data-original-width="841" height="333" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiViFrJIuBW_BM2GstPnfsWtGxtKrNaFlQTEmIWbochYptuTAjXr_PEnMyju_Mp0r3KF_YspawjZPoPolHeangZbgJ6FY81jWaU30mFD_IC-8bIA97J1sZPKHTRCxcFJ2kldEGIviy0xrzQ/s640/final.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
今回の様にポリゴンが斜めを向いている場合は、あらぬ方向を向いてしまうので、ぬいぐるみの初期の向きをTransform sopで調整しています。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
今回はオブジェクトの中心にN , up , pscaleを持たせましたが任意のポイントもしくは、プリミティブをpackにすれば、ポイントコンストレインやポリゴンコンストレインにも置き換えられます。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
以上です。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Houdiniアドベントカレンダーは2016年から続いています。Houdiniのほとんどのテクニックは古くならずいつまでも使えるものが多いので是非読んでみて下さい。</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://qiita.com/advent-calendar/2016/houdini">https://qiita.com/advent-calendar/2016/houdini</a></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://qiita.com/advent-calendar/2017/houdini">https://qiita.com/advent-calendar/2017/houdini</a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
<br />Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-6778193549895917052018-12-03T10:58:00.002+09:002022-07-06T00:48:34.448+09:00分布の種類をコントロールする。こちらはHoudini Advent Calender 2018 3日目の記事です。<br />
<a href="https://qiita.com/advent-calendar/2018/houdini">https://qiita.com/advent-calendar/2018/houdini</a><br />
<br />
<br />
スキャッターされる複数ジオメトリを配置具合に重みをつける方法を紹介します。<br />
<br />
ちなみにH17のHeight field scatterでは配置するオブジェクトにweightアトリビュートをを持たせる事で似たようなことができますが、<br />
こちらの方法はscatterポイントのアトリビュートをコントロールする事でより柔軟な表現が可能になります。<br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/55OmhgGKiE0" width="560"></iframe></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
全体のネットワークです。3種類のジオメトリをpointに配置しています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx90atyMBqm6OymYjnTj67MFJ0gkBmmnN4d5RqMzaxK3ovc7FWkATBxLE2kNhyphenhyphenO3LIFbj2oVXL97NpultXsCCjTVdZKp5hoj4Kdhyphenhyphen98vy3Ws6nylwulQ5n63P9pjo1AnC33hPWHy6TkS-_/s1600/network_all2.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="710" data-original-width="599" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx90atyMBqm6OymYjnTj67MFJ0gkBmmnN4d5RqMzaxK3ovc7FWkATBxLE2kNhyphenhyphenO3LIFbj2oVXL97NpultXsCCjTVdZKp5hoj4Kdhyphenhyphen98vy3Ws6nylwulQ5n63P9pjo1AnC33hPWHy6TkS-_/s1600/network_all2.jpg" /></a></div>
</div>
<div class="separator" style="clear: both; text-align: left;">
半径10のcircleにscatterし、そのpointにweight アトリビュートを持たせていきます。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr3s9QXr3cmdrhDVYOBQTFP-f32v1pQYAmM1XZW4npRcETkQzNwwT1ZXJ8tBV0basE9u6aFEXF9kEYCDkbneT5An-N2uY6Mm8If5Sh0H1NdEsCVxhOCvM8DHDKjKoQjx-B4GALZaD0WOhZ/s1600/weight_view.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="395" data-original-width="836" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr3s9QXr3cmdrhDVYOBQTFP-f32v1pQYAmM1XZW4npRcETkQzNwwT1ZXJ8tBV0basE9u6aFEXF9kEYCDkbneT5An-N2uY6Mm8If5Sh0H1NdEsCVxhOCvM8DHDKjKoQjx-B4GALZaD0WOhZ/s640/weight_view.jpg" width="640" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUVB-5rO1Gj5cxCJU9LHFFr3xxfbHqiQZavfRtVayX1cKIougdmLUDnsnMgJRZ1T3Fug8RvJaW1Wp-ugCBgpaRB3pDEel8rBx9eGHAmxOP75pSSBvrtbLbWyPDakT4YgdTnR69IkCQj0R_/s1600/weight_ui.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="203" data-original-width="321" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUVB-5rO1Gj5cxCJU9LHFFr3xxfbHqiQZavfRtVayX1cKIougdmLUDnsnMgJRZ1T3Fug8RvJaW1Wp-ugCBgpaRB3pDEel8rBx9eGHAmxOP75pSSBvrtbLbWyPDakT4YgdTnR69IkCQj0R_/s1600/weight_ui.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
今回は原点からの距離をweightにしています。weightのコントロールをrampで行いやすいよう、0-1の間に収めるよう10で割っておきます。</div>
<div class="separator" style="clear: both; text-align: left;">
確認の為、Cdにweightコピーしてビューポートで見えるようにしています。</div>
<div class="separator" style="clear: both; text-align: left;">
(今回は半径10のcircleに配置したので10で割るという簡単な方法をとりましたが、最大値、最小値を自動で求めて0-1にfitしたい場合はattribute promoteで出来ます。)</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
次にweightのコントロールし、そこからidアトリビュートを作ります。</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3BAbWD0qFEd05IBPyPfxnnCL4dldx7AtKHZ-0nWnwiWavWYiImg4DT3Yej5RXtfWGYeHI9tQYO4T0xAau8xlJJRqydpqXwBQ6Cf18y3MvS7KeHuFKRh-nTBLuognpphLIdNNOD6dMkXnB/s1600/id_control_ui.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="340" data-original-width="555" height="392" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3BAbWD0qFEd05IBPyPfxnnCL4dldx7AtKHZ-0nWnwiWavWYiImg4DT3Yej5RXtfWGYeHI9tQYO4T0xAau8xlJJRqydpqXwBQ6Cf18y3MvS7KeHuFKRh-nTBLuognpphLIdNNOD6dMkXnB/s640/id_control_ui.jpg" width="640" /></a></div>
<div class="separator" style="clear: both;">
float weight = chramp('weight',@weight); //下のランプで重みをコントロールしています。</div>
<div class="separator" style="clear: both;">
@Cd = weight; // ビューポートで確認。</div>
<div class="separator" style="clear: both;">
i@id = rint(fit01(weight,0,npoints(1)-1)); // weightからid アトリビュートを作ります。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqaI57-arNcokqgyC14nxo0wf-FyAubeXACRGanqLcfhSmoX4qxbaJp5iP_lQrLOXsQgI58LJsgyyZgf-Tyn53rDQ_vy4MfXWS-gWNxxrHio9qUHy_WgjduHGLI3NLE3gfQjU9clteqlxc/s1600/weight_chramp_ui.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="538" data-original-width="893" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqaI57-arNcokqgyC14nxo0wf-FyAubeXACRGanqLcfhSmoX4qxbaJp5iP_lQrLOXsQgI58LJsgyyZgf-Tyn53rDQ_vy4MfXWS-gWNxxrHio9qUHy_WgjduHGLI3NLE3gfQjU9clteqlxc/s640/weight_chramp_ui.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
0-1 のweightアトリビュートfitでを0-N のidアトリビュートを作ります。</div>
<div class="separator" style="clear: both; text-align: left;">
Nは今回は3種類のジオメトリを配置しているので、3種類をそれぞれpacked化しmergeしたものを2番目のインプットにさしnpointsを使用する事でNを求めています。</div>
<div class="separator" style="clear: both; text-align: left;">
今回は3つのジオメトリがあるのでそれぞれのptnum(ポイントナンバーは)は0, 1 , 2 となり最大値は2。</div>
<div class="separator" style="clear: both; text-align: left;">
npointsは何個ポイントあるかが返ってくるので3となるので1を引いています。</div>
<div class="separator" style="clear: both; text-align: left;">
最後にrintで四捨五入し整数値にしています。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbGotus9muEH2btAdG0lPkPYx-k5OYry-A6G-gXyDJ3_sGhpPoR6QGy7rD4GcPaSDdUadtku2wyrwQwF-A_2q5-bEpOzx5gpWVBAwnK14BjEVSMBJzG2widmWaujftmHRQQJ3iz6bHLYMK/s1600/weight_chramp_view.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="395" data-original-width="836" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbGotus9muEH2btAdG0lPkPYx-k5OYry-A6G-gXyDJ3_sGhpPoR6QGy7rD4GcPaSDdUadtku2wyrwQwF-A_2q5-bEpOzx5gpWVBAwnK14BjEVSMBJzG2widmWaujftmHRQQJ3iz6bHLYMK/s640/weight_chramp_view.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
上記の様にカーブで小さい値が多くなる様に制御した状態。これでidが小さいほうのジオメトリが多く配置されます。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRBPXGxT3m4PjOHSN-OEnUym6UqtGKMS4ge3V449e1wB93KkeOA8T1W3I8WsB8wP83s4pDjkegVoayh8LgSKfTSKGUdBjWC0SBtkwmEh21804JXSVU4cJNePLFTbxJzyh5tlKfeA_LPl6Q/s1600/copy_ui.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="280" data-original-width="530" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRBPXGxT3m4PjOHSN-OEnUym6UqtGKMS4ge3V449e1wB93KkeOA8T1W3I8WsB8wP83s4pDjkegVoayh8LgSKfTSKGUdBjWC0SBtkwmEh21804JXSVU4cJNePLFTbxJzyh5tlKfeA_LPl6Q/s400/copy_ui.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE7NmRz_AdNSo-i9gZfIvTwGbhnx0xA3g8-ovqPtKq5TW0GMpP3JbryxoxzHxpEGvT-9U8uSDagRMtxYCjmT5yjpWdGpviZ62wC1lPmXuzHxPqrJ19gtPqu7KD135DGFpMUo9QEKEhCBS8/s1600/blast_ui.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="187" data-original-width="449" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE7NmRz_AdNSo-i9gZfIvTwGbhnx0xA3g8-ovqPtKq5TW0GMpP3JbryxoxzHxpEGvT-9U8uSDagRMtxYCjmT5yjpWdGpviZ62wC1lPmXuzHxPqrJ19gtPqu7KD135DGFpMUo9QEKEhCBS8/s400/blast_ui.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
最後にcopy sopでstampを使用可能にし、blast でポイントナンバーがidにマッチしないジオメトリを消すことで</div>
<div class="separator" style="clear: both; text-align: left;">
スキャターされたpointが持つidにマッチしたジオメトリが配置されます。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNXnGbJ_Z4mB0Cg-j9I2kFkjLlG45Ci9kFxgLKpDoDumEwnajufGKEOxI38wa9cvn84ImL5k-VtkQ_9Ih3g441IAc_ZlksvAHY1Sj3C-6Ldz0jVWftz3XhYXn-hLdb4HYX6McvxiZNbvxW/s1600/copy_view.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="401" data-original-width="830" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNXnGbJ_Z4mB0Cg-j9I2kFkjLlG45Ci9kFxgLKpDoDumEwnajufGKEOxI38wa9cvn84ImL5k-VtkQ_9Ih3g441IAc_ZlksvAHY1Sj3C-6Ldz0jVWftz3XhYXn-hLdb4HYX6McvxiZNbvxW/s640/copy_view.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
以上です。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both;">
Houdiniアドベントカレンダーは2016年から続いています。</div>
<div class="separator" style="clear: both;">
Houdiniのほとんどのテクニックは古くならず、いつまでも使えるものが多いので是非読んでみて下さい。</div>
<div class="separator" style="clear: both;">
<a href="https://qiita.com/advent-calendar/2016/houdini">https://qiita.com/advent-calendar/2016/houdini</a></div>
<div class="separator" style="clear: both;">
<a href="https://qiita.com/advent-calendar/2017/houdini">https://qiita.com/advent-calendar/2017/houdini</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-86739010787604770862018-11-13T10:48:00.003+09:002018-11-13T10:55:51.610+09:00新しいScene Viewを作って古いViewを消けします。old_view = hou.ui.curDesktop().panes()[1].tabOfType(hou.paneTabType.SceneViewer)<br />
new_view = hou.ui.curDesktop().panes()[1].createTab(hou.paneTabType.SceneViewer)<br />
new_view.setIsCurrentTab()<br />
old_view.close()<br />
<br />
シェルフを右クリックでNew Tool..で登録しておくとワンクリックで出来て便利です。Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-80350508422719103112018-11-09T11:26:00.000+09:002019-07-31T11:07:13.059+09:00Twitter Houdini関連まとめ2018<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
世代を上げていくアニメーションテスト。 <a href="https://t.co/e3Q1KjR3NV">pic.twitter.com/e3Q1KjR3NV</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/1037913128443490304?ref_src=twsrc%5Etfw">September 7, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
この間のボロボロにするの試したらお手軽なのに良い感じ。アニメーションささせても破綻しないし。昔こういうのを手でやってたのが信じられん。game dev toolsいれてないけどvdbだけで問題なし。 <a href="https://t.co/oSnMC4Pe9Z">pic.twitter.com/oSnMC4Pe9Z</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/1001666558148694016?ref_src=twsrc%5Etfw">May 30, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
blenderで紹介されてた写真を絵っぽくするのをwrangleで実装してみた。<br />ボケつつも色の切り替わりはシャープな感じ良く思いついたなと思う。若干ボヤとしすぎかと思ったので輪郭抽出のアルゴリズム取り入れてみたら結構良い感じ。3枚目は副産物。Houdiniやってると先人の偉業を身近に感じる事が出来る <a href="https://t.co/aTT556ofG2">pic.twitter.com/aTT556ofG2</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/996611036647129088?ref_src=twsrc%5Etfw">May 16, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
整列シリーズの続き。ポリゴンを自動でレンガにしてくれるやつ。<br />前の木材同様、破壊ジオメトリ自動化の為に作ってるけどモデラーの人にも使ってもらえそう。洋風の城の外壁とか。 <a href="https://t.co/QCMYOxLOND">pic.twitter.com/QCMYOxLOND</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/994426924654088192?ref_src=twsrc%5Etfw">May 10, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
さっきのを応用すると着火システムとかも出来る。これはスタートポイントからの距離でやるタイプでテクスチャやシェーダーアニメーションも不要。 <a href="https://t.co/CyamMYL5sw">pic.twitter.com/CyamMYL5sw</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/992258905290899456?ref_src=twsrc%5Etfw">May 4, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
超シンプルだけど、どこでも使うやつ。attribute transfer じゃ出来ないから今日もやり方聞かれたのでファイル置いておきます。<br />nukeでもこういうのやりたい時多々ある。<a href="https://t.co/U7zd47mxiz">https://t.co/U7zd47mxiz</a> <a href="https://t.co/jsQbHWlER0">pic.twitter.com/jsQbHWlER0</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/992229165838594048?ref_src=twsrc%5Etfw">May 4, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
突然思い付いたvoronoiの内側のpieceだけ取り出して石をつくる。stamp使わずにすむから爆速に出来る。この間の整列の一例で1番大きい面で立つようにした。<br />フィジカルペイントも良いけどこういう方法が好きである。 <a href="https://t.co/WXyIrJXMLR">pic.twitter.com/WXyIrJXMLR</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/974477110860484608?ref_src=twsrc%5Etfw">March 16, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script><br />
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
第1ステップdone.<br />何も情報が無いバラバラなジオメトリを整列。これから色々出来る。 <a href="https://t.co/3OQr80ewKX">pic.twitter.com/3OQr80ewKX</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/973409483539075073?ref_src=twsrc%5Etfw">March 13, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-8630050605924244552018-07-18T09:33:00.002+09:002018-11-18T15:38:43.978+09:00CGワールド 2018年8月号<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOotzUhzFuaW7i_64cMi6fzn3q082lnhfS790HLhMuf9XmOTgRVI4vCR1aHVaLyjc2yF_a_iKQISCftLlLUayYnmCr6tgpt4fEerdsAptGzFGuZCqDuOZ2lcGo_atZuqfa-mnyO_9r6GpS/s1600/beforeAfter2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="810" data-original-width="720" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOotzUhzFuaW7i_64cMi6fzn3q082lnhfS790HLhMuf9XmOTgRVI4vCR1aHVaLyjc2yF_a_iKQISCftLlLUayYnmCr6tgpt4fEerdsAptGzFGuZCqDuOZ2lcGo_atZuqfa-mnyO_9r6GpS/s640/beforeAfter2.jpg" width="568" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-N0xT0lB8OicZ4d32fS4rWtEd91xmmO9_PW0NfbAIHooPJbL3KiEkDv_YEBagzFB591F2Zl44Y88BNZJiL70N3-2vG8Kt2UdzI3_4O4nmuzHP70MYNx-PY392pMmsGpuektfojqPPL6jn/s1600/StartEnd.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="410" data-original-width="1480" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-N0xT0lB8OicZ4d32fS4rWtEd91xmmO9_PW0NfbAIHooPJbL3KiEkDv_YEBagzFB591F2Zl44Y88BNZJiL70N3-2vG8Kt2UdzI3_4O4nmuzHP70MYNx-PY392pMmsGpuektfojqPPL6jn/s640/StartEnd.jpg" width="720" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">(クリック拡大)</td></tr>
</tbody></table>
<br />
CGワールドにHoudiniの記事を書きました。<br />
Twitterでも書きましたが、アートディレクタブルかつディティールの自動生成に重きを置いています。<br />
モニュメントバレーはワークショップで解説した内容とほぼ同じです。<br />
バリエーションの自動生成は一番最初のシンプルなジオメトリの形状を変えるだけなので触れてはいませんでした。Solver sopやHeight Field Erodeなどシムがある場合のやり方は、ワークショップの時は少しトリッキーなやり方を解説しましたが、一番簡単に行うにはobjレベルでノード全体をコピーしてしまうのが一番簡単です。takeでもいいですが個人的に好きではありません。<br />
<br />
ボロノイを活用した岩作成では、フラクチャーしたジオメトリの中にあるピースだけを取り出す方法と、VDBとBooleanを利用したエッジに浸食されたディティールを追加する手法の紹介です。マテリアルはMaterial Palletにあるのをそのまま使っています。<br />
締め切りとページの都合上一番大きい広い面で立たせる方法を書き切れなかったので今度ブログで補足出来たらと思います。<br />
<br />
<div style="text-align: center;">
<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="https://rcm-fe.amazon-adsystem.com/e/cm?ref=tf_til&t=timespace-22&m=amazon&o=9&p=8&l=as1&IS2=1&detail=1&asins=B07F9Q8L1X&linkId=3644626a29219e8db97f83f3b4b771db&bc1=000000&lt1=_blank&fc1=333333&lc1=0066c0&bg1=ffffff&f=ifr" style="height: 240px; width: 120px;">
</iframe>
</div>
<br />Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com3tag:blogger.com,1999:blog-3964747409016033349.post-87567455671757895542018-01-15T08:47:00.002+09:002019-07-31T11:08:34.453+09:00ワークショップ第2弾開催ワークショップ第2回目を開催する事になりました。<br />
詳細はこちら<br />
<a href="http://sugi-iggy.blogspot.ca/p/blog-page.html">http://sugi-iggy.blogspot.ca/p/blog-page.html</a><br />
<br />
導入編+(プラス)として新しくアドバンスな内容のもの3つ追加してあります。<br />
前回のサンプルもHoudini16以降の大幅なアップデートに合わせた内容に変更してあります。<br />
前回個人で参加して下さった方は80%オフになります。<br />
アドバンスな内容には、お問い合わせが多い以下の2つを含みます。<br />
<br />
<div class="separator" style="background-color: white; clear: both; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;">
MonumentValleyのデータはご依頼者から配布許可がでていませんので、解説のみとなりますのでご注意下さい。</div>
<div>
<br /></div>
<br />
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
公開許可でたのでアップ。MonumentValleyを作るモデリングな仕事。<br />
Height field・VDBのハイブリッド。有機系背景モデリングに最強の組み合わせかも。実際作業したのはこのウチの1つでバリエーションは自動生成。狙ってたものよりカッコ良いのが出てきて嬉し悲し。カクっとした形状出すのに苦労した。 <a href="https://t.co/hd3KPQKy60">pic.twitter.com/hd3KPQKy60</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/950237187865530368?ref_src=twsrc%5Etfw">January 8, 2018</a></blockquote>
<br />
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
初のリバースエンジニアリングな仕事。この動画の30分あたりのゲームの破壊で使われているエッジにディティールを足す方法。<a href="https://t.co/7PslaAWuNG">https://t.co/7PslaAWuNG</a><br />
UVを綺麗に作るのにえらい頭使ったけど、普段の仕事とは違って面白い。ほぼ完成。映像の仕事でも使えそうな気がする。 <a href="https://t.co/aSAcJczSCN">pic.twitter.com/aSAcJczSCN</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/843638633101955072?ref_src=twsrc%5Etfw">March 20, 2017</a></blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUrcXPwYyWGQInIx1oK7co5EDaMYfc0puSgqu7wVUJnbQVysIqpUj20UZUYpKnnjTAM7xz0nUAWHOqqrv9t8RKX_X-yOr8GAkLV52mZkNeQhefx2bxmX1T_5kLlr2lhvcm8YPJ3KyPCiou/s1600/edgeUv-1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="441" data-original-width="640" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUrcXPwYyWGQInIx1oK7co5EDaMYfc0puSgqu7wVUJnbQVysIqpUj20UZUYpKnnjTAM7xz0nUAWHOqqrv9t8RKX_X-yOr8GAkLV52mZkNeQhefx2bxmX1T_5kLlr2lhvcm8YPJ3KyPCiou/s400/edgeUv-1.gif" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
テクスチャは自分が描いたので下手ですみません。UVはvimeoで使用されている方法よりもハンドリングし易い形状になっています。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiad_cdBtju7-3ld-NWxOMxbg8TfOcarQ1XxRzbhvNIi1qAoTw-Sy1cHdn_LW6DdefFlkf1AvMhLFWsAHGTo5hQ0bbniBTNY5ZB6JcYZTu51HlYlCynM42xpVMmFG5PciEbbS5Y9B4-nmLv/s1600/edgeUV.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="360" data-original-width="641" height="359" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiad_cdBtju7-3ld-NWxOMxbg8TfOcarQ1XxRzbhvNIi1qAoTw-Sy1cHdn_LW6DdefFlkf1AvMhLFWsAHGTo5hQ0bbniBTNY5ZB6JcYZTu51HlYlCynM42xpVMmFG5PciEbbS5Y9B4-nmLv/s640/edgeUV.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px;">完璧ではないですがある程度複雑な形状でも使用可能です。</span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
お申込みは<a href="https://docs.google.com/forms/d/1AlNM-KISIpwZRokCBeZsWVEIN_EMJ5Ogz-HKlpNGICI/edit" target="_blank">こちらのフォーム</a>からお願いいたします。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://sugi-iggy.blogspot.ca/p/blog-page.html" target="_blank">ワークショップのページ</a>に載せきれていないものを、こちらに貼っていこう思います。</div>
<blockquote class="twitter-video" data-lang="en">
<div dir="ltr" lang="ja">
ワークショップのwebに載せきれていないものもありますので追加更新予定です。これは値を記録ヴィジュアライズする作例です。同じ仕組みで弾痕を残すエフェクトなども作れる様になります。 <a href="https://t.co/80pzlolPBb">pic.twitter.com/80pzlolPBb</a></div>
— 杉村 昌哉 (@sugiggy) <a href="https://twitter.com/sugiggy/status/953303027238211585?ref_src=twsrc%5Etfw">January 16, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<div class="separator" style="clear: both; text-align: left;">
2018/1/18 作例を追加いたしました。</div>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-video" data-lang="en">
<div dir="ltr" lang="ja">
今回 建築やリアルタイム系の方が前回より多いので1つ作例を増やしました。ワークショップの3か4周目に追加予定です。結構シンプルな仕組みで実現できます。 <a href="https://t.co/ngPumdwg8V">pic.twitter.com/ngPumdwg8V</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/954187236999942145?ref_src=twsrc%5Etfw">January 19, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-video" data-lang="en">
<div dir="ltr" lang="ja">
この間アップしたワークショップ3、4週目に追加予定のものに、くっ付く階段と敷地形状を自由に組み合わせられる仕組みを追加しました。ブーリアンが超強化されたのが大きいです。 <a href="https://t.co/HSD7KuTsf9">pic.twitter.com/HSD7KuTsf9</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/955313316603277314?ref_src=twsrc%5Etfw">January 22, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0tag:blogger.com,1999:blog-3964747409016033349.post-27237933205746310692018-01-15T08:39:00.003+09:002020-12-10T21:55:48.318+09:00R&D 忘備録<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
適当にライティングしたらアニメ塗りみたいになった。これはこれで面白い。Houdiniの文字が2重にでる見た事ないバグがでた。しかもフレーム毎に違う。 <a href="https://t.co/lq82GNS7Gw">pic.twitter.com/lq82GNS7Gw</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/946929168247377920?ref_src=twsrc%5Etfw">December 30, 2017</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
TreemapアルゴリズムをHoudiniで操れるようになった。 <a href="https://t.co/NwyOOsiBxu">pic.twitter.com/NwyOOsiBxu</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/942600387013632000?ref_src=twsrc%5Etfw">December 18, 2017</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
謹賀新年。<br />昨年中は大変お世話になりありがとうございました。<br />本年も何卒よろしくお願い致します m(_ _)m <a href="https://t.co/TE1ofGrjOl">pic.twitter.com/TE1ofGrjOl</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/947713462423244800?ref_src=twsrc%5Etfw">January 1, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">同僚のモデラーにTreemapアルゴリズムの事を聞かれて<br>去年色々なテストをしてたのを見せたらリアクションが良くて純粋に嬉しい。やはり数学は綺麗である。学校の授業もグラフィックを絡めて教えてくれたらもっと興味持てたのに。 <a href="https://t.co/uVpOfgfbV6">pic.twitter.com/uVpOfgfbV6</a></p>— Sugimura (@sugiggy) <a href="https://twitter.com/sugiggy/status/1037893074112995330?ref_src=twsrc%5Etfw">September 7, 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
今日のMIGSのセッションで見たツールをリバースエンジニアリングしてみました。hipファイル置いておきます。モデルをエリアで区画に分けポリゴン数が多い所を見つけやすくするです。データ量がシビアなゲームならではで良いアイディアだ。<a href="https://t.co/1TjoDu8A4l">https://t.co/1TjoDu8A4l</a> <a href="https://t.co/xt2EbIpdmn">pic.twitter.com/xt2EbIpdmn</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/940801146649706496?ref_src=twsrc%5Etfw">December 13, 2017</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="ja">
ツイッターでアップしただけで放置してたのを整理していたら、迷路作ったのがもう3年も前でビビった。vineももう消えてしまったからムービーも無くなってた。 <a href="https://t.co/ZWgi33bGjA">pic.twitter.com/ZWgi33bGjA</a></div>
— (@sugiggy) <a href="https://twitter.com/sugiggy/status/948776550056554496?ref_src=twsrc%5Etfw">Feb 2, 2015</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<blockquote class="twitter-tweet" data-lang="en"><p dir="ltr" lang="ja">これも動画無くなってたか。 <a href="https://t.co/lsJ3u77ZqP">pic.twitter.com/lsJ3u77ZqP</a></p>— (@sugiggy) <a href="https://twitter.com/sugiggy/status/961781592719945728?ref_src=twsrc%5Etfw">September 17, 2016</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
Sugimurahttp://www.blogger.com/profile/09755807583234374867noreply@blogger.com0