タイリング出来るタイル

前回のノイズを使ってタイリング出来るタイルにノイズを与えてHDAとして公開してみました。

HoudiniIndieを契約しているインディーゲーム開発者の方は有用だと思います。

当初クリップで四角く区切ってたんですが無駄な頂点が発生するのとノイズによる境界線の断裂が
ひどかったので現状の自然な形にまとめました。

 

 

 

 

 

 

 

 

 

 

 

 

 

houdini indie ライセンスを お持ちならhdalcをotlsフォルダに入れることで使用可能です。

/objのレベルでTabを押してDigitalAssetsの中にEzLoopVoronoiTileという項目が増えていれば成功です。UE4やUnityなどで使用する場合hdalcファイルをそのままエンジンに読み込んで下さい。
マテリアルとテクスチャはお好きなものをお使い下さい。
Indie版以外のライセンス形態との同時使用は出来ません。

ゲームエンジン上でもHDAを直接読み込んでパラメータをいろいろいじれるのですがパフォーマンスを気にするのであればhoudiniやMayaなどで調整したうえでOBJとして出力して使うのがよいかもしれません。

以下パラメータ詳細になります。

 

Peakは破片同士の隙間の幅です。
Resampleは破片の周囲をどれくらいの間隔で分割するかという値です。

RemoviePiecesの中のパラメータに関しては
Threshoold of Area は その値より小さい面積のタイルは消されます。
RemoveRateはタイルを削除する比率です。削除する破片の組み合わせはRandomseedで調整出来ます。

Noise of Piecesの中のパラメータに関しては見ればなんとなく分かるかと。
ノイズタイプがいろいろ選べます。
Amountとかに大きい値を入れるとすぐに破綻します。要注意です。

X TileとZ Tileに関してはタイリングした時にどう見えるかを確認する為であり実際に使用する際には
1を入れて出力するのが妥当でしょう。

 

このアセットを作った際の学び

  1. polyExtrudeもPrimitiveの@zscaleのアトリビュートを渡すことでDistanceを制御することが可能に。
  2. HDAでパラメータをフォルダに区切った際TabとSingleなどの設定で挙動が変わるということ。
  3. HDAでOrderedMenuを使用する場合スイッチなどのインテジャー型のパラメータに対応する形で選択肢のリスト記述すること動作する。

Houdiniでノイズをループさせる

Houdiniでとある用途で必要になった為XZ平面に対してかけるノイズをループさせたいと思いました。

で思いついたのが新人の頃からやってるタイリングテクスチャを作る手法です。

簡単に言うと半分ずらしてアルファフェードをかけるという実に乱暴なやり方ですがノイズならあまりバレないだろうということで実践してみました。

hiplcファイルはこちら

シーンの中にあるloopNoiseという名前のpointwrangleにこんな感じの

コードを記述してあります。

頂点カラーにanoiseをかけて3×3でタイリングするとこんな感じになりました。

3×3なのに6×6に見えるのは半分ずらして重ねている以上ひとつの中に

2つ描いてしまっているのが原因かなと。

 

もっと良いやり方があれば是非ご連絡下さい。

プロシージャルモデリング超入門

今回はhoudiniのプロシージャルモデリングの初歩的なお話をしようと思います。

グリッドの端っこだけ外側に押し出して上にちょっと上げただけの簡単な例です。

まずgridSOPを出します。端っこのエッジを一つダブルクリックしてボーダーエッジ全部を選びます。

Mayaとかで結構ありがちな罠ですよね。履歴のパラメータをいじるとグチャります。houdiniでも同じことが起きます。

これは迂闊な非プロシージャルな作り方ですね。houdiniらしくないです。

では何故グチャったのでしょうか?それは

polyExtrudeSOPのGroupのところに元のボーダーエッジを表すエッジナンバーが固定値で羅列されているのが原因です。最初のgridSOPのRowsやColumnsを変更すると番号はコロコロと変わっていきます。これではずれますよね。

RowsやColumnsを変えてもグチャらせない為にはボーダーエッジを正しく取得してpolyExtrudeに渡してやる必要があります。

ではどのようにすれば良いのでしょうか?

同じことをhoudiniらしくプロシージャルにやってみましょう。

常に正しいボーダーエッジを得る為にはgroupSOPを使います。

gridSOPのすぐ下にgroupSOPを追加して

これで常に正しいボーダエッジのグループが取れました。

このグループ名を使ってpolyExtrudeSOPにボーダーエッジを渡してあげられます。

polyExtrudeSOPには生成した内容を幾つかのGroupとして記録してくれる機能があります。FrontGroupをチェックしてGroupとして登録しておけば上に持ち上げる時に利用出来ます。

手動でエッジを移動するのではなくtransformSOPに先程登録したグループを渡して上げてtranslateYの値を入れて持ち上げてあげましょう。

これで最初のgridSOPのRowsやColumnsをいくら変えてもグチャらなくなりました。

後からの変更に強く臨機応変に対応出来るプロシージャルモデリングの簡単な例をご紹介致しました。

他のDCCツールとは考え方が全然違いますね。

Softimageで言う所のロトスコープをHoudiniで

16もそろそろ出ようかという時にhoudini15.5メモ:
ビューポート上でdを押してdisplay optionをだしておいてから

この様に指定すればいい
perspではビルボード的な挙動になるがAuto-Place Imageのチェックを外すとXY平面になる。

実モデルの板でやりたい場合はgridにconstantシェーダを指定。
tgaではαが抜けなかったがpic(indie版ならpiclc)にすればαは抜けてくれる

新スクリプトの人柱募集中

えー、だいぶ更新も滞っておりましたがまだなんとか生きておりますよ。
相変わらず本業は綱渡りですが。

つい最近houdiniが15.5.565辺りからpolyBevelにカーブの角を丸める機能を追加して来ました。
SideFXのサイトのチュートリアル動画
ついこの間までの15.5.448とかでは使えなかったんですよ。
マイナーバージョンアップなのにかなりアグレッシブですよね。どこかのAutodeskにも見習って欲しいものですが。

BuR3ILOCIAAiDT2

で「これは便利だ…mayaにも欲しい…」(常日頃からhoudiniを買う様に上司に説得しているが聞き入れてもらえない)
という訳でリニアカーブの角を丸めるスクリプトを書きました。

リニアカーブ(直線のみで構成されたカーブ)を選択して実行すると
「元のカーブ名+Rounded」という名前のカーブと「ConstHistory」というグループが出来ます。
※このグループを消すと後から角の丸みの半径を編集出来なくなります。
ezRoundCornerOfLinearCurve

角の丸みの半径をいじるにはミニウィンドウでスライダを調整するか新しく生成された
Roundedという名前の付いたカーブのエクストラアトリビュートを中ボタンバーチャルスライダでグリグリいじって下さい。

スクリプトはココからダウンロードしてください。
CreativeCrashにも登録中(モデレート待ち)です

使い方はリニアカーブ(直線のみで構成されたカーブ)を選択してから
import ezRoundCornerOfLinearCurve
reload( ezRoundCornerOfLinearCurve )
ezRoundCornerOfLinearCurve.ezRoundCornerOfLinearCurve()
を実行して下さい。

現状ちょっと危ういんですが一番短いエッジの半分を角の半径の最大値としているのですが
たまにバーチャルスライダでグリグリやってるとmayaが落ちます。
シーンのバックアップ取るよーとかそんな生易しい事は言わずに全力で無言で即落ちます。
ヘタすると実行した瞬間に落ちる事があります。
いろいろ原因を探ってみたのですがよく分からないので一旦公開してどの辺りで落ちるのか
分かる方に見てもらった方が良いかなという結論に至りました(他力本願モード発動)
0a8e885a5563d0c5e6c35cdd20f6224b40995f061418017255

危険を承知で使いたい方もしくはバグ取り大好きな方は是非お試し下さい。

先日のMELをバージョンアップ

 

先日のMELにbase radius を足して表現力をアップさせてみました。

rgrg改
 

 

 

 


 

こんな感じのリングも周期性を持たせずに作成が可能です。
タイリングや極座標変換では出せないような密度感が出せます。
あと同じ事をやるのでも圧倒的に楽でバリエーションも作りやすいです。
調整次第では漫画の叫び吹き出しを作るのにも有効です。

以下、作例

 

コロナ風

惑星爆発の瞬間


次はクロスというか星形テクスチャ生成ツールでも作ってみますかね

放射状リングテクスチャ生成MELスクリプト

放射状リングテクスチャ生成MELスクリプトを書いてみました。

radialGradRingGenerator.melのダウンロード

↑右クリックして保存して下さい。
放射数を入力してgenerateボタンを押すだけです。
非表示にしてあるロケーターのExtraAttributeにRandomScaleとedgeWeightが有るので調整してみてください。
キーを打ってアニメーションさせても良いと思います。

radialGradRingGenerator

radialGradRingGenerator


勝手にバックグラウンドカラーなどを変更するのでmaya初心者の方は少々驚かれると思いますが。

mayaでの記号的なエフェクト素材作成

GCS2014龍が如くエフェクトメイキングでCG素材作成の補足として記号的エフェクト素材作成を紹介しましたがちょっと進行が早過ぎたので
(元々CEDEC用に作ってあったものを強引に縮めて30分にしたから)
ここで再度説明しておきます。

GCS2014でCG素材作成の補足として説明した部分のムービー

TOPビューでスクリーンショットを撮るやり方です。
※ Use No Light、Grid非表示、ビューポート2.0は頂点カラーがちゃんと表示されないのでレガシーの方で。
円柱を出して横の分割数を調整、上下の蓋を削除、上の頂点をすぼませます
エッジ部分にtransform componentをかけて真ん中にエッジループかけて頂点カラーをアサインして
ランダムのスケールで放射状リングの出来上がりです。

テクスチャのデフォーマーとしてもMayaは優秀です。

この辺MELかPythonで自動化しとくと楽かもしれませんね

houdiniのTIPSいろいろ

gdc2014関連のニュース

GDC2014の俺的主要なトピック

 

ヘッドマウントディスプレイ系

PS4向けの仮想現実対応HMD「Project Morpheus」を試してみた。実現した「殴れる仮想空間」をムービーでチェック(4Gamer)

SCEの「Project Morpheus」とはいったい何か。西川善司が“仮想現実対応HMD”の正体を探る(4Gamer)

インタビューと独自取材で見えた「Project Morpheus」7つの秘密。液晶パネルは特注品だが,有機ELパネル採用の可能性もアリ?(4gamer)

今年の華はVR!新型「Oculus Rift」とソニーの「Project Mopheus」を体験、それぞれの良さとは?(inside)

Oculusとは良い共存ができる、ソニーのVRヘッドセット「Project Morpheus」吉田修平氏に聞く(inside)


DirectX12

DirectX 12,ついに発表。その特徴に迫る(4gamer)


 

ゲームエンジン系

「Unity 5」のグラフィックスはここが新しい。動的光源処理を手軽にしたEnlightenとリアルタイムレイトレーシングの合わせ技とは(4Gamer)

「Unreal Engine 4」が月額19ドルで利用可能に。Epic Gamesがビジネスモデルを発表したメディアブリーフィングをレポート(4Gamer)

 ゲーム開発者へのアピールを狙うGoogle,2Dゲーム向け物理エンジン「LiquidFun」を公開(4gamer)

Autodesk製ゲーム開発用ミドルウェア「Gameware」の最新動向(4gamer)