Substance Designer Getting Started: 01 - Creating a base material part One
Getting Started 01: Creating a base material part One
入門01 ベースマテリアルの作成パート1
Substance Designer Getting Started: 01 - Creating a base material part One
Getting Started 01: Creating a base material part One
入門01 ベースマテリアルの作成パート1
6/20にSubstancePainterのメジャーナンバーではないバージョンアップが行われました。
以前アナウンスがあった通り、これまでのバージョンで区切りをつけるアップデート形式ではなく、随時機能追加を行っていくことになりました。
それに伴い、ソフト名も"Substance Painter 2"から"Substance Painter"になっています。
ソフト起動時に通知されていたバージョンアップのダイアログも出ませんので、今回はサイトからダウンロードする必要があります。
今回はソフト名が変わったからだと思いますので、恐らく次回のアップデートからは通知があるでしょう。
また、ライセンスキーも変更になっていますのでご注意ください。
公式のニュースリリース
ヘルプ
Version 2017.1 - Substance Painter - Allegorithmic Documentation
今回の大きな変更は2点、Substance Sourceプラグインの実装と、アセットの追加のようです。
今まではWebブラウザでSubstance Sourceサイトにログインしてマテリアルをダウンロードしていましたが、 プラグイン実装でSubstance Painter上から直接ダウンロードすることができるようになりました。
直接Shelfに格納できるので、今までのようにファイルをダウンロードしてインポートするという手間が省けます。
使い方は今までと同様、メニューバーにあるSubstance Sourceのアイコンで開けます。Webブラウザの代わりにプラグインでダイアログが開きます。
日本語や中国語のフォント、SF、幾何学、中世、ケルト風のアルファ画像、新しいフィルターなど、300近いアセットが追加されています。
標準の環境マップも修正されているようなので、少し黄色っぽく見える場合はそれが原因のようです。
パラメータで調整できるアルファ、フィルターが増えて作業の効率化ができそうです。
What’s new in Substance Painter 2017.1
前の記事を見てない方はこちらを
以下は断りの無い限り回転角は度数法を使用し、単位は省略します。
その1で、UnityでのGameObjectのクォータニオンを取る方法を説明し、加工するメソッドをざっと列挙しました。
大抵はこのメソッドを使ってやりたいことはできると思うのですが、もちろん例外も出てきます。
ただ単にメソッドを使うだけではなく、クォータニオンの使うための基本的な考え方ができるようになることを目指しています。
Unityではクォータニオンを回転処理に使っています。
クォータニオンは回転操作であり、回転の状態を示すものです。
回転の状態は、基準状態から回転させたものと考えることができるので、実質は回転操作とだけ考えれば大丈夫です。
その回転方法ですが、空間上のある軸(x,y,zの3次元ベクトル)の周りを、ある角度(θ)を回転させます。
上記の図はZ軸を回転軸として回転させています。
続きを読む日本語では四元数といいます。
簡単に言うと複素数は平面(二次元)上の点を表すことができるように、クォータニオンは空間(三次元)上の点を表すことができます。
三次元なら要素数が3個あれば表現できるのではないかと思う方もいるかもしれませんが、確かに点を表すだけであれば3個で足ります。
二次元の場合は単純に要素数2個で足りるのですが、実数を2個ではなく虚数という概念を持ち出して複素数を用いるのは意味があるのです。
同様に三次元の場合は、四元数であるクォータニオンを使うことに意味があります。
この辺は数学の分野になるので興味のある方は調べてみてください。
いまいち理解できないのであれば、当面はクォータニオンの概念を応用することで、空間(3次元)で回転操作が簡単にできる。
くらいの認識でも十分です。
UnityではQuaternionというクラスがありますので、Vector3と組み合わせてどのように使えばいいかという方法さえ知っていればプログラムを書く上では問題ないと思います。
クォータニオンと3Dプログラムについて詳しく知りたい方は下記URLが参考になります。
http://marupeke296.com/DXG_No10_Quaternion.html
クォータニオンは直観的に扱えないので不便と思われがちですが、ジンバルロックの問題が発生しない、計算方法が容易などの利点があるため3Dを扱うゲームでは多くの場合クォータニオンを使用します。
続きを読む3Dモデルを作成したら、ジョイント(ボーン)を作成してスキニング作業に入ると思います。
ジョイント(ボーン)の移動や回転を行うと、メッシュの頂点はウェイトの度合いに従って変形します。
つまり制御点であるジョイント(ボーン)の数は、
少なければ少ないほど操作や設定がしやすい代わりに細やかな表現ができず、
多ければ多いほど細やかな表現が可能になる代わりに操作や設定が困難になります。
ですので、多くても少なくても駄目で、必要に応じて適切な配置をする必要があります。
人間や機械を考えると関節部分に配置するのが普通ですが、参考書などでスキニングを説明するときにモデルの先端までジョイント(ボーン)を配置していることがあります。
それが下図の左側のモデルですね。
もちろん人間の爪の先端に関節なんてありませんので、右側のように先端のジョイントを作らない場合が多いと思います。
作ることで何かができなくなるわけではないのですが、恐らく使わないことが多いでしょう。
それなら先端にジョイント(ボーン)を作ることにどのような意味があるのでしょうか。
左のジョイント(ボーン)は下から2番目を、右のジョイント(ボーン)は一番下をそれぞれ60度回転させたものです。
回転させたジョイント(ボーン)の付近でへこみ具合に若干の差はありますが、ウェイトの調整である程度吸収できるため、それほど大きな差は出ません。
左のジョイント(ボーン)の先端をねじることで、メッシュの先端を変形できます。
では、右側はジョイント(ボーン)が無いので同じことができないのかというと、
こちらもある程度近い形状にまでは変形できるんですね。
しかし、角度を変えてみるとわかるのですが、
右側のメッシュはジョイント(ボーン)より下のメッシュを一括に扱うためどうしても平面的(固定形状)になってしまうのです。
上図は直方体にして一番上のジョイント(ボーン)以外を45度ずつねじったものです。
形状によっては連続的にねじると差を顕著に感じられます。
錘状なら先端に行くほど細くなるので、ねじることでの差を感じられなくなるでしょう。
この誤差を気にしなければ、ねじりに関しては先端のジョイント(ボーン)は不要になります。
これは決定的に異なります。
ジョイント(ボーン)が無ければ先端を伸ばすことはできません。
ジョイント(ボーン)の大きさを調整することで全体のサイズを変更させたい場合などは、移動ではなく拡大縮小操作になるのでメッシュも合わせて動くため問題ありません。
関節としてジョイント(ボーン)を使う場合には伸ばす動作はしないので気づきにくいですが、いわゆる「揺れ物」のような操作を行う場合に使うことが多いです。
ばねが代表的ですが、伸縮性のあるものは端から端までジョイント(ボーン)を設定する必要があります。そうしないと末端だけが伸び縮みしないことになります。
揺れ物でも髪や布のような殆ど伸縮性のないものについて末端のジョイント(ボーン)が必要になるかは、細かくねじる表現が欲しいかどうかくらいの認識で良いと思います。
ゲームなどでは子ジョイントの位置から親ジョイントの回転を制御することがあるため、末端までジョイントを入れることがあります。
この場合末端のジョイントはウェイトを持ち、振り子の重りのような意味合いを持ちます。
盾や武器などの設定位置など体の動きに合わせて位置が変わるような物のために先端にジョイント(ボーン)を使用することもあります。
これについては小物の位置や回転を調整するために必要になるので直観的に必要だと理解できるかと思います。
フェイシャル用のボーンは皮膚の位置を調整するもので、モーションキャプチャーなどで1個ずつ調整することが多いでしょうから、必要な数だけ追加することになるでしょう。
先端にジョイント(ボーン)を入れるかどうかは、先端だけを変形させたいかどうかを一つの判断基準にすると良いです。
ジョイントを増やしても良いのであれば、ウェイト設定時の目印にもなるので追加してもいいかもしれません。
また、物理演算のために設定することがあります。
小物を配置するために必要なジョイント(ボーン)もあります。
こんな感じのものを作る方法です。
他にも効率が良い方法があるかもしれませんが、とりあえずこれで作れますという参考になれば幸いです。
よくあるプリーツスカートはこちらが参考になりました。
【モデリング】プリーツスカートの作り方 by KITA その他/動画 - ニコニコ動画
円柱から作成します。
蓋部分は要らないので削除します。
2セット使いますので、蓋を消したらコピーを取っておいてください。
外側の生地を作ります。
隙間を作りながら側面を押し出します。
この隙間が外側生地の折り返しの隙間になりますので、好みに合わせて調整してください。
押し出した部分だけを使いますので、選択範囲を反転して不要部分を削除します。
今度は折り込まれる内側の生地を作ります。
コピーを取っておいたものを使って、同じように押し出します。
折り込まれる生地は外側の生地より少し小さめにしたいので、外側を押し出した時より長めに押し出して隙間を大きくします。
同様に不要部分を削除して、XY平面の大きさを調整して外側生地と内側生地の位置調整をします。
内側の生地を回転させて、外側の隙間部分に合うように調整します。
Mayaだと「Jキー」を押しながら回転させるとスナップが効きます。
内側と外側の生地のエッジを選択してブリッジでつないでいきます。
Mayaだと「Gキー」で同じ操作を繰り返しできるので、選択してGキーで繰り返していきます。
スカートの広がり具合を調整します。
エッジーループを作成して、メッシュサイズを調整します。
ここでエッジループを作成しておかないと、次の工程のマージ後ではループカットができなくなります。
(マージにより三角ポリゴンができるため)
この作業は必ずしもやらなければいけない物ではなく、内側でそのまま隠したり、ウエスト部分のループで隠すことも可能です。
上部だけをマージしたものと、3段目までマージしたものでは若干イメージが違ったものになります。
最後にウエスト部分を作成して部品としては完了です。
上部のエッジから垂直に押し出しするくらいで良いでしょう。
あとはキャラクターモデルに合わせて微調整をしていけばOKです。
Substance Painterって使うごとにどんどんファイルサイズが大きくなっていきます。
というのも、非破壊が売りなので動作やリソースを全部保存しているからみたいですね。
公式のヘルプより引用。
Projects are really big - Substance Painter - Allegorithmic Documentation
Everything you use in a Substance Painter project is included in the file :
・the source mesh
・the textures baked
・the materials (like substances)
Substance Painterプロジェクト内には、以下のファイルが含まれています。
・ソースメッシュ
・ベイクされたテクスチャ
・サブスタンスのようなマテリアル類
It makes the project completely autonomous but the downside is indeed a large file size. The decision to have everything embedded in the project file comes from the fact that everything is non destructive. It means that the projects “rebuilds” itself when you open it. If a single brush or material is missing from your shelf, the project will break and will not be able to correctly regenerate.
プロジェクトを完全に自動的に行うには、欠点としてファイルサイズの肥大化があります。 全てをプロジェクト内に埋め込むという決断は、全てを非破壊にすることに起因しています。 これは、プロジェクトを開いたときに"再構築"を行うことを意味しています。 シェルフから1つのブラシやマテリアルが無くなったら、プロジェクトは壊れ、正しく再構築することもできなくなってしまいます。
The high-poly meshes are not included in the project. They are just linked to the project.
ハイポリはプロジェクトに含まれません。これは、プロジェクトにリンクされるだけです。
A way to reduce the filesize is to :
・Use the “clean” then “save” function in the file Menu to get rid of unused resources.
・Do a “Save As” from times to times to also get rid of additional unused data.
・Set your texture set to a low resolution, like 512, to reduce the disk footprint of the cached textures used for the visualization of the texture sets.
ファイルサイズを削減する方法
・"clean"を実行後、"save"をすることで、使用していないリソースを削除します。
・時折"Save as"を使うときも使用していないデータを削除します。
・テクスチャセットを512などの低解像度にすると、テクスチャセットを表示するために使用されるキャッシュデータを削減できます。
On Windows, the project file is protected from read/write access, therefore the size in the Windows Explorer can be incorrect until you close the project in Substance Painter.
Windowsでは、プロジェクトファイルは使用中に読み書き制限がかかるため、SubstancePainterを終了するまでエクスプローラー上では正常に表示されないかもしれません。
6面構成のシンプルなキューブ状のメッシュでプロジェクトを作成して保存しました。
ファイルサイズが74MBになりました。
これをエクスプローラー上でコピーして同じファイルを作成しました。
1回ベイクすると74MB->82MBに
10回ベイクすると74MB->90MBに
それぞれ増加しましたが、save asで保存すると74MBまで戻りました。 clean実行で保存しても同じサイズになりました。
どのマテリアルを使って塗っているのか、どのような設定(サイズやフローなど)で、どのようなストローク(描画)を行ったのかなどの情報をすべてプロジェクト内にコピー保存しているようです。
この辺の情報は削減するにも限界があるため、ペイントするときも気を付けるしかないですね。
たとえば、手描きでペイントするときに、描きミスった場合はundoなどで作業を戻す方が良いです。
マスクを黒で塗って白で消すなどの動作は情報をどんどん増やしていくことになります。
とはいえ、それもかなり沢山やった場合の話なので、それほど神経質になる必要は無さそうですが、情報は増えるので心がけは必要かと思います。
要らないデータを削除するには、メニューからcleanを実行するか、save asで別名保存するとある程度削減できます。
ちなみに、cleanを知らずにベイクしまくっていたファイルは、2.5GBから680MBまで小さくなりました。