Blenderグリッチ表現シリーズ四回目。
今回はテキストにグリッチをかけていきます。前回映像にかけたものを使ってもいいですが、テキスト用にもう一工夫しておもしろく、かっこよく仕上げていきたいと思います。
右図のようなこういうやつ
タイトルとか、動画のポイントに使えると思います。
アニメーションもさせます。完成品は最後の方に動画を載せています。

この記事は、Blenderのグリッチエフェクト:テキストグリッチアニメーションの作り方について解説した中級者向けの記事です。
難易度
テキストグリッチアニメーションの作成手順
- テキストの用意
- RGBを分離してズラす
- RGBの合成
- ズラすアニメーション用テクスチャを作る
- ズラすアニメーションを調整する
- アニメーションのタイミングをつける
- 完成
全体のノード構成

RGBを分離して赤、緑、青用にズラすアニメーションやノードを組んでいく感じになります。なのでノードが多く見えますが、実際やってることはそんなに多くないです。
①テキストの用意
Cubeでもなんでもいいですが、オブジェクトを出してジオメトリーノードでテキストを出します。
※テキストオブジェクトを使っても構いません。
好きなテキストを入力して、文字位置をセンターに揃えます。
Fill Curveノードで面を張って、マテリアルをセットします。

マテリアルはEmission、強さ3くらいでいいです。

レンダープロパティで、
- Film > Transparentにチェックで透過
- Color Management > View Transform > Standard(フラットな表現のとき、RGBの色が鮮やかになります)
に設定します。

あとはカメラを原点に持っていき、真上から撮影するように配置します。(ライトはいらないので消します。)
テキストの準備はできたのでCompositing エディタに移動します。
②RGBを分離してズラす
CompositingエディタでUse Nodsにチェックし、ノードを追加していきます。
プレビュー表示
まずはRender LayersノードのViewLayer横のアイコンをクリックして今の画面をレンダリングします。
それからViewerノードを出してつなぐと、背景に文字のプレビューが表示されます

プレビューの大きさ調整は画面右上の
Viewタブ > Zoom で調整できます。

Redを分離
Render LayersノードとComposite,Viewerノードの間に
Separate Color(Red出力) > Displace > Combine Color(Red入力)
Separate Color(Alpha出力) > Displace > Combine Color(Alpha入力)
をつなげていきます。これでRGBのR(赤)だけ分離できました。

例えばRedにつないだDisplaceノードのXScaleの値を100にしてみると、赤が右にズレ、Alphaの黒い色が元の位置にとどまっているのがわかると思います。(真っ黒い文字が下にあります、見えにくいかもしれませんが…)
文字をグリッチでズラすときは、RedとAlphaを同時にXScaleでズラしていきます。

Green, Blueも同様に分離する
Redでやったのと同様に、GreenとBlueも分離します。三色とも、Alphaも一緒にDisplaceノードをつないでズラしていきます。
それぞれ、赤、緑、青の文字が表示されることを確認してみてください。

③RGBの合成
RGBを合成するにはMixノードのAddモードを使います。
まず赤と青の出力をImageにつなぎ、Factorを1にします。
それから、残りの青を、もう一つMixノードを出してAddで足していきます。
赤、緑、青、それぞれの出力を足すと、白になったはずです。

④ズラすアニメーション用テクスチャを作る
今度は、DisplaceノードのXScaleでいい感じにズラすためにテクスチャを作ります。
Textureノードを出してNewでTextureを作成します。
詳細な設定はテクスチャプロパティで設定しますが、そのあとにScaleの値を調整しておいてください
※テクスチャノードの使い方がわからない方はこちらで解説しています↓

テクスチャプロパティの設定
- Type…Distorted Noise
- Distorted Noise > Noise Basis … Cell Noise
- Distorted Noise > Distortion … Cell Noise
などと設定します。最終的に細長い帯がランダムに並んだようなテクスチャができれば良いです。
グレーでいろいろな色があった方がいいのは、場所によってズレる量を変えたいからです。

文字をずらしてみる
例えば、赤とAlphaをずらしたDisplaceノードにMultiplyノードを挟んで、つないでみます。

Multiplyノードの下のValueには(あとで使うので、)Valueノードをつないで、値を変えてみます。
すると、文字の赤い部分が短冊形にランダムにズレたと思います。
⑤ズラすアニメーションを調整する
テクスチャしかつないでないと、ズレた赤が右にしか動かないし、値も均一な動き方しかしないので、もっとランダムに、両方向にズレるために調整します。

TextureノードとMultiplyノードの間にColor RampとMap Rangeノードをつなぎます。
Color Rampノードは白と黒の値を少なくして、真ん中あたりのグレーを多くするために入れています(遠いところにズレる部分も作りたいので)このグレーの配分は、調整しながらすすめてください。
Map Rangeノードは、0~1の値の範囲を-5~+5に広げて、両方向にズレるようにしています。
RGBすべてのDisplaceにそれぞれ違うテクスチャをつなげる
さっきはR(赤)とAlphaにしかつなげてなかったので、TextureノードからMultiplyノードまでを複製してG(緑)とAlpha、B(青)とAlphaのDisplaceノードのXScaleにも同様につなげます。

MultiplyノードにつながってるValueノードは、同じタイミングを使いたいので同じものをつなぎます。
このとき、それぞれつながっているテクスチャのパターンをバラバラにしたいので、OffsetのZの値にそれぞれ別の値を入れて、同じパターンにならないようにしてください。
RGBのDisplaceで、違うパターンを使うことによって、それぞれのズレ方がバラバラになり、より自然なグリッチに見えます。

⑥アニメーションのタイミングをつける
アニメーションのキーフレームを打っていきます。
とりあえずValueノードを0にしてIを押してキーフレームをつけます。

Valueノードを選択して、グラフエディタを開きます。
画面右側Modifiersタブを開いてAdd Modifierでモディファイアを追加します。
- Noise
- Stepped Interpolation
- Limits
を追加して、右図のように設定してみてください。

Noiseはスケールや強さ、間隔などを調整します。
Stepped InterpolationはInfluenceを少し下げます。
LimitsはMinimum Yの値を0に設定します。
⑦完成
結構長かったですね…。
できましたでしょうか。
慣れるまでは数値の調整が難しいかもしれませんが、いろいろいじってみると良いと思います。テクスチャの形を変えてみたりすると新しい効果が発見できたりします。
難しかったなーと思った方は、グリッチ表現のシリーズの記事を最初から読んでみたり、やってみたりするともう少しわかりやすくなる…かも?しれません。