Substance indie版 セール情報2017/07/13~2017/07/29

f:id:hildsoft:20170714075556j:plain

モンスターディスカウント

概要

Substance Monster Discounts | allegorithmic

先日のSteamセールに引き続き、allegorithmicのサイトでindie版のセールが開催されました。

Steam版のセールとは違い、既存ライセンスのアップデート(保守12カ月)権もありますので今のうちに上げておくと良いかもしれません。

セール商品

今回の値引きはindie版が対象です。

12カ月アップデート権付き新規ライセンス

  • Substance Indie Pack (299$ -> 199$)
  • Substance Painter Indie (149$ -> 99$)
  • Substance Designer Indie (149$ -> 99$)


12カ月アップデート権付き更新ライセンス

  • Substance Painter Indie (75$ -> 50$)
  • Substance Designer Indie (75$ -> 50$)

まとめ

Steam版はindieパックが約50%オフで2万円程度でしたが、今回の本家セールは約34%オフの199ドルなので、為替の関係上(約113円:2017/07/14時点)少し高くなります。

Steam版ほどの値下げは無いようですが、買い逃した方は要チェックです。

ライセンス形態が変わってから初めてのアップデート版セールなので、今後のセール方針は分かりませんが、 今回の更新ライセンスでSubstancePainter Ver.1やSubstanceDesigner Ver.5からもアップデートできますので、寝かせている人はアップグレードしてもいいかもしれません。

2017/09/30まで有効なSubstancePainter Ver.2のライセンスはアップデートの選択欄が出てこなかったので、アップデート権が有効なライセンスの期間延長という買い方は出来ないようです。(2017/07/14時点)

備考

2017/06からのライセンス形態

www.hildsoft.com

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

2017.2.0情報

www.hildsoft.com

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個ずつ調整することが多いでしょうから、必要な数だけ追加することになるでしょう。

まとめ

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

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

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