SubstancePainter2017.1.0

f:id:hildsoft:20170623112304j:plain

新しいライセンス形態のSubstance Painter

6/20にSubstancePainterのメジャーナンバーではないバージョンアップが行われました。

以前アナウンスがあった通り、これまでのバージョンで区切りをつけるアップデート形式ではなく、随時機能追加を行っていくことになりました。

www.hildsoft.com

それに伴い、ソフト名も"Substance Painter 2"から"Substance Painter"になっています。

ソフト起動時に通知されていたバージョンアップのダイアログも出ませんので、今回はサイトからダウンロードする必要があります。

今回はソフト名が変わったからだと思いますので、恐らく次回のアップデートからは通知があるでしょう。

また、ライセンスキーも変更になっていますのでご注意ください。


ソフトの機能変更点

公式のニュースリリース

www.allegorithmic.com

ヘルプ

Version 2017.1 - Substance Painter - Allegorithmic Documentation

今回の大きな変更は2点、Substance Sourceプラグインの実装と、アセットの追加のようです。

Substance Sourceプラグイン

今まではWebブラウザでSubstance Sourceサイトにログインしてマテリアルをダウンロードしていましたが、 プラグイン実装でSubstance Painter上から直接ダウンロードすることができるようになりました。

直接Shelfに格納できるので、今までのようにファイルをダウンロードしてインポートするという手間が省けます。

使い方は今までと同様、メニューバーにあるSubstance Sourceのアイコンで開けます。Webブラウザの代わりにプラグインでダイアログが開きます。

アセットの追加

日本語や中国語のフォント、SF、幾何学、中世、ケルト風のアルファ画像、新しいフィルターなど、300近いアセットが追加されています。

標準の環境マップも修正されているようなので、少し黄色っぽく見える場合はそれが原因のようです。

パラメータで調整できるアルファ、フィルターが増えて作業の効率化ができそうです。

公開後にライブ配信された解説動画


What’s new in Substance Painter 2017.1

Unityでクォータニオン(Quaternion)を扱うための基礎知識その2

  • Unityのクォータニオン
    • クォータニオンって何をするもの?
    • クォータニオンを構成するもの
    • オイラー角との関係
    • 回転方向
    • クォータニオンとオイラー角の回転は1:1対応じゃない
    • クォータニオンのもう一つの弱点

前の記事を見てない方はこちらを

www.hildsoft.com

以下は断りの無い限り回転角は度数法を使用し、単位は省略します。

Unityのクォータニオン

その1で、UnityでのGameObjectのクォータニオンを取る方法を説明し、加工するメソッドをざっと列挙しました。

大抵はこのメソッドを使ってやりたいことはできると思うのですが、もちろん例外も出てきます。

ただ単にメソッドを使うだけではなく、クォータニオンの使うための基本的な考え方ができるようになることを目指しています。

クォータニオンって何をするもの?

f:id:hildsoft:20170615213830p:plain

Unityではクォータニオンを回転処理に使っています。

クォータニオンは回転操作であり、回転の状態を示すものです。

回転の状態は、基準状態から回転させたものと考えることができるので、実質は回転操作とだけ考えれば大丈夫です。

その回転方法ですが、空間上のある軸(x,y,zの3次元ベクトル)の周りを、ある角度(θ)を回転させます。

上記の図はZ軸を回転軸として回転させています。

続きを読む

Unityでクォータニオン(Quaternion)を扱うための基礎知識その1

  • クォータニオンって何?
  • Unityでの位置情報
    • Transformコンポーネント
    • 実際の移動メソッド
    • transformクラスの取得方法
  • ベクトルとクォータニオン
    • ベクトルの取得
    • クォータニオンの取得
    • Vector2とVector3での違い
  • よく使うメソッドとプロパティ
    • Quaternion.LookRotation
    • Quaternion.Angle
    • Quaternion.Euler
    • Quaternion.Slerp
    • Quaternion.FromToRotation
    • Quaternion.identity

クォータニオンって何?

日本語では四元数といいます。

簡単に言うと複素数は平面(二次元)上の点を表すことができるように、クォータニオンは空間(三次元)上の点を表すことができます。

三次元なら要素数が3個あれば表現できるのではないかと思う方もいるかもしれませんが、確かに点を表すだけであれば3個で足ります。

二次元の場合は単純に要素数2個で足りるのですが、実数を2個ではなく虚数という概念を持ち出して複素数を用いるのは意味があるのです。
同様に三次元の場合は、四元数であるクォータニオンを使うことに意味があります。 この辺は数学の分野になるので興味のある方は調べてみてください。

いまいち理解できないのであれば、当面はクォータニオンの概念を応用することで、空間(3次元)で回転操作が簡単にできる。
くらいの認識でも十分です。

UnityではQuaternionというクラスがありますので、Vector3と組み合わせてどのように使えばいいかという方法さえ知っていればプログラムを書く上では問題ないと思います。

クォータニオンと3Dプログラムについて詳しく知りたい方は下記URLが参考になります。

https://www.dropbox.com/s/em7iqkax0771qb0/Unity%E9%81%93%E5%A0%B4%E3%82%B9%E3%83%9A%E3%82%B7%E3%83%A3%E3%83%AB%E5%8D%9A%E5%A4%9A-yasuhara.pdf?dl=0

http://marupeke296.com/DXG_No10_Quaternion.html

クォータニオンは直観的に扱えないので不便と思われがちですが、ジンバルロックの問題が発生しない、計算方法が容易などの利点があるため3Dを扱うゲームでは多くの場合クォータニオンを使用します。

続きを読む

スキニングするために先端のジョイント(ボーン)は必要か?

スキニングとジョイント(ボーン)の関係

3Dモデルを作成したら、ジョイント(ボーン)を作成してスキニング作業に入ると思います。

ジョイント(ボーン)の移動や回転を行うと、メッシュの頂点はウェイトの度合いに従って変形します。

つまり制御点であるジョイント(ボーン)の数は、
少なければ少ないほど操作や設定がしやすい代わりに細やかな表現ができず、
多ければ多いほど細やかな表現が可能になる代わりに操作や設定が困難になります。

ですので、多くても少なくても駄目で、必要に応じて適切な配置をする必要があります。

先端にジョイント(ボーン)がある場合と無い場合

人間や機械を考えると関節部分に配置するのが普通ですが、参考書などでスキニングを説明するときにモデルの先端までジョイント(ボーン)を配置していることがあります。

それが下図の左側のモデルですね。

f:id:hildsoft:20170605022833j:plain

もちろん人間の爪の先端に関節なんてありませんので、右側のように先端のジョイントを作らない場合が多いと思います。

作ることで何かができなくなるわけではないのですが、恐らく使わないことが多いでしょう。

それなら先端にジョイント(ボーン)を作ることにどのような意味があるのでしょうか。

回転により先端部分を持ち上げる

f:id:hildsoft:20170605022837j:plain

左のジョイント(ボーン)は下から2番目を、右のジョイント(ボーン)は一番下をそれぞれ60度回転させたものです。

回転させたジョイント(ボーン)の付近でへこみ具合に若干の差はありますが、ウェイトの調整である程度吸収できるため、それほど大きな差は出ません。

先端をねじる

f:id:hildsoft:20170605022840j:plain

左のジョイント(ボーン)の先端をねじることで、メッシュの先端を変形できます。

では、右側はジョイント(ボーン)が無いので同じことができないのかというと、

f:id:hildsoft:20170605022843j:plain

こちらもある程度近い形状にまでは変形できるんですね。


しかし、角度を変えてみるとわかるのですが、

f:id:hildsoft:20170605022848j:plain

右側のメッシュはジョイント(ボーン)より下のメッシュを一括に扱うためどうしても平面的(固定形状)になってしまうのです。


f:id:hildsoft:20170605080956j:plain

上図は直方体にして一番上のジョイント(ボーン)以外を45度ずつねじったものです。

形状によっては連続的にねじると差を顕著に感じられます。

錘状なら先端に行くほど細くなるので、ねじることでの差を感じられなくなるでしょう。

この誤差を気にしなければ、ねじりに関しては先端のジョイント(ボーン)は不要になります。

先端を伸ばす

f:id:hildsoft:20170605024416j:plain

これは決定的に異なります。

ジョイント(ボーン)が無ければ先端を伸ばすことはできません。

ジョイント(ボーン)の大きさを調整することで全体のサイズを変更させたい場合などは、移動ではなく拡大縮小操作になるのでメッシュも合わせて動くため問題ありません。

先端を伸ばすのは関節以外での用途

関節としてジョイント(ボーン)を使う場合には伸ばす動作はしないので気づきにくいですが、いわゆる「揺れ物」のような操作を行う場合に使うことが多いです。

ばねが代表的ですが、伸縮性のあるものは端から端までジョイント(ボーン)を設定する必要があります。そうしないと末端だけが伸び縮みしないことになります。

揺れ物でも髪や布のような殆ど伸縮性のないものについて末端のジョイント(ボーン)が必要になるかは、細かくねじる表現が欲しいかどうかくらいの認識で良いと思います。

質量の位置

ゲームなどでは子ジョイントの位置から親ジョイントの回転を制御することがあるため、末端までジョイントを入れることがあります。

この場合末端のジョイントはウェイトを持ち、振り子の重りのような意味合いを持ちます。

位置決定用

盾や武器などの設定位置など体の動きに合わせて位置が変わるような物のために先端にジョイント(ボーン)を使用することもあります。
これについては小物の位置や回転を調整するために必要になるので直観的に必要だと理解できるかと思います。

フェイシャル用のボーンは皮膚の位置を調整するもので、モーションキャプチャーなどで1個ずつ調整することが多いでしょうから、必要な数だけ追加することになるでしょう。

まとめ

先端にジョイント(ボーン)を入れるかどうかは、先端だけを変形させたいかどうかを一つの判断基準にすると良いです。

ジョイントを増やしても良いのであれば、ウェイト設定時の目印にもなるので追加してもいいかもしれません。
また、物理演算のために設定することがあります。

小物を配置するために必要なジョイント(ボーン)もあります。

ボックスプリーツスカートのモデリング

ボックスプリーツスカートの作り方

f:id:hildsoft:20170523054516p:plain

こんな感じのものを作る方法です。

他にも効率が良い方法があるかもしれませんが、とりあえずこれで作れますという参考になれば幸いです。

よくあるプリーツスカートはこちらが参考になりました。

【モデリング】プリーツスカートの作り方 by KITA その他/動画 - ニコニコ動画

手順

f:id:hildsoft:20170523054823p:plain

円柱から作成します。

蓋部分は要らないので削除します。

2セット使いますので、蓋を消したらコピーを取っておいてください。


f:id:hildsoft:20170523054840p:plain

外側の生地を作ります。

隙間を作りながら側面を押し出します。

f:id:hildsoft:20170523055129p:plain

この隙間が外側生地の折り返しの隙間になりますので、好みに合わせて調整してください。


f:id:hildsoft:20170523055248p:plain

押し出した部分だけを使いますので、選択範囲を反転して不要部分を削除します。


f:id:hildsoft:20170523060911p:plain

今度は折り込まれる内側の生地を作ります。

コピーを取っておいたものを使って、同じように押し出します。

折り込まれる生地は外側の生地より少し小さめにしたいので、外側を押し出した時より長めに押し出して隙間を大きくします。


f:id:hildsoft:20170523055532p:plain

同様に不要部分を削除して、XY平面の大きさを調整して外側生地と内側生地の位置調整をします。


f:id:hildsoft:20170523055648p:plain

内側の生地を回転させて、外側の隙間部分に合うように調整します。

Mayaだと「Jキー」を押しながら回転させるとスナップが効きます。


f:id:hildsoft:20170523055629p:plain

内側と外側の生地のエッジを選択してブリッジでつないでいきます。

Mayaだと「Gキー」で同じ操作を繰り返しできるので、選択してGキーで繰り返していきます。


f:id:hildsoft:20170523055920p:plain

スカートの広がり具合を調整します。


f:id:hildsoft:20170523060132p:plain

エッジーループを作成して、メッシュサイズを調整します。

ここでエッジループを作成しておかないと、次の工程のマージ後ではループカットができなくなります。

(マージにより三角ポリゴンができるため)


f:id:hildsoft:20170523060100p:plain

この作業は必ずしもやらなければいけない物ではなく、内側でそのまま隠したり、ウエスト部分のループで隠すことも可能です。


f:id:hildsoft:20170523060433p:plain

上部だけをマージしたものと、3段目までマージしたものでは若干イメージが違ったものになります。


f:id:hildsoft:20170523060542p:plain

最後にウエスト部分を作成して部品としては完了です。

上部のエッジから垂直に押し出しするくらいで良いでしょう。

あとはキャラクターモデルに合わせて微調整をしていけばOKです。

SubstancePainterのファイルサイズが大きくなりすぎる問題

Substance Painterのファイルサイズがどんどん大きくなる

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を終了するまでエクスプローラー上では正常に表示されないかもしれません。

単純な立方体でテスト

f:id:hildsoft:20170516194304p:plain

6面構成のシンプルなキューブ状のメッシュでプロジェクトを作成して保存しました。

f:id:hildsoft:20170516194404p:plain

ファイルサイズが74MBになりました。

これをエクスプローラー上でコピーして同じファイルを作成しました。

f:id:hildsoft:20170516194539p:plain

1回ベイクすると74MB->82MBに

10回ベイクすると74MB->90MBに

それぞれ増加しましたが、save asで保存すると74MBまで戻りました。 clean実行で保存しても同じサイズになりました。

まとめ

どのマテリアルを使って塗っているのか、どのような設定(サイズやフローなど)で、どのようなストローク(描画)を行ったのかなどの情報をすべてプロジェクト内にコピー保存しているようです。

この辺の情報は削減するにも限界があるため、ペイントするときも気を付けるしかないですね。

たとえば、手描きでペイントするときに、描きミスった場合はundoなどで作業を戻す方が良いです。
マスクを黒で塗って白で消すなどの動作は情報をどんどん増やしていくことになります。

とはいえ、それもかなり沢山やった場合の話なので、それほど神経質になる必要は無さそうですが、情報は増えるので心がけは必要かと思います。

要らないデータを削除するには、メニューからcleanを実行するか、save asで別名保存するとある程度削減できます。

ちなみに、cleanを知らずにベイクしまくっていたファイルは、2.5GBから680MBまで小さくなりました。

Substance製品のindie版ライセンス体系変更について(2017年6月より)

2017年6月より、Substance製品のindie版ライセンス体系が変更になります

https://www.allegorithmic.com/welcome-to-substance

Starting in June 2017, we will stop releasing major numbered versions. For you, this means an uninterrupted flow of new features and content. For us, this means a drive to push forward and deliver all year long. Welcome to Substance!

2017年6月より、メジャーナンバーのバージョンリリースを停止します。
ユーザーにとって、これは新機能やコンテンツを随時提供できることとなり
我々にとって、今後安定した開発と提供を後押しすることになります。
Substanceへようこそ。

意図としては、メジャーバージョンで区切りをつけてアップデートして、その時にまとまったお金が入る方法では予算立てにくいので、サブスクリプションで毎月徴収することで収入を安定させたいようですね。

スタンドアロンライセンス所持しているユーザー

f:id:hildsoft:20170506185446j:plain

  • 現状保持しているライセンスはそのまま永続使用可能
  • 下記ライセンスを持っている場合は期日まで最新のバージョンにアップデート可能
    • Substance Designer Ver.6は2018年6月30日まで
    • Substance Painter Ver.2は2017年9月30日まで

アップデート期間が終了したら

アップデート期間が終わった時のライセンスを保持します。
継続的にアップデートをする場合は2つの選択肢があります。

  • SUBSTANCEサブスクリプションを使用
  • アップデート延長

SUBSTANCEサブスクリプションは、スタンドアロンユーザーなら最初の6カ月は9.95ドル/月、その後19.9ドル/月で契約できます。

アップデート延長の方は12カ月(75ドル/ソフト)なので、Desinger、Painter両方のソフトを使用している場合は年間150ドルになります。

気になるのは、アップデート期間を過ぎていても好きなタイミングでアップデート行えるのかどうかという点だと思います。
ホームページには記述が見当たらなかったのですが、メールの方にありました。

  • Since you have purchased a Substance Painter 2 license, you will get free updates until September 30, 2017.
  • After this date, you can purchase 12 months of updates for the price of $75 at any time or subscribe to Substance.

Substance Painter 2のライセンスを保持していれば、2017年9月30日までアップデート権があります。
その後に、75ドルで12カ月のアップデート延長権をいつでも購入可能で、Substanceサブスクリプションに切り替えることもできます。

Liveを使用しているユーザー

f:id:hildsoft:20170506173711j:plain

  • 名称が「SUBSTANCE LIVE」から「SUBSTANCE」に変わります。
  • SUBSTANCE LIVEライセンスは、SUBSTANCEライセンスに自動的に変更になります。
  • お値段据え置き19.90ドル/月
  • 使用できるソフトは変更なし(Painter Designer B2Mの最新版)
  • Substance Sourceからダウンロードできるマテリアル数も変更なし(30個/月)
  • これまでと同様、いつでも中断可能

この辺は大きな変更は無いですね。

ライセンスの所有方法の変更

これまでは16ヵ月の利用(19.90*16=318.4ドル)でindie版のパックライセンス(315.00ポイント消費)と交換できたのが、 12カ月の連続使用と、49ドルの追加支払いで交換できるようになります。

今までは断続的な利用でも16か月分溜まれば交換できたのが、12カ月の継続的な利用が必須になったことは必要な時だけ使っていたライトユーザーにとって痛い変更ですね。

現時点のLiveではSubstance DesignerはVer.5としか交換できずVer.6へのアップデートは75ドルかかりますので、 最新バージョンを手に入れられる事と、支払い費用が少し安く(約320ドルから約289ドルに)なることはメリットになります。

継続利用で16か月使って切り替えようと思っていた人は低価格で最新版に交換できるのでいいですね。

Q&A意訳

What do you mean by “Latest available release”?
If you choose to leave Substance and own a license, you get the current release of the software. This license is yours to keep forever. It will include hotfixes but you will not receive new updates.

最新の利用可能なバージョンとはどういう意味ですか?
SUBSTANCEのサブスクリプションライセンスを打ち切り、ライセンスと交換する際にその時点での最新版を入手できます。
このライセンスは永年使用可能でホットフィクスを含みますが、新規のアップデートは受けられません。


What happens to the payments I’ve already made?
The payments you have already made will be converted into months that can be applied to get the current release. If you’ve made 8 months of payment on Substance Live, these will count as 8 months of consecutive payments should you want to get the current release.

既に支払っている分のポイントはどうなりますか?
支払い済みの分は、現在のリリース月数に適用して変換されます。
仮にLiveを8か月分使用していたのであれば、これらを8か月連続使用月数として計算します。


Why do I now have to pay 12 consecutive months to own a license?
Previously, no matter if you paused or not, you would only be entitled to the previous major release. You are now able to get the very latest release at the end of your subscription term and that’s why we ask in return for 12 consecutive payments.

ライセンスを手に入れるのに、どうして12カ月の継続利用が必要になったのですか?
以前は、断続的な利用でも前のメジャーバージョンを入手可能としていました。
今回は、サブスクリプションの終了時で最新のバージョンを入手できるようにしました。なので、そのかわりに12ヵ月の連続使用をお願いいたします。


What happens if I pause my subscription before I have paid 12 consecutive months but come back later?
You may pause / cancel your subscription at any time. However, if you want to own licenses and paused your subscription before paying 12 consecutive months, this period will start from scratch when you return.

12カ月分の継続利用をする前に停止した場合は後から再開できますか?
サブスクリプションの停止、キャンセルはいつでも可能ですが、12カ月の継続利用をする前にサブスクリプションを止めてしまうと、サブスクリプションを再開した場合には、ライセンス入手に必要な期間はゼロから再計算になります。


What If I just want to do some rental under the new system?
This is still possible, as you can quit Substance whenever you want. You should pay $49 when you quit only if you want to own a license. This offer is available if you have been paying for 12 consecutive months. You don’t have to pay $49 if you don’t want to own a license.

新しいライセンス体系の下で、レンタルだけをしたい場合はどうすればいいですか?
これまで通り、レンタルだけを行うこともできます。いつでもSubstanceライセンスをやめることができます。
その時、もしライセンスが欲しいのであれば、49ドル支払う必要があります。
ただし、この提案は12ヵ月の連続使用後にのみ提供されます。 ライセンスが必要でなければ、やめる時に49ドルを支払う必要はありません。


What If I just want to purchase a stand-alone license under the new system?
Stand-alone and one-off licenses now include 12 months of free updates instead of upgrades to a specific major release. You always get a full year of updates no matter when you purchase your license, which is a fairer system.

新しいライセンス体系の下で、スタンドアロンライセンスを購入したい場合はどうすればいいですか?
スタンドアロンや1回限りのライセンスは、特定のメジャーアップデートの代わりに12カ月のフリーアップデートを含んでいます。 いつ購入しても12カ月間は最新のライセンスを利用できる公平なシステムです。


まとめ

  • メジャーバージョンアップをせず、アップデートを随時していく方式に変更します。
  • 現状ライセンス持ちはそのまま使えるようです。
  • 最新版を使いたい場合は月単位で停止できるサブスクリプション契約(19.9ドル/月)か、アップデート契約(150ドル/年)が必要です。
  • Rent-to-ownの条件変更(通算16カ月の利用から12カ月の継続利用+49ドル)されました。
  • Rent-to-ownで交換してサブスクリプションを解除した場合は、交換時点での最新版と交換できますが、それ以降のアップデートはありません。
  • スタンドアロンライセンスを購入の際は、12カ月のアップデート権付きです。

メジャーバージョンの寿命が1年固定に変更されたと思えば費用面でそれほど大きな変更は無いと思います。
買うタイミングによってすぐメジャーアップデートされて追加費用かかったりすることが無い分、購入時期を気にする必要はなくなりました。
また、ライセンス保持者は必要になった時にアップデートできるので、メジャーバージョン2個飛ばしで追加費用が掛かるなど心配がいらなくなりました。

今回のライセンス体系変更はある程度継続して使っているindieユーザーにとってはメリット大きいのではないかと思います。

Liveを必要な時だけ使っては停止していて溜まったらライセンスを貰うというのはできなくなりましたので、かなりのライトユーザーだけは費用負担増えそうですね。