チュートリアル / 読んで触ってよくわかる!Mayaを使いこなす為のAtoZ
第108回:今こそ使えるペイントエフェクト!(ペイントエフェクト活用術 その2)
- Maya
- エフェクト
- ゲーム
- コラム
- チュートリアル
- モデリング
- 初心者・学生
ペイントエフェクトには実は3Dビューとは別の「2Dモード」もあります。
大きく分けて2つの方法で使用できるので、違いを抑えておくとわかりやすいです。
・2Dキャンバスにペイントする
・3Dビューにペイントする(+3Dビューをペイントエフェクトモードにして、プレビューしながらペイントする)
使うペイントエフェクトのブラシは同じなのですが、どこに描くかで結果が変わってきます。
2Dキャンバスにペイントする
ビューのメニューで[Panels > Panel > Paint Effects]を選びます。
こんなところにPaint Effectsのメニューがあるのか!という感じですが、これでビューがペイントエフェクト用になります。
ペイントエフェクトの結果がプレビューされるビューとなります。
始めにご注意を伝えておくと、このペイントエフェクトのパネルは、昔からなにか挙動がヘンです。
画面が更新されるのか、されないのか、といった問題が昔からあり、最近はさらにViewport 2.0となったため、更にヘンです。
そんなもんだと思いながらお付き合いください。
ペイントエフェクトのビューになったら、パネルのメニューも変わります。
ここでは2Dキャンバスを見ていくので、[Paint > Paint Canvas]を選びます。
ビューがこんな感じで表示されるようになります。
もしうまくキャンバスに切り替わらないようでしたら、Mayaのプリファレンスをデフォルトに戻してみてください。
ブラシを選んでいなければ、素の丸いブラシのままですので、本当にペイントツールみたいに色で塗れます。
ではブラシを選んでみましょう。
この筆アイコンをクリックしてContents Browserを開きます。
面白そうなので[Animal > snaleBrown.mel]を選びます。
ペイントする前に上のツールバーのところで左右、上下をループさせる機能をオンにします。
ペイントするとこんなふうに、端をループしながらペイントできます!
こういう特徴的なブラシは楽しいものの、いかにも「ペイントエフェクト使った」感があるので使い所がむずかしく…。
もうちょっと意味の有りそうなものをペイントしてみます。
新しいキャンバスにするには左上のアイコンを押します。
キャンバスサイズを指定する場合は[Canvas > New Image…]で新しくします。
キャンバスの背景色は[Clear]で設定します。
Undoはzボタンで出来ないので、このメニューの[Canvas Undo]で行います。
こうやってエフェクト用の素材を作ったり、
こうやって髪の毛用のテクスチャ素材を作ったり。数ストロークで作れます。しかもアルファチャンネルありで!
草の板ポリ用のテクスチャを作れます!更に地面に貼る草のテクスチャなんかも。
このあたりまでは対象物に個性がそれほどないので、実用範囲ですね。
面白いのはWetInWetブラシです。
こちらを使うと「たらしこみ技法」が使えます。ブラシを選んで下記の点線のところをなぞると、ドロドロと溶けていきます!
とまあ、なかなかおもしろいペイントツールです。
このWetInWetなどは、実は3Dビューの世界でも影響を与えることが出来ます!
3Dビューにペイントする
ペイントエフェクトはポストエフェクトとしてレンダリングされます。
Maya Softwareでレンダリングしないといけませんが、シーンをレンダリングしたあとに適用されます。
ということは処理が速く、しかも特殊な事ができたりします。
空間に絵を描く、水彩で上から色を塗り足すということもできます!
有名なところでは、WetInWetブラシで背景を溶かす方法です!
上の図では、炎も描いて足していますが、円形が何やら歪んでいます。あれはWetInWetブラシで描いている部分です。
3Dシーンをレンダリングすると一発でこういったエフェクトの効いた絵を作れます。
昔Mayaのデモンストレーションで、キャラクタの表面にペイントエフェクトを描いて、WetInWetブラシを適用することで、歩いたあとの街並みが溶けていくような効果を作っていたような。
他にも例えば、キャラクタの動きに合わせてカーブを作っておき、順にエフェクトを発生させていく効果も作れます!
上のシーンでは、キャラクタの手と足の骨を選択して、次のPythonスクリプトを実行して軌跡に沿ったカーブを生成しました。
import maya.cmds as cmds
# 今のシーンの再生範囲の動きに合わせてカーブを生成。
startFrame = cmds.playbackOptions(q=True, min=True)
endFrame = cmds.playbackOptions(q=True, max=True)
# 選択している数だけカーブを生成。
selections = cmds.ls(sl=True, type='transform')
positions = [ [] for _ in range(len(selections)) ]
# 一度再生しながら位置を変数に記録。
for i in range(int(startFrame), int(endFrame)):
cmds.currentTime(i)
for j in range(len(selections)):
pos = cmds.xform(selections[j], q=True, ws=True, t=True)
positions[j].append(pos)
# カーブの作成
for position in positions:
cmds.curve(p=position)
既存のカーブにブラシを割り当てることが出来ます。
Brushのプリセットで何かしらブラシを選んで、ペイントエフェクトを描ける状態にしておきます。
それからカーブを選択して[Generate > Curve Utilities > Attach Brush to Curves]を選ぶと、ブラシを割り当てられます。
カーブのどこまでストローク(というかブラシ?)を表示するかというのは、アニメーションはstrokeノードにある[End Bounds > Max Clip]の値で調整できます。
0.0から1.0になるアニメーションをつければ、徐々にエフェクトが発生していきます。
植物など徐々に生やして成長させたいときは、Brushノードの[Tubes > Tube Completion]をオフにします。オンにするといきなり成長しきったものが表示されます。
上の画像では足元からの草と花はTube Completionオフにしています。ちょっとわかりにくいですが。
で、この成長表現ができるということは、文字をカーブで作っておいて、クレヨンなどのブラシを適用。
Max Clipをアニメーションさせれば、ものを描くアニメーションを作れます!とても簡単に!!
上の画像で使ったペイントエフェクトはメッシュ化してしまうと結果がかなり変わります。
Maya Softwareでレンダリングしないといけないという制限があります。
Arnoldを使いたいときは、一度Arnoldでレンダリングします。
レンダリング画像をImage Planeに割り当てて、再生しながらペイントエフェクトを適用する、という技を使っています。
次の画像も同じ手順で作っています。
指先で世界を溶かすとか。一周回って新しい表現のようにも見えてきました。
溶かすという表現はポストエフェクトとしてペイントエフェクトが実行されているから出来る技です。
まとめ
ペイントエフェクトも使いようによっては今も簡単な素材制作に使えます。うまく使いこなせば見たこともないような表現を作ることだって出来ます!
なにか特別な表現やアニメーションをさせようと思ったときに、世に出回っているツールを探す前に一度ペイントエフェクトに立ち返ってみると、案外簡単に作れることがあるかもしれません。
ぜひ活用してみてください!