TVトリプルアディショナル小張です。今回はデータフローを使用してみます。前のバージョンから標準で搭載されていますが、それほど使う機会がなかったので、私自身勉強を始めたばかりといったかんじです。そんなこんなで説明が間違ってる部分もあると思いますが、皆様が使い始めるきっかけになればと思い書かせて頂きます。2018.4データフローはパーティクルフローの機能として動作します。ツールを作成できます。標準のオペレータおよびテストと、アイコンを使用するオペレータおよびテストを作成できます。デフォルトで用意されているオペレーターでは表現しきれないことであったりを、パーティクルのデータにアクセスすることで、独自のオペレータを作れるといった感じでしょうか。複雑なものでなければ簡単に出来たりする上に便利なものや、標準のものと同じような機能でも処理が速く出来たりと、さわってみる価値はあると思います。実際に作っていってみましょう。最終的に、以下のようなシーンになるよう進めていきます。シンプルにタービュランスで動きをつけていきます。以降青文字部分は何のために作業したかの解説になります。こちらは割と紹介されていたり、サンプルシーンを見れば作れたりする感じなのでご存じのかたも多いかと思いますが、結構良い感じに動きがつくので気に入ってます。Icon、Displayオペレーターがあります。あまりにパーティクルが少ないと動きがイメージしずらいので、Birthオペレーターで発生数をトータル10000にしてあります。発生時間はシーンの尺と合わせているので最初から最後まで出続ける感じです。データオペレーターを使って動きをつけていきます。Operatorをドラグ&ドロップします。Vectorと名前を変更してます。Flowをクリックします。Flowの作成ビューが起動します。Standardをドラッグ&ドロップします。Vectorのままで大丈夫です。パーティクルの現在位置を読んでいます。次にRandomをドラッグ&ドロップします。Typeをベクターに変更します。vectorとして出力するのでそちらに合わせます。DistributionをTurbulenceV+Tに変更します。Vector値を読み込めるようになります。Standardをドラッグ&ドロップ。Vectorにします。TypeをTimeに変更します。試しにつないでみます。あまりに勢いよく弾けてしまってますが動作はしています。TurbulenceV+Tを調整し動きを修正します。ここではScaleを60、Strengthを0.05、Iterationsを1にしました。ある程度調整ができたので、試しにTurbulenceV+Tに別の時間データを割り当ててみます。Birthをに変更し繋いでみます。パーティクルの発生時間を読んでる?と思います。こちらの方が動きが面白い感じがしたので、こちらを使用したいと思いますがオフセットできるように先ほどのScalarと加算させようと思います。あるTypeを時間にします。計算方法は現状のままで良いのでFunctionはそのままにします。スカラーをつなぎます。これを動きのベースとします。仮にXY平面状に地面があるとして、Z軸にたいしてマイナス方向に行かないように設定してみます。こちらはデータフローのヘルプにも紹介されてる方法を真似ています。視認しやすさも考え、shapeをドラッグ&ドロップします。速度方向を向かせたいので、Rotationをドラッグ&ドロップ。新規でデータフローを作成し起動します。offsetと名前を変更してます。Componentにします。Componentにします。Averageにしました。Averageを減算します。FunctionをMinimumに変更しますスカラーをドラッグ&ドロップし0にします。これで0より小さい値に制限されます。Factorを-1と入力します。加算するためFunctionをドラッグ&ドロップ、TypeをRealに変更します。Componentとつなぎます。Component処理を最後にさせるため、PriorityをPostに変更します。パーティクルを速度方向に長くするため、Scaleをドラッグ&ドロップ。Xを1500%にしました。ある程度の時間がたった後、スケールダウンして消えていくようにします。こちらはデータフローではなく、通常のオペレーターで作業していきます。Testをドラッグ&ドロップします。任意の時間で次のイベントに受け渡します。ここでは80フレ後バリエーションは5フレです。空の部分にScaleをドラッグ&ドロップし新規のイベントを用意します。Scaleにアニメーションをつけます。TestとScaleのEvent(ここではEvent002)をつなぎます。Durationにします。直前のイベントのスケールを引き継ぎつつ、アニメーションはイベントに入った時から始めるため。ここで、Event002に入ったことでアニメーションや位置がリセットされてしまいました。必要なオペレーターをグローバルイベントに移します。速度用のデータフローと、Z軸を正方向にオフセットしたデータフローをグローバルイベントに移します。Rotationも一貫しているので、グローバルイベントへ移してしまいます。最終的にはShapeもグローバルイベントに入れてしまいました。次にEvent002でScaleが0.01%以下の極小のパーティクルを次のイベントに受け渡し削除します。Valueを0.01にします。TestとEvent003をつなぎます。マテリアルを割り当てます。Coordsにチェックを入れておきます。shapeにUVが付きます。Frequencyをドラッグ&ドロップします。全てのイベントで同じマテリアルを使用するので、グローバルイベントへ入れました。FrequencyのパラメーターでMulti/Sub-objectから割り振られる相対値を入力します。ここではID#1を80、ID#2を15、ID#3を5としました。Frequencyにアサインしてみます。問題無さそうなので、作業を進めていきます。マテリアルエディターで、Multi/Sub-objectを用意します。Standardマテリアルを用意し、とりあえずMulti/Sub-objectのスロット1に繋ぎます。Floatをつなぎます。Standardマテリアルを選択しコピー、Multi/Sub-objectの残りのスロットに繋ぎます。先ほどテストで貼ったグラデーションをそのまま使いたいので、3番目のStandardマテリアルのDiffuseに繋ぎました。Frequencyにアサインします。確認のためレンダリングしてみます。データフローで良く使用するパラメーターを展開してみます。Parametersを起動し、任意のパラメーターを選択しAddをクリックすることで展開できます。プリセットとして保存しロードすることで、一度作ったデータフローを簡単に再利用できるのは便利だと思います。最後にパーティクル発生数を10万にしてみました。こちらは発生数5万でArnoldでレンダリングしてみたものです。最後に私自身がまだ簡単なことしかできませんが、データフローを使ったものをいくつか紹介します。今回のシーンにさらに、速度に基づいてスケールをかけたもの。速いものはより長く、遅いものは短くなるように設定したものです。Iconの動きにタービュランスを加え、速度に基づいてスケール。速度に基づいてカラーリングしたもの。オブジェクトに割り当てられたテクスチャーを元に、パーティクルにスケールをかけたもの。オブジェクトからの距離に基づいて、パーティクルにスケールをかけたもの。等など色々と出来るので、使えるようになったら楽しそうだなと思います。今回のシーンファイルがダウンロードできます。/月(税込)*サブスクライブする(購入)*上記価格は年間契約の場合の1ヶ月あたりのオートデスク希望小売価格(税込)です。Maxを無償でご利用できます。Maxを30日間無償で体験できます。/月(税込)*サブスクライブする(購入)*上記価格は年間契約の場合の1ヶ月あたりのオートデスク希望小売価格(税込)です。第8回:tyFlow基礎(2019.10.18)トリプルアディショナル小張です。今回は何かと話題になっているtyFlowを使用してみます。30日間無償で体験できます。30日間無償で体験できます。製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。