Blenderでスケールワイプ

f:id:kaiware-daikon:20150116013009p:plain

レーザーで描画したようなエフェクトをスケールワイプと言うらしいですが、Blenderで出来ないかなと思ってやってみました。

テキストを作成

テキストオブジェクト"Text"を作成。文字列、フォント、サイズなども適当に設定しておく。

f:id:kaiware-daikon:20150116011128p:plain

格子状に細かく分割

テキストプロパティのOffsetで少し厚みをつけ(0.01くらい)、メッシュにコンバートした後、Remesh Modifierを適用。

Remesh Modifierの設定は次の通り。

  • Mode: Sharp
  • Octree Depth: 8
  • Scale: 0.9
  • Sharpness: 1
  • Smooth Shading: Off
  • Remove Disconnected Pieces: Off

f:id:kaiware-daikon:20150116011129p:plain

Remesh Modifier適用後、厚みを除去。

  • 平行投影(NumPad5)
  • 側面表示(NumPad3)
  • Limit selection to visible: Off

の状態で、上面または下面以外の頂点を削除するのが一番早いと思う。

f:id:kaiware-daikon:20150116011131p:plain

UV Mapを作成

すべての頂点を選択し、正面表示(NumPad7)でUV展開(Project from View (Bounds))。 その後、UV/Image Editorですべての頂点を選択し0.9倍にスケールし、UV Mapの名前を"ScaleWipeMap"に設定。

f:id:kaiware-daikon:20150116011132p:plain

頂点グループを作成

頂点グループ"ScaleWipeGroup"を作成し、すべての頂点を割り当てる。ウエイトはすべて0.5に設定。

f:id:kaiware-daikon:20150116011127p:plain

UVWarp操作用オブジェクトの作成

Emptyオブジェクト"UVController"を作成。Emptyの種類はお好みで。

UVWarp Modifierの設定

TextにUVWarp Modifierを追加。

  • From: UVController
  • To: Text
  • Vertex Group: 空
  • UVMap: ScaleWipeMap

VertexWeightEdit Modifierの設定

TextにVertexWeightEdit Modifierを追加。設定は以下の通り。

  • Vertex Group: ScaleWipeGroup
  • Default Weight: 0
  • Group Add: Off
  • Group Remove: On
  • Remove Threshold: 0.9 (0.5<RT<1.0なら何でもOK)
  • Falloff Type: Median Step
  • Global Influence: 1
  • Vertex Group Mask: 空
  • Texture Mask: Newで新規作成し、名前を"MaskTexture"に
  • Texutre Coordinates: UV
  • UV Map: ScaleWipeMap
  • Use Channel: Intensity

MaskTextureの設定

次のような画像を新規作成。

  • Name: MaskImage
  • Widht: 1024px
  • Height: 1024px
  • Color: 白(R=1,G=1,B=1,A=1)
  • Alpha: Off
  • Generated Type: Blank
  • 32 bit Float: Off

Image Mapping / ExtensionをClipに設定。

Hook操作用オブジェクトの作成

Emptyオブジェクト"HookController"を作成。

Hook Modifierの設定

TextにHook Modifierを追加し、次のように設定

  • Object: HookController
  • Vertex Group: ScaleWipeGroup
  • Falloff: 0
  • Force: 1

スケールワイプ!!

HookControllerを適当な場所に移動した後、UVControllerを適当に動かすとスケールワイプするはず。 ただしUVControllerの有効な座標範囲は[-1<=(X,Y)<=1]。

f:id:kaiware-daikon:20150116011130p:plain