ShapeとTransformと、時々自作ノード

久しぶりの更新ですが、今回は軽い内容です。

ぷちコンで Substance Desinger を使った、1例としてお読みいただければと思います。

さて、今回応募したぷちコン作品は4作あって、内3作はアストロロボ・SSKシリーズとして作成されています。

このシリーズ3作品はもちろん、プレイヤーキャラであるSSKのスケルタルメッシュは使いまわしています。

この3作品全てで使いまわしたアセットは、プレイヤーキャラであるSSKのスケルタルメッシュとタイトル画面の「アストロロボ SSK」のテクスチャだけです。

他のアセットは最大でも2作までしか使いまわしてません。

アセットの使い回しを裏の目標として掲げていたんですが、こちらはあまりうまくいかなかったと言わざるを得ない。

覇王翔吼拳を使わざるを得ない。

で、このタイトル画面で使用したテクスチャですが、実は"S"と"K"の文字はSDで作成しました。

何故使ったのか?…なんでだろう?Illustratorとか持ってないし、他にこういう図形の組み合わせがしやすいツールを思いつかなかったからかな…

SSKも文字だけは元ネタの『アストロロボ・ササ』のタイトル画面を真似たかったんですよ。

ただ、画像ソフトで普通に描いただけだとうまくいかない気がしたので、SDでSとKのテクスチャを生成、これを組み合わせてタイトルテクスチャを作成しようと考えた次第です。

実際に使ったのは [Shape]、[Transform2D]、[Blend]、[Level] の4つのノードのみです。たしか。

[Shape] はいくつかの基本形状を生成してくれるノードで、それらを組み合わせることである程度複雑な形状も作成できます。

例えば、こういう図形なら比較的簡単に作れます。

sd029.jpg  

だんご3兄弟。特に意味はない。

この [Shape] ノードには [レンガ] というパターン形状があり、これは普通だと [スクエア] と何ら変わらないのですが、[Pattern Specific] のパラメータをいじることで角丸の四角形を作ることが出来ます。

sd030.jpg 

元ネタのSの文字は角丸の四角形を組み合わせたような感じなのでこれを使いますが、このままだと端の部分が薄れてしまいそうなので、

これを [Level] ノードでくっきりさせて、あとは [Transform2D] ノードで移動や拡縮、[Blend] の加算と減算を組み合わせて作っていきました。

十分納得できるクオリティとはいえないものの、元ネタっぽさは出たと思います。

ここで [Transform2D] を使う際の注意点。

適当な [Shape] ノードを [Transform2D] ノードで縮小すると、この図のようにタイリングした結果が出てきます。

sd031.jpg 

タイリング設定に限った話ではないのですが、SDでは各ノードが共通して持っている情報(タイリングや解像度)は入力イメージの情報や親(通常はSubstanceマテリアル)の情報を引き継ぎます。

これを相対的ではなく絶対的に設定するには、プロパティペインのこの部分を変更します。

sd032.jpg

こうすると絶対的な情報として設定が可能になるので、ドロップダウンリストから [タイリングなし] を選択すればこのようにタイリングがなくなります。

sd033.jpg

大抵、SDのチュートリアル動画を見ていれば出てくる項目ではあるのですが、知らない人もいるかと思いますので念のため解説しました。

もう1つ、[Transform2D] を使用する際の注意点ですが、2Dビューを使って適当に平行移動、回転、拡縮を行えばOK、というのであれば問題はないのですが、

正確な数値を用いたい、特に拡縮+回転を正確に行いたい場合は少し面倒です。

というのも、[Transform2D] の回転、拡縮パラメータUIは相対的なものだからです。

例えば、ストレッチの幅を50%、つまり半分にしたとしましょう。

sd034.jpg

ちょっと細すぎる気がします。もうちょっと太くしたいので60%を設定してみましょう。

sd035.jpg

さっきより細くなった!

このように、[Transform2D] ノードの回転と拡縮は、現在の状態に対して適用されるので、元の状態に対して絶対的な形では指定できません。

指定する方法としては、トランスフォームマトリックスの項目の右下にある [行列] ボタンを押して直接行列を設定するしかありません。

sd036.jpg

しかしこれを直接設定するのは難しいです。行列の意味がわかっていても計算が面倒なのに、行列って何よ?高校の時習った気がするけど…という大半の人にとっては意味の分からない代物でしかありません。

というわけで、[Transform2D] のように2Dビューで編集はできないものの、比較的わかりやすいパラメータ群でトランスフォームを設定できるグラフを作ってみました。

はい、ドン!

sd037.jpg

入力となるイメージを [Transform2D] ノードにつなげて、その結果を出力ノードに出しているだけです。

とはいえ、もちろんこれだけではありません。

まず、グラフの入力パラメータはこんな感じ。

sd038.jpg

↑クリックで拡大

次に [Transform2D] のパラメータの設定ですが、オフセットは入力パラメータの offset がそのまま設定できます。

最後にトランスフォームマトリックスのパラメータは空の関数を作成し、内部をこんな感じで作成します。

sd039.jpg

↑クリックで拡大

あとは入力がカラーの場合とグレースケールの場合とで2つの、でも内部は同じグラフを作成すればOKです。

コピーして入力だけ変更するのが簡単ですね。

完成したグラフを別のグラフで使うとこんな感じ。

sd040.jpg

パラメータとしてはこちらの方がわかりやすいですね。

2Dビューで編集するだけでいいのであれば通常の [Transform2D] を使用し、正確な数値が欲しい場合はこちらを使う、という感じで使い分けてもいいかと思います。

AbsTransformグラフをファイルで公開。

https://dl.dropboxusercontent.com/u/39588440/Substance/AbsTransform.sbs

自由にお使いください。