STYLYにPrefabをアップロードする方法はじめにHoudiniを使用して旗を作成し、Unityの頂点シェーダーで旗を動かすまでの手順を解説します。以下のような旗を作成します。必要なパラメータの洗い出し今回は、以下のような旗を作ることを考えてみます。パラメータを洗い出し以下のパラメータが必要になりそうです。Top)パラメータを定義し、モデルの形状として利用したい場合、HoudiniではSubnetworkを利用するのが定番です。Subnetworkはフォルダみたいなもので、内部にノードを持つことができます。Subnetworkの作成Networkビュー上でTabキーを押し、Subnetworkノードを作成します。Subnetwork作成Subnetworkの名前はFlagにします。名前をFlagにするSubnetworkへパラメータ登録Subnetworkの歯車アイコンをクリックします。以下のようなパラメータ編集画面が出現します。左側のリストからFloatを選択した状態で矢印をクリックすることでFloatパラメータ(実数を扱うパラメータ)を追加することができます。画面右側からはパラメータの範囲やパラメータ初期値を設定できます。10、初期値3のFloatパラメータを追加する手順をキャプチャしたGIF動画です。field_size_yを定義します。定義するパラメータ今回は以下のような数値を設定しました。パラメータの設定値パラメータの設定が終わったらSubnetworkを選択した状態でIキーを押し、中に入ります。今回作成したSubnetwork柱を作成する旗の柱の部分を作成するノード構成です。BoxノードBoxノードで縦に細長い箱を作成します。Boxノードの設定ch(“../height”)についてBoxノードのSizeのYの部分にch(“../height”)と入力されていますが、これはSubnetworkノードのパラメータheightの数値を利用するという意味です。Boxパラメータについてたとえば、Subnetworkのheightに3.0が入力されていた場合、BoxのSizeのYの部分にも3.0が入ります。heightに2.0が入力されていた場合、BoxのSizeのYの部分には2.0が入ります。TransformノードTransformノードTransformノードを利用して、Y方向に高さの半分だけ動かします。ch(“../height”)/2と入力することで、パラメータheightを2.0で割った数値だけ移動します。Groupノード最後のGroupノードを使って、柱にグループを設定しています。グループは、マテリアルを設定する際に必要となる情報です。旗を作成する次に旗を作成します。GridノードGridノードを使うことで、四角形が作成されます。Gridノード旗をそのまま重ねると位置がずれてしまう形状はこれで完成ですが、そのまま重ねると旗に柱が突き刺さったような配置になっており、形状が破綻しています。旗の位置修正Transformノードを使って旗の位置を合わせたものが以下です。実際にノードを見ていきます。Gridノード(動かす前の旗)動かす前の旗は以下のような配置になっています。旗の横サイズfield_size_xの半分だけX方向に動かします。TransformノードのXの部分に以下を入力します。ch("../field_size_x")/2旗をX方向に動かす柱の高さに合わせる旗の横サイズheightのY方向へ動かします。TransformノードのYの部分に以下を入力します。ch("../height")旗をY方向に動かすこの状態では、旗が半分だけはみ出ているので半分だけ下に動かす必要があります。旗がY方向に半分はみ出ている旗のY方向の位置を合わせる旗を半分だけ下に動かします。TransformノードのYの部分に以下を入力します。マージン値field_margin_topだけ下にずらして位置の調整は終わりです。TransformノードのYの部分に以下を入力します。-ch("../field_margin_top")旗をY方向にマージンの長さだけ動かす以上で位置調整は完了です。後からマテリアルを設定できるようにGroupノードを使ってグループを設定します。Geometryノードを使ってobjファイルをエクスポートします。OBJファイルエクスポートUnity上の作業エクスポートしたobjをUnityにインポートすると、以下のようにマテリアルがモデルが分けられた状態になっています。旗OBJをUnityに取り込んだ状態FlagFieldとFlagPoleという二つのモデルが見えますが、これはHoudini上で設定したグループに対応したものとなっています。Houdini上のグループとUnity上で読まれるモデルの対応関係シェーダー・マテリアルの設定Projectビューで右クリックして、シェーダーを作成します。シェーダーを作成シェーダーを以下のように書き換えます。sin波を利用して頂点座標をZ方向に揺らすシェーダーです。col;}ENDCG}}}シェーダーを右クリックして、メニューの中からCreate/Materialを選択してマテリアルを作成します。作成したマテリアルを旗にアタッチすることで旗が揺れるようになります。・趣味はエフェクトに関係するものを学ぶこと。リアルとバーチャルが溶け合う、次世代のクリエイターの受賞作をご覧ください。リアルとバーチャルが溶け合う、次世代のクリエイターの受賞作をご覧ください。