Fusion

FUI Design Toolで未来っぽいインターフェースを作る【Reactor】

こんな感じのインターフェースを作りたいと思ったとき、

Reactorから入手できるFUI Design Toolを使うといい感じに作成することができますのでご紹介します!

ツールの説明には記載がなかったので、FUIってなんの略かな?と思い調べてみたところFuture User InterfaceFictional User Interfaceなどといったキーワードがでてきたので、未来っぽいインターフェースを作るためのツールなんだなと理解しました^^

ちなみにReactorで「FUI」と検索すると、5種類のツールがヒットします。

これらを総称してFUI Design Toolと記載しており、この記事ではFUI Circlesについて触れていきます。

冒頭で紹介した動画はFUI CirclesとFUI Designerを使用して作成しています。Settingsファイルはこちらからダウンロードいただけますので、自由にご利用ください。

なおインターフェースはFUI Design Toolを使用して作成していますが、最後の部分の割れるようなエフェクトや途中で色味をノイズっぽくしているのは別のプラグインKrokodoveに含まれるPolyPlay3Dを使用しています。

KrokodoveもReactorから入手可能なツールですが有償版のDaVinciResolveまたはFusionStudioのみで利用可能なため、無償版をご利用の方は以下ノード構成の「ImagePlane3D」からMediaOut手前の「Transform」までを削除するか「ColorCorrector」から直接MediaOutに接続してください。

それでは、ツールの使い方とカウントダウンするUIの作り方についてご紹介していきます!

そもそもReactorって何?という方やReactorのインストール方法を知りたい方は以下の記事で解説していますので、こちらもぜひご参照ください!

FUI Circlesの使い方

FUI Circlesは6つの円(CIRCLE SHAPE)と6つの線(DASH LINES)を組み合わせて使用することができるツールです。

ツールの初期状態はこんな感じで6つの円が並んでいます。

円のサイズや太さ、長さや角度などをアレンジしたり、線と組み合わせたりすることで図形を作成できます。

とりあえず太さとサイズ、色を適当にいじってアニメーションをつけるだけでも何となくそれっぽくなります^^

円を使ったモーションをさっと作りたい場合なんかにも使えそうですね。

パラメータ

FUI Circlesの設定項目は以下のとおりです。メニューが多数ありますが設定としては難しくないので一つずつ見ていきましょう。

CIRCLE SHAPE

円を作成するための設定項目です。

メニュー上部にあるSHOW/HIDE CIRCLES SHAPESにチェックをつけて、さらに各CIRCLE SHAPE設定のSHOW CIRCLE SHAPEにチェックをつけると円が表示されます。

デフォルトでは6つすべてのCIRCLE SHAPEにチェックが入っており円が6つ表示された状態となっています。

この項目で円の表示・非表示大きさや太さ色や角度などを設定することができます。

これら6つの円は番号の小さいシェイプが背面、番号が大きいシェイプが前面に位置するようになっています。

CIRCLE SHAPE 1から順に使いたくなると思いますが、この番号はシェイプの前後関係にかかわるため、状況に応じてシェイプの番号は気にしてあげてください。

というのも、円の中心から番号が小さい順に作成したところ図の矢印で示すような線が入ってしまいました。

このツールで円を作成すると、円の始点部分に対してこのような線が入ってしまうようです。

円が細い時には気になりませんが図のように太い円を作成した場合にはこの線が目立ってしまうので、外側の線が背面に配置されるよう番号が小さいシェイプを外側に使用することで回避できます。

この辺りは若干ツールのクセ的な感じですね。

各パラメータは以下のとおりです。

  • Shape X Sides:シェイプの頂点数を変更します。デフォルトは100(=円)ですが三角形や四角形、n角形にすることもできます。
  • LINE X RANGE:シェイプの始点から終点までの表示範囲を変更します。ここにキーフレームを打てばシェイプが出たり消えたりするアニメーションを設定可能です。
  • Size:シェイプのサイズを変更できます。
  • Angle:シェイプの角度を変更できます。1つのシェイプが影響範囲となり、全体の角度を変更したい場合はメニューの下部にあるROTATIONを使用します。
  • Offset Animation:Angleのオフセットとして使えそうです。(たぶん)
  • Thickness:シェイプの太さを変更できます。
  • Red:Redというパラメータが2つありますが、1つ目のRedは「Color」と記載すべきメニューでシェイプの色を変更可能です。
  • Red / Green / Blue:スライドバーでシェイプの色を変更可能です。
  • Type:Solid、Dash、Dot、Dash Dot、Dash Dot Dotからシェイプを構成する線のパターンを変更可能です。

DASH LINES

線を作成するための設定項目です。

CIRCLE SHAPEと同様に、SHOW/HIDE DASH LINESにチェックをつけた上で、各DASH LINES設定のSHOW DASH LINESにチェックをつけると線が表示されます。

円とは異なり、デフォルトではすべての線が非表示となっているため必要に応じて自分で表示させて見た目を調整する必要があります。

チェックをつけると3時の方向に1本だけ線が表示されるのですが、CIRCLE SHAPEと違ってすべてのシェイプ番号の初期位置が同じ(重なって表示される)となっています。

必要に応じて線の数やサイズ、位置を変更して使いましょう。

ざっくりした例ですが、DASH LINEの1-4までを使用すると図のようにシェイプを追加することができます。

円とは異なり、DASH LINEごとに色を変更することはできず線の色は後に出てくる「LOOK」メニューでのみ設定可能です。

現行バージョン時点ではDASH LINEごとに色を変えるなどの小回りはきかないようです。

DASH LINEは線を作成することができるツールですが、例示した図では「+」のマークが表示されています。

このツールではあらかじめFUIに使えそうなシェイプが用意されており、ただの線と合わせてこれらのシェイプを組み合わせて利用できるようになっています。

各パラメータを見てみましょう。

  • Line Count:表示する線の数を変更できます。初期値は1です。
  • Offset Line Count:線に対するオフセットで、線の全体数に対する表示・非表示を変更できます。
  • Height:線の高さを変更できます。
  • Width:線の幅(太さ)を変更できます。
  • Rotate:線ひとつひとつの角度を変更できます。
  • Offset Position:円の中心を軸に線を配置する場所(中心部~外側)を変更できます。
  • Offset Rotation:ひとつのDASH LINEシェイプ全体の角度を変更できます。
  • Subdivide Shape:名前を見るとシェイプの分割(頂点)数を変更できそうに見えますが、よくわかりませんでした^^;

上記パラメータが通常の線を作成して表示するためのパラメータですが、各シェイプの設定の末尾にある「SHOW CUSTOM SHAPE」にチェックをつけると、ツールであらかじめ用意されたFUIで使えるシェイプを表示させることができ、追加のパラメータが以下のとおり表示されます。

  • Show Type:TICKS、LINES、FRAMES、OTHERSの4種類から用意されたシェイプを選択可能です。
  • Custom Frames Selector:Show Typeで選択したシェイプの種類の中から、それぞれ用意された形状を選択することができます。バーを操作して値を変更すると、値に対応したシェイプの形状が表示されます。
  • Offset Position:円の中心を軸にシェイプを配置する場所(中心部~外側)を変更できます。
  • Scale:シェイプの大きさを変更できます。
  • Rotate:シェイプひとつひとつの角度を変更できます。

CENTER TEXT

円の中心にテキストを表示するためのメニューです。冒頭で紹介した動画では、左上に配置しているシェイプで使用しています。

他のメニューと同じく、SHOW CENTER TEXTにチェックをつけると表示されます。

使い方は難しくありません。各パラメータを見てみましょう。

  • Font Text Start:表示する数字の先頭につける文字列を設定可能です。
  • Font Number:表示する数字の番号を設定可能です。ここにキーフレームを設定すると指定範囲で数字を増減させることができます。
  • Font Text End:表示する数字の末尾につける文字列を設定可能です。
  • Font Case:Font Text StartとFont Text Endで設定した文字の大文字・小文字表示を変更できます。
  • Font Size:テキストのフォントサイズを変更できます。
  • XPosition Offset:X軸方向の位置を変更できます。
  • YPosition Offset:Y軸方向の位置を変更できます。
  • Font Rotation:テキストを回転させることができます。
  • Font:フォントの種類を変更できます。
ちなみに今回使用しているフォントは「DSEG7 Classic」と「DS-Digital」の2種類です。

DUPLICATE

DUPLICATEを使うと、これまでに作成したシェイプを複製することができます(Duplicateノードと同じような感じです)。

こちらのサンプルはこれまでの説明で作成したシェイプの複製数を5にしてScaleとRotationにキーフレームを打っただけのものですが、このような挙動を設定することができます。

パラメータは以下のとおりシンプルです。

  • Duplicate Number:シェイプの複製数を設定できます。
  • Duplicate Scale:複製するシェイプの大きさを変更できます。これに伴ってサンプルのような見た目を作ることができます。
  • Duplicate Rotation:複製するシェイプの角度を変更できます。
  • Fade Color:複製するシェイプに対して徐々に彩度を下げるような効果を加えることができます。

LOOK

このメニューでできることは次の2つです。

  • DASH LINEで作成した線に色をつける
  • 背景の透過設定
    Draw on Transparent Backgroundにチェックをつけると透過

TRANSFORMATION

このメニューではシェイプに対する奥行きやX,Y,Z軸方向の回転を設定することができます。

  • Distribute in Z:各シェイプの奥行きを設定できます。
  • Rotation X, Y, Z:X, Y, Z軸方向の回転を設定できます。
  • Scale:シェイプ全体の大きさを設定できます。

使い方だけで説明が長くなってしまいましたが、FUI Circlesはこのような感じで使用することができます。

EllipseノードやShapeツールを使用しても同じことはできると思いますが、1つのツールに各種設定がまとまっているので、FUI Circlesだけで完結できそうなことはこちらを使うと便利ではないかと思います!

FUI Design Toolでカウントダウン インターフェースを作る

続いてFUI Design Toolを使用してカウントダウンインターフェースを作成する方法について解説します。

メインのオブジェクトと、両サイドに配置しているオブジェクトのそれぞれについて確認していきましょう!

(補足)カウントダウンするUIなので、カウントダウン インターフェースと呼んでみました。

メインのオブジェクトを作成する

まずはじめに、メインのオブジェクトを作っていきましょう。メインのオブジェクトは上図のノード部分で構成しています。

※一番左に位置しているFUI Designerノードは画面両端に表示しているフレームみたいなものを表示させるために使用しています。ここでは詳細を割愛します。

ちなみにFUI Design Toolを使う場合、Backgroundノードを接続する必要があるようなのでFUI DesignerノードのInputにはBackgroundノードを接続しています。

メインのオブジェクトを作成するために、FUI Circlesノードを2つ使用しています。これは1つのFUI Circlesノードだけでは円の数が6つまでしか作成できず、6つ以上円を作成したかったので2つのノードを使用しました。

それぞれのノードを分解して見ていきます。

FUI Circlesノード1つめ

1つめのFUI Circlesノードで図のようなオブジェクトを作成しています。

このオブジェクトは円を6つ+線を3つ使用しており、すべてのCIRCLE SHAPEを使用しています。ポイントになりそうな部分を紹介します。

中心付近の水色の歯車のような部分

この部分は、3つのCIRCLE SHAPEで作成しています。

普通の円(CIRCLE SHAPE 2)を作成したうえで、円の外側にType「Dot」に設定した円(CIRCLE SHAPE 4)を配置してでこぼこ感を出しています。

また円の内側にはType「Dash Dot Dot」に設定した円(CIRCLE SHAPE 5)を配置することで、外側とはパターンの異なるでこぼこ形状にしています。

点線で構成される円が欠けたような部分

この部分は、DASH LINESで作成しています。

Line Countの値を大きくて線を増加させると円形に線が作成・配置されますが、Offset Line Countを調節することで図のように表示させることができます。

FUI Circlesノード2つめ

2つめのFUI Circlesノードでは、図のようなオブジェクトを作成しています。

このオブジェクトは円を6つ+線を1つ使用しています。

外周にある3つの青い曲線部分

通常のEllipseであれば1つの円に対してマスクを設定することで作成できそうなこちらの形状は、FUI Circlesで実現しようとすると3つのCIRCLE SHAPEが必要でしたためCIRCLE SHAPE 2, 3, 4を組み合わせて構成しています。

このような形状を多用したい場合には、おとなしくEllipseやShapeツールを使った方が早そうです。

ここまでに作成したオブジェクトをマージすることで、最終的な形状に仕上げています。

メインのオブジェクトが初めに表示されるときのモーションは、DUPLICATEの設定で6つに複製したうえでScaleを大きい値→小さい値にキーフレームを設定し、Rotationで回転を加えることで実現しています。

サブのオブジェクトを作成する

メインのオブジェクトが完成したので、周りに配置しているサブのオブジェクトの作成方法を見ていきましょう!

数字がカウントアップ&ゲージが増加するオブジェクト

こちらのオブジェクトは、FUI Circlesノード1つで実現しています。(後の工程でTransformやGlowノードに接続して見た目を調整しています)

作成方法を簡単にまとめると次のとおりです。

  • CIRCLE SHAPEで細い円を作成してアニメーションを設定
  • CIRCLE SHAPEで細い円の上に太い円を重ねて作成してアニメーションを設定
  • CENTER TEXTで0からカウントアップするようにアニメーションを設定

レーダーっぽいオブジェクト

このオブジェクトもFUI Circlesノード1つで作成できます。

作成方法は次のとおりです。

  • CIRCLE SHAPEで円を4つ作成し、外側の円を少し太くする
  • DASH LINESで線を1つ作成し、Offset Rotationで回転のアニメーションを設定する
  • SettingsメニューのMotion Blurにチェックをつけて、回転する線にブラーをかける
これらのようなオブジェクトをFUI Circlesノードだけで作成できるのが便利だと思います。

ランダムなテキストが表示されるオブジェクト

FUI Circlesは使用していませんが、右側に配置しているサブのオブジェクトについても少し説明します。

こちらのオブジェクトは、FUI Designerと変形ツール、Duplicateを使用して以下のとおり作成しています。

  • FUI DesignerのUI FRAMES SHAPEメニューでShow Type「Frame」Custom Frames Selectorから「7」のフレームを表示
  • テキストは別途Text+ノードを使用して「TextScramble」Modifiersでランダムテキストを表示
  • 作成したオブジェクトをZ軸方向(奥行き)に傾けさせたいので変形ツールを使用して「ヨー」の値を調整。そのほかのパラメータを使用して配置位置を設定
  • 最後にDuplicateノードで4つに複製、Offsetを調整してそれぞれが少しずつずれて表示されるように設定

ここまで作成したオブジェクトをすべてマージしてGlowノードに接続しています。最後に、Text+ノードでカウントダウン表示させている方法について説明します。

Text+でカウントダウンさせる

Text+でカウントダウンテキストを作成してマージすることで、カウントダウン インターフェースを完成させます。

カウントダウンさせる場合は「TextTimer」Modifiresを使用することもできますが、今回はカウントが0秒になった後もマイナス表示にならずに0秒のまま固定し、しばらく表示したかったのでText+のSettingsメニューにあるFrame Render Scriptに直接スクリプトを書いてカウントダウンさせる方法を選択しました。

言い換えると、TextTimer Modifiresを使ってカウントが0秒を切った後にマイナス秒表示にせず「0秒」のままキープさせる方法がわからなかったのでスクリプトで作成しました^^

もしかしたら、TextTimerで実現できる方法もあるかもしれません。

タイムラインのフレーム数に応じて秒数をカウントダウンするために、以下のスクリプトをText+ノードのFrame Render Scriptに記載しています。

min = 0
if (comp.RenderEnd-time-60)/30 > 0 then
	sec = math.floor((comp.RenderEnd-time-60)/30)
else
	sec = 0
end

count = string.format("%02d:%02d", min, sec)
Text1.StyledText = count

スクリプトとしてはあまり柔軟な表示ができるように作りこめていないのですが、59秒以下のカウントダウンができるように作成しています。

スクリプトで行っている内容について簡単に紹介します。

  • 変数「min」と「sec」を使用してフレーム数に応じた秒数を計算、secに代入。最終的に文字列として変数「count」に代入してText1.StyledTextに渡してカウントを表示
  • minは値を「0」決め打ちにしているので時間を増やしても0のまま(作りこめてません^^;)
  • secはFusionコンポジション上の「最終フレーム-現在のフレーム数」で残りのフレーム数を割り出し、フレーム数の30で割ってフレーム数→秒数に変換(フレームの最後よりも手前で0秒にしたかったのでオフセットとして「-60」して計算)
  • if ~ elseで、秒数が0以下になったらマイナスにせず0とする
  • secに格納する値は小数点すべて切り捨てとする(math.floor)
luaは勉強中のためおかしな点もあるかもしれませんがご容赦ください!

さいごに

今回はFUI Circlesに着目してご紹介しましたが、FUI Design Toolを使うとこのような感じのUIを作ることもできるようです。(結構大きめの音が出るので、再生する場合はご注意ください)

私自身まだまだ使い方を研究できていないですが、ルーラーやグリッドを表示してデザインすることもできますので、ぜひ使ってみていただければと思います!

Youtubeなどの配信用画面を作るのにも使えそうですね。

以上です!