エフェクト関係の記事を上げていこうかと思います。自分がわかる範囲であれば書いていこうかなと。エフェクト制作tktknkyo.hatenadiary.jpこの記事の続きというか、派生のような内容になります。こちらでは、クォタニオンで変更する角度をつかって、位置を制御しよう、という内容になります。こちらの方は、最初からモジュール作って処理作りました全体図としては、こうなっています。エミッター側から設定するためのパラメータは4つありますBaseLocationベースとなる座標になります。基本的にはParticle.PositionとなりますAngleそのまんま角度ですねRこれは半径となりますAddAngleByVector角度を加算するベクトル、という意味で具体的には、BP側で設定した、RotationをVectorとして、ここに適用します重要そうな部分だけを拡大するとこんな感じになります。Angle、つまり角度から方向を示す回転軸をつくります。角度から、SinとCosを取ってきて、そこからVectorを作ります。これの時点で、Z軸が0で正規化されているVectorにする事ができます。次に、BPから持ってきた角度の情報をクォタニオンに変換します。Quaternionでクォタニオンに変換します。Quaternionを使い、Vecorをクォタニオンで回転させます。これにより、元々あった方向のVectorがクォタニオンで回転したのでそこに半径であるRを乗算します。最後に、元の座標であるBaseLocationと加算して完成です。最終的に何をしたのかっていうと。Floatの角度からVectorを作ります。そのVectorにBPから取ってきた角度ベクトルで回します。最後に半径を掛けます。内容としてはこの三つになります。モジュールの名前は変わってはいますがこれが先ほどの手順で作ったモジュールになります。半径を200、角度を0~360のランダムそしてBPから取ってきたUser.Rotationの角度を代入するとこのように、斬撃のメッシュと角度が同じになるように作ることができます。(この白い粒子がそうです)また、BPからとってくるので、同じ数値を使えば、連動させるような挙動にすることも可能です。次に発生する角度の制御をしていきます。いえ、設定そのものは時間を取ってこればいいだけなので、非常に簡単です。Angleの部分に、Emitter.Ageなどの、エフェクトそのものが発生してからの、時間を取得してくるデータを入れてしまえばうまくいきます。前の記事の続きということで、今回は短いですがここまでになります。最近は更新頻度下がってきているので、何かしら更新続けていきたい所です。4VerはUE4.22.3です。今回は、Niagaraでクォタニオンを使ってちょっとした制御の方法を。サムネイルが一つの例です。モーションと合わせる部分は、割とゴリ押しなので、そこはご了承ください。こちらが、Niagara上で表示されているこのエフェクトです。エフェクト単体としては、水平に斬ってるだけの角度となっています。今回のこの斬撃のエフェクトは、モーションに合わせて角度を変更したい。固定の角度だけでなく、角度を変更しやすい作りにする必要がありました。管理面も考えて、一つのエフェクトに対して、BPに制御する事でモーションにあった角度で発生させるというのを目指しました。タイミングの関係で判りにくいですが、水平に斬るモーションに合わせて、水平に角度を調整しています。した応用として、このように、前方にそのまま飛ばしたりする処理も作ることができます。飛ばしてるエフェクトは、別途新しく作る必要はあります。【そもそもクォタニオンについて】まずクォタニオンについてですが、原理としては4元数とか、3つの虚数が、とかはありますが、ちょっと使う程度なら、原理的な所まではそこまで知る必要はないと思います。UE4などでクォタニオンを使う場合で知っておいたほうがいい事としては。4つの数値を持つ型である、という事4つの数値のうち、3つは回転軸を指定し、もう一つで角度を指定している、という事。原理から知ろうとするとややこしいですが、使うだけなら結構簡単です。今回は、この斬撃のをメインに例を出していきます。Niagara上で、水平に回転するという挙動を作っていきます。このようなメッシュがあったとします。(メッシュは使いたい物で大丈夫です)メッシュを回転させる為のモジュールは最初から入っています。Rateなどがその一つですね。Updateに入れて、Yawに-360と入れてみると、水平方向に回転するようになります。いうパラメータがありますが、これは回転の速度を制御します。数値を大きくするほど、高速で回転するようになります。ここに、カーブを入れる事で、回転をだんだん遅くしたり、早くしたりする事も可能です。このモジュール自体がクォタニオンで回転させています。中身としてはこのようになっています。デフォルトのモジュールはこれに限らず、結構複雑な事も多いです。重要になりそうなのは、この辺でしょうか内容としては、Yow、Pitch、Rollで指定した角度を元にクォタニオンを作っています。Quaternuonという関数が一番重要となります。設定したクォタニオンは、Particle.MeshOrientationに設定する事で、角度が決まります。このパラメータは、クォタニオンの型なので、クォタニオンで計算したら、そのまま適用出来る、というワケです。モジュール自体を使わなくても、この型のパラメータにすれば、角度の制御ができます。Inputにも、クォタニオン専用のデータがデフォルトであります。こちらは、回転軸と回転角度から指定すもので、こちらの方がイメージしやすいかもしれません。個人的にはこちらのほうが解りやすいとは思います。回転角度に固定値を入れても、そのままでは回ってはくれません。このように、カーブを入れる事で回転をしてくれるようになります。【クォタニオンでの回転の制御】ここまでは、単純にクォタニオンで回転させてただけなのでここから制御出来るようにしていきたいと思います。今回としては、モーションなどと合わせて回転させるのを目標とします。結論から言ってしまうと、回転軸をモーションに合わせて差し替えるだけですが。モーションから角度をとってくる部分は、ちょっとゴリ押しになります、そこはご了承ください。発生位置を、キャラに持ってきて、再生すると、このように真横に振ります。これ単体では動きません。Niagaraの、パラメータの部分で、このようにパラメータを追加します。までは固定なので注意してください、頭のみ大文字にしないと上手く反応してくれないようです。今回は、User.Rotationというパラメータを追加して、ここに角度を入れていきます。このパラメータを使っている部分に、BPで指定した数値が入ってくる、という事になります。tktknkyo.hatenadiary.jpここの制御法は、以前の記事で書いています、そちらも参照してください。ここから、このRotationのVector型のパラメータを使って、角度を制御していく必要があります。クォタニオンに変換する必要があります。今回は新規でモジュールを作成しました。内容としてはVectorをクォタニオンに変換しています。いうパラメータもありますが。Rateのモジュール内を見ると解りますがクォタニオンの角度の合成をする際に使用されています。ここで入れておくことで、綺麗に角度の合成をしてくれるようになります。Spawnに追加します中身は、BPから取得してきたUser.Rotationを入れます。Rateの方で回転させるようにしましょう。XYZをそれぞれ30に設定するとこのように角度が更新されました。XYZを固定値で入れて編集しているだけなので、キャラの向きを考慮してくれません。キャラクターが、地面に立っている状態、つまり2次元での角度のみで良いのであれば。自分はこのように設定して制御しています。攻撃を出すアクターの角度を取得し、そこからZ軸だけを変数に格納します。これにより、キャラの向きの動きを取得してこれるのでそこに固定値を足して、常に出したい向きにエフェクトが出るように調整します。今回はここまでとなります。次は、クォタニオンを使って、発生位置の制御をやっていきたいと思います。GameSynth今回は久々になりますがGameSynthの内容を今回はWhooshモデルという、風系の音を作るモデルでちょっとした作り方をというワケで簡単にいくつかの機能に触れてみようかと思います。機能の一部のみ触れる形になります、ご了承ください。デフォルトの時点でから、ある程度線をサムネのように引っ張ってあげるだけでもある程度それらしい効果音が作ったりはできます。画面の左下にある、ここのアイコンこれは、引いた線をランダムに配置しなおすような機能ですランダムに配置しなおすといっても、引いた線の数などは色々引き継がれます。このような太さがある程度違い、比較的に長めの線が複数あるという場合にこの機能で配置をしなおすとこの様になりました。向きなどはかなり変わっていますが、線の長さや本数などは、比較的維持されています。ある程度本数を引いたら、この機能を配置を変えて音を調整して、ある程度いい感じになったら、それをベースに使う...といった事が比較的にやりやすいです。線を引いて音を作れるといっても、どうやって引けばいいのか?となった場合にこの機能を使っていけば、比較的につくりやすいと思います。これで配置を変えたあとに、更に追加で線を加えたりもできるので最初のベースはランダムで配置し、その後自分で新しく線を引いたりする、というのも便利です。画面の左上にあるこのグラフは、時間と音量を設定しています。デフォルトがこの状態で右側に並んだアイコンから、ここを自動で変えることができます。自分自身で微調整も可能です。右側に6種類アイコンが並んでいますが。使い勝手がいいのが、特に下の二つになります。このグラフの上部にあるここが、効果音全体の長さになります。作るものによって、長さもだいぶ変わりやすいので再生しながら、ちょうどいい長さにここで調整しましょう。画面右上にはパラメータが並んでいます。いう項目の中には、4つ並んでいます。Rateこちらは、音に加えるノイズの間隔です右側になるほど、ノイズの間隔が狭くなります。Amountこちらは、音に加えるノイズの強さになります。強くすると、荒ぶるような音になります。強くすると、かなり濁った感じで目立ちやすくなります。Delayこちらは、音に加えるノイズの発生遅延になります。Attackこちらは、上げると恐らくですが、ノイズが滑らかになる、という感じでしょうかRateやAmountが高くても、こちらも高くすればノイズでの荒ぶり感は比較的に小さくなります。こちらは微調整というイメージになると思います。最初に重要になってきそうなのは、恐らくこの辺の機能だと思います。機能が多くて自分自身理解できていないところも多いですが定期的に記事に書いていけたらな、と思います。マテリアル制作VerはUE4.21.2となります。今回作ったものは、このような動きを作るためのものとなります。#UE4漸くやりたいことが、いい感じでできるようにメインは上から消えていくのですがそこにノイズを混ぜてみました。2019調整していくと、このようにグラデーションでのフェードアウトに対してノイズを混ぜたような描画を作ることが可能となります。全体の構造はこのようになっています。構造の解説まずは左側のこの部分からここは、フェードアウトに使うノイズの調整となります。今回は、ベースと歪み用は、同じテクスチャを使用しています。上部の方は、タイリング数をXとYでそれぞれ調整する為の場所となります。TexCoordに、定数を乗算すればその分がタイリングされるのでXとYをそれぞれパラメータ化して、インスタンス側でもいじれるように設定し。それをタイリング数となるようにしているのでインスタンス側から、自由にタイリング数を変更させる事ができます。下側は、テクスチャに追加するノイズとなります。歪みには、XとYがRとGのみ必要になるので、この二つのチャンネルを取り出します。ノイズはそのまま歪みに適用すると、大きすぎる事が多いので低めの定数を乗算して、ノイズの強度を調整しておくと綺麗になりやすいです。今回は、インスタンス側でも調整できるように、パラメータ化してあります。して出来上がった、タイリングと歪みの処理を加算してからテクスチャのUVsに接続します。次にこの部分となります。ここは、グラデーションとノイズを混ぜ合わせる役割となっております。テクスチャからSqrtに接続しています、これは必須ではありません使用するテクスチャに大きく影響しますが、フェードアウトの調整として、入れたほうが自然になりやすいかなと思います。TexCordからGチャンネルを抜き出しているのは、単純にグラデーションを持ってくる為です。当然ですが、ここを自身で容易したテクスチャを使っても構いません。その後は、ノイズとグラデーションを乗算します。その後に再度Sqrtに接続します。2回Sqrtを使っていますが、このノードは平方根を出してくれます。最後に平方根を入れているのはグラデーションとノイズを乗算すると、かなり色が黒くなってしまうので、そこからの調整をする為となります。グラデーションとノイズを混ぜた結果がこのようになっています。ノイズの模様も維持しつつ、グラデーションが掛かっているのが解ると思います。最後にこの部分となりますOPMとなるパラメータが、フェードアウトさせる場合の基準となる部分になります。エフェクトで使う場合は、ここを動かすことになるのでDynamicParameterに置き換えてくださいBPで制御する場合は、ScaleParameterで問題ありません。OPMは基本的に0~1でフェードアウトの範囲を決定します。そこに対して、先ほど作ったノイズとグラデーションを合成したものも、0~1の数値になっています。グラデーションを混ぜているので、上は数値が低く、下が数値が高くなっています。OPMのパラメータから減算する事により1から0になるにつれて、全体の数値が少なくなります。グラデーションが混ざっているので、下のほうから少しづつ0になる領域が増えていきます。最後に、Clampを使い0~1からはみ出た部分を0~1に収めます。エミッシブカラーは今回はあくまで機能説明なので、単色を使っています。ParticleColorやノイズを混ぜたりしてみてください。マテリアルとしては終わりですが、最後に一つやることがあります。デフォルト設定の場合、オパシティマスクの数値は、1/3以下で消される設定になっています。今回の、この設定の場合では、制御がどうしてもしにくいのでここを変更しておきます。作成したマテリアルから、インスタンスを作り下にある、ここのパラメータを変更してください。0にしたいところですが、0にした場合、うまく描画されないようなので小さめの数値を入れておきます。あとは、インスタンスのOPMのパラメータをいじると、ノイズが混ざったようなフェードアウトになってくれていると思います。今回比較的に使用するテクスチャに依存する部分がどうしても大きいので、そこはご了承ください...今回はここまでとなります。今回使用するVerはUE4・・・4.21.2Houdini・・・17.5.229今回は、HoudiniとUE4の連携的な内容をしていきたいと思います。書いてある手段とちょっとでもずれると、途端に解らなくなってしまい...という事があったので、記事に書いておこうと思います。今回は基本的なRBDによるシミュレーション前提となります。ほかのシミュレーションなどの場合は手段も恐らく変わってくると思います。Textureの略称ですVertexは頂点Animationはアニメーション、ざっくり言うと動きTextureはテクスチャ、ざっくり言うと画像3Dモデルの動きデータを画像に入れ込んだもの、と考えればいいと思います。VATを使うにはVATを作る機能は、Houdiniに最初から入っているわけではないのでデータをDLする必要があります。シェルフの部分の、UpdateでDL出来るはずです。具体的な手順が若干解っていない所もあります、ご了承下さいまた、自身はsteamのIndie版ですここが違うと、DLの仕方も変わってくるかもしれません。シミュレーションを作ってみるとりあえず、定番のシミュレーションを作ります。上空から落とすので、Centerをとりあえず2程度に設定しておきましょう。その後の設定はこのようにします。ノードの設定そのものは初期設定で問題ありません。最後はNUllノードを作り、解りやすくする為に、名前を「OUT」にしています。その後、OBJまで戻りここのシェルフにてシミュレーションを作ります。シミュレーションを作る際にこの様なメッセージが出てきます。左側をクリックしておきましょう。VATでもっていくには、シミュレーションをパック化しておく必要があります。ほかのシェルフなどで作る場合、UE4にもって行ったときに変な動きになることがあります。OBJネットワーク上に、DOPのノードが作られるので、中に入ります。今の段階で再生しても、ただ重力で落ちるだけとなっています。地面が作られていないので、地面を作ります。これで、地面に落ちて割れるシミュレーションが作られました。次に、VATに変換してUE4に組み込みます。VATの作成まずは、破壊したBOXを作ったノードに入りますOUTの下が、シェルフでシミュレーションを作った時に自動で作られたノードです。このままでは、若干解りにくいので最後にNULLノードを接続しておきます。名前はOUT_Simとしました。OUTネットワークに移動し、VATを作るノードを作成します。今回はRBDのシミュレーションを作ったのでRigid、を選択します。Nodeは、変換するノードを選択します。シミュレーション自体はDOPで作っていますが。DOPで作ったシミュレーションは、SOPで読み込んでいますなので、SOPの方のパスを選択しておきます。最後に作ったOUT_Simを設定しておきましょう。設定できたら、Renderのボタンで出力します。プロジェクトのExportというフォルダに出力されたデータが出てくると思います。UE4への組込みRBD用の場合は、メッシュと最後にPOSとあるテクスチャとROTとあるテクスチャが書き出されます。ここは書き出す種類によって変わってきます。この書き出した三つのデータをUE4にインポートします。次にマテリアルが必要になるので、新規でマテリアルを作ります。HoudiniのVATを作ったノードにこの様な部分があります。+のボタンを押すと開くので、この中身をコピー&ペーストでUE4に持っていきます。コードをコピーしたら、UE4のマテリアル上で貼り付けをすると、ノードが作られます。詳細設定の、ここの矢印をクリックで展開してここの設定を3にしておきます。Houdiniから持ってきたノード群にはコメントで何処に接続すればいいのか?が書いてあるのでそれに従い設定していきます。マテリアルは完成ですがVAtで動かすには、インスタンスを作っておきます。作ったマテリアルからインスタンスを作成します。インスタンスのこの5つのパラメータは編集する必要があるのでチェックを入れて編集します。ここに入れる数値はHoudini側の、この部分と同じ数値を入れる必要があります。インスタンスにある、ここの部分も編集する必要があります。Houdiniで生成したテクスチャを、ここでそれぞれ設定していきます。最後に、メッシュに、このインスタンスを設定すれば完成です。カスケードにて調整するでは次に、カスケード側で調整できるようにしていきます。VATの動きが、どこで動いているのか、という部分ですが左の方にひっそりとTimeのノードがあり、ここで制御されています。ここをDynamicParameterに差し替えればできます。時間の制御は、フレーム数ではなく、秒数なので注意が必要です。ここで一つ問題が出てきます。この時点でそのまま読み込むと、変な形になると思います。地面に落ちて割れるシミュレーションのはずがカスケードで読み込むと、変な動きをするようになります。原因は大きさで、InitialSizeを1に設定すると解決します。大きさが完全固定では面倒なので、制御できるようにします。カスケード側で大きさを変えると、移動量の計算がおかしくなるようです。マテリアル側で、ここの大きさを制御してる部分に、DynamicParameterを乗算します。する事で、カスケード側で大きさを変えれる...ようにはなりますが。InitiarSizeの大きさと同じにする必要が出てくるようです。乱数で制御したい場合は、どうしてもBPでの制御が必要になってきそうではあります。便利なので、デフォルトの時点で関数で極座標の処理をするノードが用意されています。いうマテリアル関数です基本はこれで問題無いのですが、スクロールなどのほかの移動などと合わせる際に、どうしてもややこしくなりやすい、うまく制御しにくい。いう部分が多少あったので極座標の処理そのものから作れば制御しやすくなるのでは?となったのが、今回処理を自作した理由となります。単体では全く変化がありません。加算すると、座標が動きます、スクロールの処理を入れたりするときに使ったりする手段でもあります。乗算すると、タイリングされます。インスタンスでタイリング数を制御したい場合などに使う手段でもあります。加算でノイズテクスチャを混ぜることでマテリアルそのものの歪み処理なんかも。制御するには、ある程度仕組み解ってないと厳しい部分はあるのでは?と。処理内容としては、恐らくですが、UVsに接続されたRとGチャンネルをそれぞれXとYに置き換えどこの位置にある数値を取得してくるのか?を定義しているのかなと思います。RとGが0.5の場合は、ちょうど中心を指定しますそして、このように定数を繋げる場合Texの情報のXとYが0.5の位置にある数値を、TextureSampleに適用する事になります。定数を接続する場合、色の情報を、一箇所からとってきて、それを全ての場所に適用する事になります。極座標を掛ける処理を考えるこちらはHoudiniで作ったものですが極座標で、いわゆるこの様な処理を作ります。X軸を半径Y軸を角度にするようにUE4のマテリアルで処理を作ります。半径の処理を作るまずは半径からUVsの接続に使われる情報は、接続している情報の座標をもってきますなので、Xを半径にしたい場合この右側のグラデーションの数値が、そのまま半径にします。左側が中心に、右側が外側になるようにします。左側の数値の低い部分を中心に右側の数値の高い部分を外側に持ってくるので円を描くようにすれば大丈夫です。0~1の数値になっていますが、黒い部分を中心に持ってきたいので0.5を減算する事により、-0.5~0.5になり、中心に0が来るようになります。次に、円を作る手段としては、三平方の定理を利用し、中心からの距離を取得します。三平方の定理には、XとYが両方必要になってくるのでGチャンネルも必要となります。三平方の定理は、高さと幅を2条し、その平方根が距離となるのでXとYを2条し、それぞれを加算のあと、平方根を出しますそうすると、中心からの距離を取得が可能となります。この数値はそのまま半径として使用できます。角度の処理を作る次に角度を生成します。Y軸が角度になるように処理を作りましょう先ほどの半径は、中心からの半径を出しました同じように、こちらは中心からの角度を出しましょう。この時にピッタリなArctangent2というノードがあります。Atan2と検索すれば出てきます。Atan2には、XとYの情報から開き角度を取得してくれるノードとなります。RがXでGがYなので、合うように設定します。上半分が真っ黒の理由は、0以下の数値になっているからです。ほかのツールでもそうですが、Atan2は角度を0~360ではなく、-180~180で取得する事が多いので上半分が0以下になってしまう、というワケです。真っ白の範囲が広いですが、これは角度をラジアン単位で持ってきているのが原因となります。この状態では非常に扱いにくいので、扱いやすい数値に変換しましょう。左下の3.142とあるのが、πの変わりとなります。表示上では3.142とありますが、数値的には3.141592になっています(これ以上の小数点以下は設定できないようです)これを加算する事で、全て正の数となります。(0~2π)この数値を0~1にしたほうが扱いやすいので2πで除算する事で、0~1に変換する事が可能です。作った角度を半径の処理を、それぞれ合わせて、UVsに接続する事で、極座標の処理が完成します。半径の処理のみで接続すると、このようになります。これは、RとGが同じ数値になるので、中心からの距離が同じ位置には、同じ場所の情報を参照してくる為です。角度の処理のみで接続すると、このようになります。半径は、同じ半径の部分に同じ情報を持ってきていましたがこちらは、同じ角度の部分に同じ情報を持ってくるのでこのようになります。最後に調整の部分です。最初の方で、持ってくる位置の情報は、小数点以下の数値を参照して持ってくる。この仕様を使えば、中心から外に動いたり、回したりする処理が簡単に作れます。半径の処理に、Timeで数値を加算すると、外側から中心に移動するようなスクロールとなります。ここの数値は、そのまま中心からの距離を取得しています。その数値が増えると、取得する距離が、どんどんと遠くなっていきます。中心であれば、0→0.25→0.5→0.75→1(小数点以下取得なので0)となる為です。こちらは角度の処理にTimeで数値を加算したものですこちらは左回りとなります。原理的には、半径のと同じとなります。原理が分かってくれば、非常に色々流用できる部分はあると思います。今回はここまでとなります。ここから追記です(2019/10/22)実際のデータがこちらになります中身を開いて、全て選択からマテリアル内に貼り付けてください。モデル制作Verは17.5.173です少し久しぶりな気もする、Houdiniの内容です。タイトルの通り、途中のフレームからシミュレーション結果を読み込みます。サムネイル見たら予想はできそうですが、RBDによるシミュレーションを今回使用しました。2019具体的にはこの様なものを作りました。今回の動き、最初の伸びる部分は、SOPで動きを作っています。高さなどを、操作できるようにしておいて、キーフレームで、時間に応じて変形するように作っています。今回、例えとしてBoxを使います。今回の目的としてはSOPで横に移動する動きの後にDOPのシミュレーションによって、Boxが落下してバラバラになるというのを作ります。Boxの下にTransformを接続しTranlateのZを時間で動くようにしました。当然ですが、Z軸に向かってBoxが動きます。この後にシミュレーションも入れるので、大きめにして、宙にも浮かせています。シミュレーションなので、ボロノイで割る処理も追加しておきます。Scatterのポイント数は100にしています。この時点でシミュレーションを追加します。シェルフから作りました。DOPの中に衝突用のメッシュは置いておきましょう、特に理由がなければGroundPlaneで良いと思います。SOPに戻り、シミュレーションを確認すると、このように割れています...がTransformによって、時間で移動させていた部分が、シミュレーション結果に入っていません。右上のワイヤーフレームが、Transformにて移動させた部分になります。シミュレーションに読み込む際に、最初のフレームの情報を読み込んでそこからシミュレーションを開始する用な仕様になっている様です。シミュレーションの結果の後から、動きをSOPで追加はできるのですが。場合によっては、それでは不都合な場合がどうしても出てくると思います。TimeShiftというノードを使います。このノードの下にある三つのノードは、シェルフでシミュレーション追加したときに自動で追加されてものです。ここのFrameという部分は、何フレーム目を表示するか?を設定する事ができます。デフォルトでは、現在のフレーム数と連動しています。ここを、30の固定にすると、常に30フレーム目の情報を持ってくることができます。今回のように接続するとOUTの前にあるノードで30フレームの位置から、シミュレーションを開始してくれます。TimeShiftで表示するフレーム数を固定してしまうので。Transformで横に動かした動きは、30フレーム目を常に取得してしまうので横への移動が一切なくなってしまいます。1~29フレーム目は、Transformで動かす挙動を作ることができません。シミュレーションが1フレーム目から始まってしまうので横に移動してから、という動きも作れなくなってしまいます。TimeShiftはフレーム数を固定してしまっているので。最初の1~29フレーム目では、TimeShiftを通らないように、この様にしました。新しくOUT_simが出来ていますがこれはシミュレーションの結果を参照しやすくするために作りました。switchノードによって、1~29フレームと、30フレームで読み込むノードを切り替えます。29フレーム目に設定したら、switchノードのSelectInputに0のキーフレームを打ちます。続けて、30フレーム目に1のキーフレームを打ちます。これにより、フレーム数により、接続情報が切り替わるようになります。切り替わるまでは出来ましたがシミュレーションは1フレーム目から始まっていますので動きが可笑しくなると思います。上のBoxが29フレーム目の位置で下のBoxが30フレーム目の位置になります。これは、シミュレーションの結果を途中から表示してしまっているのが原因となります。これの対処の為に、もう一つTimeShiftを追加しましょう。29と設定します、$Fが現在のフレーム数なので、そこから29を引き算しています。これにより、30フレーム目にシミュレーションの1フレーム目を読み込むことができます。今回はここまでとなります。11:13【Houdini】途中からシミュレーション結果に切り替えるTweet広告を非表示にするコメントを書くもっと読む次のページプロフィールid:tktknkyo主にエフェクト関係の記事を上げていこうかと思います。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。