さくらいだい

ゲーム系キャラクターモデラー 日々重要だと感じたものを自分用に箇条書きしています。自…

さくらいだい

ゲーム系キャラクターモデラー 日々重要だと感じたものを自分用に箇条書きしています。自分向けのTIPSです。

記事一覧

オブジェクト同士のスナップ

オブジェクトのface同士をスナップできる。便利。

Maya上のオブジェクトをX線化するMEL

X線化するアイコンをMELで再現したもの。ホットキーに登録することで効率化を図れる。 { $panel = `getPanel -withFocus`; if(`getPanel -typeOf $panel` == "modelPane…

Maya上で選択したオブジェクトのみを表示するMEL

選択したオブジェクトのみを表示させることができる。ホットキーにMELを登録すればより効率的に作業を進められる。 global proc obj_isolate() { global int $onoff; if(…

肘のトポロジーの最大公約

肘やひざといった人体のなかで形状が大きく変化する関節箇所のトポロジーはどういう形が「制作時に作りやすく、ウェイト調整がしやすく、見た目にもわかりやすく、美しい…

brSmoothWeightTool

とても優秀なツールです。MayaのskinWeightEditorとどこが違うのかというといくつかありますが、特に決定的に優秀な面は2つ。 「意図しないジョイントのウェイトが振られ…

続・美しいスカートのアールの実現

先日書いたスカートの美しいアールを実現するための考察をさらに推し進めた結果、無事に最適解のひとつを見つけたので記録として残しておくことに。 色々な試行の中でわか…

スカートのウェイトとシルエット

ロングスカートのような長い揺れものを綺麗なシルエットやラインにするにはどのようなウェイトを振るのが適切なのかを検証した。 結論として、最も近接のジョイント周辺の…

3Dくささ

3D臭さがでているキャララクターモデルと魅力的なキャラクターモデル 出来不出来は作り手によるところがとても大きい。この2つには一体どれほどの壁があるのだろうか? …

トランスフォームノードの特性

オブジェクトにはトランスフォームノードとシェイプノードの2種類があり、形状を座標に配置するのがトランスフォームノードの役割だ。 そのトランスフォームノードはオブ…

5

シーンサイズの最適化のメリット

FIXのモデルにも内部に不要なノードが残っている場合が多い。 この場合、まず必要なオブジェクトのみを選択して.ma形式で別ファイルにする。これで不要なノードを消去する…

DoraSkinWeightのfileとobjの違い

DoraSkinWeightのウェイト値の保存にはfileとobjの2種がある。 保存データをシーン内に格納するか外部にファイル化するかであって、ウェイト自体の保存に違いはない。 ob…

Unable to find the bind pose for

スキニングしたモデルをFBX形式で出力する際にでてくるトラブルシューティングのひとつ これは要するに「バインドポーズが見つかりません。再設定よろ!」という意味。長…

髪のような長いメッシュのウェイト移植のポイント

ケージを使って髪にウェイトを移植する際に、ケージの頂点のウェイトの割り振りをジョイント前後0.5ずつにする。ガタガタになるけど、ハンマーでたたくことで比較的綺麗に…

skinClusterの結合

複数のオブジェクトをまとめるとスキニングされたオブジェクトそれぞれのskinClusterノードが別々に格納される。 ひとつにまとめたいときは結合のオプションの項目に「ス…

1

ソースメッシュとベースメッシュの順番

別オブジェクトで左右対称のものにウェイトをミラーするときは、ソースメッシュ(ウェイト情報をもっているほう)、次にベースメッシュ(ミラーで移植したいほう)の順で行うと…

不要なbindposeノードの削除

再バインド等により過去のbindposeノードが出力に残ってしまう。ヒストリー消去でも消すことができないので、この場合はノードエディタを開き、表示された不要なノードを選…

オブジェクト同士のスナップ

オブジェクトのface同士をスナップできる。便利。

Maya上のオブジェクトをX線化するMEL

X線化するアイコンをMELで再現したもの。ホットキーに登録することで効率化を図れる。

{
$panel = `getPanel -withFocus`;
if(`getPanel -typeOf $panel` == "modelPanel")
modelEditor -e -xray (!`modelEditor -q -xray $panel`) $panel;
}

Maya上で選択したオブジェクトのみを表示するMEL

選択したオブジェクトのみを表示させることができる。ホットキーにMELを登録すればより効率的に作業を進められる。

global proc obj_isolate()
{
global int $onoff;

if($onoff == 1)

{
$onoff = 0;
}
else
{
$onoff = 1;
}

string $hoge = `paneLayo

もっとみる

肘のトポロジーの最大公約



肘やひざといった人体のなかで形状が大きく変化する関節箇所のトポロジーはどういう形が「制作時に作りやすく、ウェイト調整がしやすく、見た目にもわかりやすく、美しいか」の検証の末、この形にいきついた。

ハイエンドのゲームモデルであっても使えるポリゴンが無限にあるわけではなく、ポリゴンをたくさん使ったからと言って美しいシルエットになるというわけでもない。

映像用のフォトリアルの造型であればリアリテ

もっとみる

brSmoothWeightTool

とても優秀なツールです。MayaのskinWeightEditorとどこが違うのかというといくつかありますが、特に決定的に優秀な面は2つ。

「意図しないジョイントのウェイトが振られることがない」と「スムーズな変形をブラシで容易に調整が可能」の2つ。

このツールを使う場合にオススメなのはインフルエンス数(ジョイント間の影響範囲のこと)を「2」で設定して、特定のジョイントに頂点ウェイトを「1」でバ

もっとみる

続・美しいスカートのアールの実現

先日書いたスカートの美しいアールを実現するための考察をさらに推し進めた結果、無事に最適解のひとつを見つけたので記録として残しておくことに。

色々な試行の中でわかったことが「ジョイント間のエッジ数が増えるほどきれいなアールを描くのは困難になる」ということ。

それはジョイント同士の適切な引っ張り合いで頂点が綺麗なアールを描く必要があるため、頂点の数が増えるほど調整が非常にむずかしくなる。

個人的

もっとみる

スカートのウェイトとシルエット

ロングスカートのような長い揺れものを綺麗なシルエットやラインにするにはどのようなウェイトを振るのが適切なのかを検証した。

結論として、最も近接のジョイント周辺の頂点に「1」を振るのが形状としてゆがみの少ないシルエットになる。

上記はスカート用の簡易メッシュ

このメッシュをケージとしてオリジナルのメッシュにウェイトを移植している。

問題だったのは周辺ジョイントに均等にウェイトを振る形を取ると

もっとみる

3Dくささ

3D臭さがでているキャララクターモデルと魅力的なキャラクターモデル

出来不出来は作り手によるところがとても大きい。この2つには一体どれほどの壁があるのだろうか?

そして、この壁は具体的にどんな要素から構成されているのかを考察してみたいと思う。

そもそも3Dくさいモデルはどんなものかパッと思い浮かべてみて思いつくのがバタ臭かったり、無駄にごてごてしていたり、形が狙った造形と異なりプリミティブな

もっとみる

トランスフォームノードの特性

オブジェクトにはトランスフォームノードとシェイプノードの2種類があり、形状を座標に配置するのがトランスフォームノードの役割だ。

そのトランスフォームノードはオブジェクトを結合した場合などで単体として残っていることがよくある。

この段階では、結合したオブジェクトにはpolyuniteのヒストリーが残っていると内部的にはまだ結合したオブジェクトと結合前のオブジェクトにあったトランスフォームノードは

もっとみる

シーンサイズの最適化のメリット

FIXのモデルにも内部に不要なノードが残っている場合が多い。

この場合、まず必要なオブジェクトのみを選択して.ma形式で別ファイルにする。これで不要なノードを消去することできる。

そのうえでシーンサイズの最適化を行う。

シーンサイズの最適化には不要なヒストリーを消去したりできるぞ!

例えば、

分割しているオブジェクト群を一つに結合した際にできるPolyUniteというノードは、デフォーマ

もっとみる

DoraSkinWeightのfileとobjの違い

DoraSkinWeightのウェイト値の保存にはfileとobjの2種がある。

保存データをシーン内に格納するか外部にファイル化するかであって、ウェイト自体の保存に違いはない。

obj化するとアトリビュートに各ウェイト値を格納したトランスフォームノードが生成される。頂点数が少ない場合は特にきにしなくてよいが、ポリ数が10万近くなるとかなりシーンのファイルサイズが大きくなるので注意をしたほうが

もっとみる

Unable to find the bind pose for

スキニングしたモデルをFBX形式で出力する際にでてくるトラブルシューティングのひとつ

これは要するに「バインドポーズが見つかりません。再設定よろ!」という意味。長々でてくるからおっかなびっくりだけど、根は単純だ。

今回、まったくバインドポーズに戻すことなくスキニングをしてしまった。その過程でインフルエンスの追加を行った。それも大量に。結果的に不要なバインドポーズ群が爆誕してしまっていたのだ。

もっとみる

髪のような長いメッシュのウェイト移植のポイント

ケージを使って髪にウェイトを移植する際に、ケージの頂点のウェイトの割り振りをジョイント前後0.5ずつにする。ガタガタになるけど、ハンマーでたたくことで比較的綺麗に慣らすことができるぞ。

ハンマーで対応しきれない凹凸はウェイト値を変えて微調整すると良い。これなら比較的短時間で良い結果を得られる。多くのジョイントにウェイトを与えるのは最後にした方が良い。

skinClusterの結合

複数のオブジェクトをまとめるとスキニングされたオブジェクトそれぞれのskinClusterノードが別々に格納される。

ひとつにまとめたいときは結合のオプションの項目に「スキニングの結合(skinning Combine)」をチェックするとskinClusterノードをまとめてくれるぞ!

ソースメッシュとベースメッシュの順番

別オブジェクトで左右対称のものにウェイトをミラーするときは、ソースメッシュ(ウェイト情報をもっているほう)、次にベースメッシュ(ミラーで移植したいほう)の順で行うと良い。

不要なbindposeノードの削除

再バインド等により過去のbindposeノードが出力に残ってしまう。ヒストリー消去でも消すことができないので、この場合はノードエディタを開き、表示された不要なノードを選択>backspaceで消去することができる。

親のトランスフォームノードの不要ノードを削除すれば子のノードも自然に消える。