strange items(楽天)


shade10.5〜15用スクリプト(WINDOWS&MAC用)一覧はこちらです。


bannerst.jpg
リンク用のバナーです。
リンクはご自由にどうぞ。

2016年11月12日

shade用スクリプトその95(ウェイト値のミラーコピー)

ウェイト値のミラーコピー.txt

このスクリプトが機能するのは、shade13以上となります。
(私の環境では、13、14、15で動作テストしました。)

対象は、ポリゴンメッシュのみとなります。その他の形状のスキンには使えません。
スキンのタイプは「頂点ブレンド」で使えます。「クラシック」では使えません。

<使用上の注意点>
・ポリゴンメッシュの上位パートにマトリクス変換がかかっている場合は、マトリクス変換がかかっていないパートに移動してからスクリプトを実行してください。

・ボーンやジョイントの名前は、かなずそれぞれ固有の名前にして、同じ名前が存在しないようにしてください。ポリゴンメッシュにバインドされているジョイントの中に同名のジョイントがあると、このスクリプトは正常に機能しません。

・また、ボーンやジョイントの名前には、先頭か末尾に半角の「L」か「R」あるいは半角の「l」か「r」、あるいは「右」か「左」というのをつけて、左用と右用の対となるボーンの名前は先頭か末尾以外は同じ名前にしてください。

例1)
「肩ボーン01右」と「肩ボーン01左」(この二つは位置的にも左右対称位置にある事)
あるいは「右肩ボーン01」と「左肩ボーン01」

例2)
「ひじボーンR」と「ひじボーンL」(この二つは位置的にも左右対称位置にある事)

例3)
「|llegbone002」と「|rlegbone002」(この二つは位置的にも左右対称位置にある事)


みたいな感じです。
また、「L」「R」でなく、「left」と「right」か、あるいは「LEFT」と「RIGHT」、あるいは「Left」と「Right」をジョイント名につける場合は、末尾ではなく先頭につけてください。


名前を元に対のボーンを探す場合は、このような命名規則を守っておく必要があります。
対ではなく中心軸上に一つしかないボーン(腰ボーンや首ボーンなど)は、先頭や末尾にLRやlr、右左の文字などは無くても大丈夫です。

なお、shadeの場合、ジョイント名の一番最初に「|」をつけるとポーズのインポートとエクスポートができますが、「|」は先頭につけていても大丈夫です。



<このスクリプトの目的>
キャラクターモデリングなどでは、X座標値0を対称点(Y軸を線対称軸)として、左右線対称な造形のモデルを作り、ボーンなどのジョイントも同じく線対称な構造で作り、スキンのバインドを行うという事が多いと思います。
バインド後は手動でウェイトペイントやスキンウインドウでの数値入力でウェイト値の調整をする事になるのですが、左右対称になるようウェイトを調整するのは現状のshadeでは面倒です。
例えば、バインド後に左ひじでウェイトペイントツールで調整をした後、右ひじでまったく同じような感じになるようウェイトペイントするというのはかなり難しい。

それをスクリプトでミラーコピーして瞬時にやってしまおうと考えて作ったのが、今回のスクリプトとなります。

プログラム的には、「選択している頂点(右側)の対となる位置にある頂点を調べた後、右側の頂点にバインドされているボーンとちょうど反対位置にあるボーンを検索してからウェイト値を左側の頂点にミラーコピーする」みたいになっています。
キャラクターの片側でウェイト調整ができたら、もう片方はスクリプトで良い感じに一瞬でミラーコピーしてくれる便利スクリプトというわけです。
キャラクターのスキンのウェイト調整で威力を発揮するでしょう。


このスクリプトが動作するためには、「X座標が0より大きい頂点だけを一個以上選択しておく」必要があります。
正面図や上面図で見て、X座標値が0以上である頂点をドラッグ選択などで複数選択しておきます。その選択している頂点部分だけ、反対側の頂点にウェイト情報がミラーコピーされます。


また。頂点数が多いモデルなどは、スクリプトの処理にかなり時間がかかってしまうため、選択する頂点の数はあまり増やさないようにしてからスクリプトを実行してください。
例えば、左ひじあたりのウェイト調整をした場合は、左ひじあたりの頂点だけを選択してスクリプトを実行して右ひじにウェイト情報などをミラーコピーする、という風に。


具体的な実行の手順としては、ポリゴンメッシュを一つだけブラウザで選択し、頂点編集モードに入って、上記の決まり事を守った上で右側の頂点を選択してからこのスクリプトを実行すると、ウェイトがミラーコピーされます。


なお、スクリプト実行時は、元のウェイト値を持ったポリゴンメッシュは兄階層(ブラウザで一つ上)に自動で複製し、レンダリングOFF・非表示にして一応バックアップを残しておくようにしています。
スクリプトを実行する度に、形状(とウェイト情報)のバックアップが増えていく事になります。

スクリプト実行後の「ミラーコピーしました」の表示で「キャンセル」を押してもウェイト情報は元に戻りませんので、ウェイト情報を元に戻したい場合はそのバックアップが取られた形状を使ってください。

ウェイトミラーコピー001.jpg
これは、Y軸を対象軸として線対称で作った形状に、同じく線対称で作ったボーンを入れてからバインドした物です。
オートバインドではこんな風にウェイト調整されました。
この画像では右端近くのボーンを選択した状態でウェイト表示しています。

ウェイトミラーコピー002.jpg
対称位置にある頂点も、オートバインドでは近くにあるボーンに線対称的な感じでウェイト調整されています。

ウェイトミラーコピー003.jpg
右側の頂点のウェイトを、ウェイトペイントツールで適当に変更してみました。
これと同じような感じで、先ほどの左側の方で右側と同じ感じのウェイトにしようとすると、手動でやるのは死ぬほど面倒くさい事になりますが、

ウェイトミラーコピー004.jpg

右側でウェイトペイントで変化させた周辺の頂点を選択してから、この「ウェイト値のミラーコピー」スクリプトを実行すると、

ウェイトミラーコピー005.jpg
バインドされているジョイント情報はそのままに、ウェイト値だけ左側の頂点にミラーコピーでき、左右対称な感じのウェイトにできるわけです。


うまくミラーコピーできたかどうかは、必ずスクリプト実行後に、ウェイトペインティングツールなどできちんと確認してください。


スクリプトのプログラム上、X座標がちょうど0の位置にある頂点のウェイトはミラーコピーされません。
shadeの場合、中心軸にあると思っていた頂点が実はX座標が微妙に右か左にずれてしまっている、という事がわりとあるので、その場合は中心軸のすごい近くにある頂点はスクリプト実行時には絶対に選択しないようにしてください。
「このスクリプトを実行する場合は、中心軸上にあると思われる頂点は選択しない」と覚えておけばいいです。

shadeのバインドボタンでは、左右対称でモデルを作り、ボーンも左右対称で組んだのに、バインドボタンを押すと、ボーンの構成によっては頂点のX座標が0の位置にある頂点が片側のボーンに少しウェイトがかかる状態でバインドされてしまう事があります。
その状態でウェイトペイントツールで中心近くの頂点や中心近くのボーンのウェイトカラーを見ると、ウェイトカラー自体片方に偏った感じになっていますが、中心軸上の頂点のウェイトが偏っているだけで、それ以外の部分はスクリプトを使えばきちんとミラーコピーされていると思います。


なお、実行時にダイアログボックスで「対のボーンは」のセレクターが表示され、「名前で探す」か「位置で探す」のどちらかを選択する事になりますが、ボーンの命名規則を前述の通りにしている場合は「名前で探す」を選択し、命名規則を守っていない場合は「位置で探す」にするといいでしょう。
(「位置で探す」の場合も、各ジョイントの名前はそれぞれ重複しない固有の名前にしておく必要があります)
「位置で探す」の場合、プログラムで対となるジョイントリストを作成するのですが、ジョイントがきちんと三次元的に対称的な位置にないと、正確に対となるジョイントを検索できない場合がありますので、やはりジョイントの名前をきちんと設定してから「名前で探す」を選択した方がいいです。

対となるジョイントは、「そのポリゴンメッシュにバインドされているジョイント」の中から検索されます。
バインドされていないジョイントは検索対象外となりますので注意してください。

また、スクリプト実行時には、必ずポーズをリセットして、モデルの頂点構成が左右対称となっているようにしてください。ポーズをつけた状態ではミラーコピーに失敗します。


スクリプト実行時のダイアログで「ボーンリストの出力」のチェックボックスをONにすると、対となるジョイントリストがメッセージ欄で確認できます。
スクリプトできちんと対となるジョイントの検索が成功できているかどうかを確認できるでしょう。

このスクリプトはスキンタイプが「頂点ブレンド」ならば、ボーンジョイントだけでなくボールジョイントとかその他のジョイントでもミラーコピーできると思います。


おまけスクリプト

バインドチェッカー.txt

こっちのスクリプトは、バインド情報がきちんとミラーコピーできているかどうかを頂点ごとに確認するための物です。

使い方は、ポリゴンメッシュを一つ選択し、頂点編集モードで頂点を一つだけ選択状態でこのバインドチェッカースクリプトを実行すると、メッセージウインドウにその頂点にバインドされているジョイント名のリストと各ウェイト値が表示されます。
頂点は一つだけ選択してスクリプトを実行してください。

その頂点とは対称位置にあるだろう頂点を一つ選択しなおして、またこのスクリプトを実行すると、同じようにバインド情報が追加して表示されるので、元の頂点のバインド情報が対称位置にある頂点のバインド情報にきちんとミラーコピーされているかどうかが確認できるでしょう。

ウェイトミラーコピー006.jpg

posted by stxsi at 12:30| shadeスクリプト | このブログの読者になる | 更新情報をチェックする

2016年11月02日

shadeにもmetameshプラグインが出れば結構売れそう

lightwaveでは、現在3rd powersというところが精力的にlightwaveの機能を拡張するプラグインを次々と出しています。



この動画では、その中の一つのmetameshというプラグインを紹介していますが、これかなり良いですよね。
MODO indieでもmesh fusionという機能で似たようなのがあります。

ポリゴンメッシュ同士を、元のポリゴンメッシュの構成をできるだけ残し、あまりポリゴン数を増やす事なく、接合部を滑らかにつなげたり(和結合)、削って稜線部分にラウンドエッジが出るようにする(差減算)」みたいなモデリング機能がshadeでも追加されたら、shadeでのポリゴンモデリング機能がまた一段と進化する事になるでしょう。
metameshと同じような機能をメーカーやサードパーティーがプラグインとして作り、まずは新しくできたshadeのマーケットプレイスで5000円から一万円くらいの値段で売れば、そこそこの数売れるでしょうし、将来的にshade本体に取り込んでbasic版からでも使える標準機能として搭載すると、モデリング用途でshadeを買うユーザーも出てくるかもしれません。


metameshと言えば、今のところshadeではメタボール系の機能として同名の機能が搭載されていますが、内容はかなり違います。
現状のメタボール系のmetameshでは細かいポリゴンが発生しまくりますが、上で挙げた動画のように元のポリゴンメッシュの頂点や辺の構成情報をできるだけ残した上でメッシュ同士を滑らかに接合できる機能があると、shadeでのキャラクターモデリングや木、プロダクト製品など色々な物をモデリングする時に、めちゃくちゃ役に立ちます。

mesh fusionというアイデアは、何年前だかにアイデアが考え出されて当時話題になり、その後色々なソフトで標準搭載されたり、プラグインが作られる事になりました。
そろそろshadeにも同じような機能を搭載して欲しいと思っているユーザーも結構いるのでは?


そろそろと言えば、そろそろshadeもPBRに対応すべきでしょうね。
PBRに対応しているのとそうでないのでは、やはりマテリアルの表現に大きな差が出ています。
PBRに対応してないのは、今後3DCGソフトとしての売り上げを大きく落とす要因になりかねない。
個人はもちろん、現在業務でshadeでインテリアパースを作っているところなども、「そろそろPBRに対応してくれ…」と思っているところが多いのでは?
ユーザーを逃がさないためにも、PBR対応は急ぐべき。

あと、shade標準でマルチパスレンダリングで形状の厚み情報を出力できるようにもしてもらえると、それを元にした疑似的なスキンシェーダープラグインなどを作るところが出てくると思います。
スキンシェーダーが実装されると、リアル系はもちろんデフォルメ系のキャラクターのレンダリングでも、肌の表現が今よりグッと良くなるでしょう。


matcap(球状の画像を元に陰影をつける)マテリアルを適用できて、その状態でモデリングができたりレンダリングができるようにもなるといいのですが。
現在shadeではテクスチャの貼り付け方法が「X、Y、Z、ラップ、球、円筒、ボックス」などありますが、そこにmatcap用の球画像を使えるような投影手法を新たに追加すると、静止画限定ではありますがオブジェクトの質感表現が進化する事になります。

単純にmatcap的に使うだけでなく、レイヤーのタイプを「通常」から「加算」などに変える事で、特定のオブジェクトに追加の光沢やライトを足す事ができ、shadeでの絵作りがやりやすくなります。

私が以前作ったリフレクションシェーダーというスクリプトは、matcapと似たような仕組みのポストプロセス型のシェーダーです。
http://strangedays2008.seesaa.net/article/422527672.html

matcaptest001.jpg

特定のマテリアルのオブジェクトに

matcaptest002.jpg
こういう球状の陰影情報がある画像を使ってmatcap的な処理をすれば、

matcaptest003.jpg
追加のライトや光沢を足す事ができると。

shadeのイメージテクスチャの投影手法に「X、Y、Z、ラップ、球、円筒、ボックス」だけでなく「matcap」というのを追加すれば、shade標準の機能でこれができるようになるわけです。
「このオブジェクトは、こういう方向からの光沢やライトを足した方が、見た目がもっと良くなるなぁ」と思った時にかなり役に立つでしょう。

posted by stxsi at 10:00| shade | このブログの読者になる | 更新情報をチェックする

2016年10月07日

shadeマーケットプレイスは閉鎖し、shade3D creatorsへ移行らしい

先ほど来たメールを読むと、shade公式サイトが運営していたマーケットプレイスは今年12月に閉鎖し、以後は先日紹介したshade creatorsでshade用データの販売を行って欲しい、みたいに書いている。

マーケットプレイスで売られていたかなり役に立ついろいろなプラグインは、今後はこっちの方で販売される事になるのかな?

ft-labさんがマーケットプレイス用に書いた数々の記事は非常に参考になるので、あれらの記事はマーケットプレイスは閉鎖しても公式サイトに残しておくべき。

posted by stxsi at 19:06| shade | このブログの読者になる | 更新情報をチェックする

2016年10月03日

shadeユーザー向けの3Dデータ販売サイトが新たにオープン

3DCGソフトshadeは、メーカー自身が3Dデータを売買できるマーケットプレイスのサイトを作ったものの、素材登録者のデータ登録に手間がかかる(webですぐ登録ではなく、郵送などで書類を送ってもらい、また登録時には色々本人確認の書類などが必要)という面倒な点があるためか参加者が思ったほどでなく、残念ながらあまりコンテンツが増えていってません。

そうこうしているうちに、

shade3D creators
https://shade3d-creators.jp/

という、shadeユーザー向けの3Dデータ売買サイトができたようです。
このサイト、何故かshadeのメーカー自身も協力していて、shade3D社から1200点以上の3D素材が提供されてオープン開始時からコンテンツがわりと充実しています。

こっちのサイトはクリエイター登録はwebからすぐでき、また販売する3D素材もすぐにアップロードできました。
アップされた3Dデータは、著作権などに問題がないか、きちんとshadeで読み込めるデータなのかを確認してから掲載されるようで、アップしてから実際にサイトに掲載されるまでは結構日にちがかかるよう。

今のところ、インテリアやプロダクト関係の素材しか登録カテゴリが無いのは残念です。
メカやロボット、キャラクター(いずれもオリジナルのデザインの)、またshadeで使ってもらうためのテクスチャ(カラーやトリム用などのテクスチャ画像の詰め合わせや、shadeの表面材質ファイルの詰め合わせや、HDRI用の画像など)もアップできるようにカテゴリが増えると、もっと素材登録者が増えて、色々なコンテンツが日々増えていってサイトは賑わうでしょう。


shade3D社自身がやっているマーケットプレイスも、素材作者の登録方法を見直して、webからすぐに登録してその日から素材をアップできるように変更すべきでしょうね。
そうすれば日々色々なコンテンツが公式のマーケットプレイスでどんどん増えていくようになって、今とはだいぶ状況が変わるでしょう。

公式のマーケットプレイスでは役に立つプラグインなどが色々販売されているのですが、コンテンツが充実していってもっと人が来るようにればそれらの売り上げもアップして、各プラグイン作者さんももっとやる気を出すようになります。
せっかくメーカー自身が公式のマーケットプレイスを作ったのに、素材作者の登録で余計なハードルを設けているのは、大きなマイナスです。実際、そのせいで今は参加者が少ないという結果を招いているのは、きちんと見直すべき。

3Dデータの販売については、「他所のところからデータを転載して、作った本人でないのにデータ販売で金を稼ぐ」という問題がありますね。
公式のマーケットプレイスで素材作者登録が厳密になっているのは、それを考えての事かもしれません。
しかし、それについては「売れたデータの支払いは、翌月ではなく三か月くらい後から」という制約を設けておけば、その間に「この素材、他のサイトからの転載では?」みたいな通報が来て、転載して儲けようと思ってる者に金が入る前に送金をストップする事ができます。

他の色々なダウンロード販売サイトは、ほとんどがクリエイター登録はwebで簡単にすませられて、本人確認は厳密にやらなくても、うまくやっていけてるところは多いです。
shade公式のマーケットプレイスも、そこらへんは他のサイトを見習うべきでしょう。

公式のマーケットプレイスの素材作者登録方法が見直され、もっと簡単に色々な人が参加できるようになると、他のダウンロード販売サイト同様、毎日毎日色々なshade向けの素材がどんどん増えていく事になります。
マーケットプレイスでコンテンツが充実すると、shade自身の魅力も高める事になってソフトの売り上げにプラスになるので、今の寂れたマーケットプレイスはきちんとテコ入れすべき。

posted by stxsi at 11:19| shade | このブログの読者になる | 更新情報をチェックする

2016年05月06日

shade14、15でのマトリクス変換のリセット方法

長くshadeを使ってきた人なら結構使った事があるかもしれない隠し機能「パートの変換をリセット」「全ての変換をリセット」。

選択しているパートや、その上位パートのマトリクス変換を、内包するオブジェクトを移動せずにリセットしてくれる機能です。

で、この機能はバージョン14から隠し機能の項目から削除されたため、スクリプトで同じ事が行えるようにURIさんという方が作ってサイトで公開されています。

私もバージョン14以後はこのスクリプトを使ってマトリクス変換のリセットなどをしてきたのですが、今日shadeのフォーラムのUVマップに関する質問をされたPowさんという方の書きこみを見て、「移動」ツールの方に「パートの変換をリセット」「全ての変換をリセット」がいつの間にか追加されていたのに気づかされました。

なんという事だ・・・。
結構使っていた隠し機能が無くなったと思ったら、標準機能として14から実装されていたんですねぇ。

バージョン14と15では「移動>パートの変換をリセット」「移動>全てのパートの変換をリセット」で、変換のリセットができるようになったようです。
posted by stxsi at 16:02| shade | このブログの読者になる | 更新情報をチェックする

2016年01月14日

LINE用の面白スタンプ

3Dの話ではないのですが、私の知り合いが作ったLINE用のスタンプが結構面白いので紹介を。

・コワモテで応答スタンプ(LINE STORE)


st001.jpg
謝罪を要求する時に。


st002.jpg
やばい話を聞いた時に。


st003.jpg
悪事を打ち明けられた時に。


st004.jpg
朝のモーニングコールでこれを連打(笑)


st005.jpg
これはわりと使う。


st006.jpg
これも結構使う。



・コワモテで応答スタンプ2(LINE STORE)
シリーズの二つ目

st007.jpg
セールの情報などを聞いた時に。(笑)


st008.jpg
普通の使い方だけでなく、知り合いに子供の成長した画像を見せられた時に使うのも面白い。


st009.jpg
金欠で苦しい時や、おごって欲しい時に。


st010.jpg
色々話を聞いた末に、これを貼る(笑)


st011.jpg
物を頼む時にわりと使う。


st012.jpg
これも汎用性が高くて結構使うなぁ。


st013.jpg
さりげなく食事に誘ってもらいたい時に。


st014.jpg
「どうなったんやおじさん」と勝手に命名。


st015.jpg
知り合いから美味そうな料理の画像を見せられた時に。



・コワモテで応答スタンプ3(LINE STORE)
シリーズの三つ目

st017.jpg
これは、受験シーズン向けに作ったのかな?


st018.jpg
心をこめて謝罪。


st019.jpg
あまり喜ばしい状況になってない話を聞いた時に。
仕事でも、進捗状況最悪な時にこれを使ったり。


st020.jpg
裏切られそうな時に。


st021.jpg
既読なのに返事が来ない時に。

st022.jpg
さりげなく告白。


st023.jpg
力を出しきれぃ。


st024.jpg
(笑)


st025.jpg
ひどい話を聞いて、一緒に泣いてやる時に。


st026.jpg
ずばり。


LINEスタンプは、他にも個人的にお気に入りのがあったりする(個人的な面識はないけど、「GP路地裏」さんのとか紹介してみたい)ので、気が向いたらそういうのをここで紹介していくかもしれません。

posted by stxsi at 15:07| LINEスタンプ気まぐれ紹介 | このブログの読者になる | 更新情報をチェックする

2015年12月23日

steamでMODO indie901が18000円のセール中

steamの年末のホリデーセールで、MODO indie901が40%OFFで18000円くらいで買えるようになっていますね。
私が買った時より少し安くなっています。
このセールは2016年1月5日までのよう。

indie版は若干制限はあるものの、この値段なのに色々楽しめて結構良い感じですよ。

・レンダリング解像度やテクスチャ解像度は4kまで。
・3D形状の出力はobjかFBX形式で、出力時の最大ポリゴン数は10万ポリゴンまで。
・プラグインやスクリプトは使えず。
・indie版はマニュアルは英語のみ。

や、それ以外にもいくつか制限はありますが、

・高速で美しいレンダリングが楽しめる
GIレンダリングとかは速くて美しいです。
標準のマテリアルエディターだけでなく、ノードベースのマテリアル設定もでき、高度な表面材質表現が可能。
他ソフトにはあまり実装していないベクターディスプレイスメントマッピングは、通常のディスプレイスメントマッピングとはまた違った面白さあり。

・indie版でもPBR(物理ベースのシェーディング)が使用可能。
「リアルな質感表現ができる」という事で、ゲームなどではどんどん実装が進んでいるPBR。
でも、統合型3DCGソフトで標準のレンダラーがPBRに対応しているのは今はまだ珍しいかも。
ただし、プラグインは使えないので、substance painterや3D coatなどで設定したPBRマテリアル情報のインポートはindie版ではできず。

・リアルなファーレンダリングが可能。
shadeのファーレンダリングは、生やせる毛の本数に上限があって、毛が短めだとどうしても禿げ散らかす感じになってしまいますが、MODO indie版でも使えるファーレンダリングでは、すごいリアルな毛並みなどが再現できます。人間の髪の毛や動物とかぬいぐるみの毛の表現だけでなく、絨毯や草原などの表現にも。

・3Dペイントや3Dスカルプトツールとしても使える。
MODOは標準機能として3Dペイントツールを実装していて、3D coatよりは多少劣るものの、それでも結構使い勝手の良い3Dペイントができ、カラーテクスチャやバンプ、ノーマルマッピング用のテクスチャの作成が可能。
ソフトにこの手の3Dペイントツールが実装されているとすごい使い勝手が良くなるので、shadeも3Dペイント機能の実装は是非やって欲しいですね。
3Dペイントだけならば、substance painterとかも安く買えるので良いと思います。

・シェーディングなどをテクスチャにベイクできる。
陰影情報をテクスチャなどに固定したい時にベイクするだけでなく、ハイポリゴンモデルのディテール情報を、ローポリゴンモデルに法線マップとしてベイクも可能。
unity向けにモデルを作るのに使えるでしょう。

・そこそこ速いスキンシェーダーやSSS(サブサーフェイススキャッタリング)を実装している
人物や半透明感のあるオブジェクトの表現に最適。
人物の肌はSSSで表現するより、肌の表現に最適化したスキンシェーダーマテリアルを使った方が、計算時間を抑えて早めにリアルな肌がレンダリングできます。
shadeも肌専用のスキンシェーダーは是非実装して欲しいですね。(私が持ってるstandard版でも使えるようにして)

など。
他にもトゥーンレンダリングや、ボリューメトリックエフェクトや、物理演算によるリジッドボディやソフトボディ、クロスシムなどもindie版で使えます。

シーン内の総ポリゴン数については、他のソフトに持っていく場合でないのなら、10万ポリゴンを越えてもファイルのセーブやレンダリングはできます。
レンダリング解像度に制限はあるものの、趣味用途で美しいシーンやメカ、車などのレンダリングをMODO indieで楽しむってのもアリかと。


ポリゴンモデリングは、私は今のshadeで十分満足しているのであまりその用途ではMODO indieは使っていないのですが、MODOは元々モデリングツールとして定評があっただけに、使い勝手も良いと思います。
indie版はスクリプトやプラグイン不可なので「こういう機能が欲しい」と思っても自分で追加できないのがネックではありますが。
901で標準搭載されたmesh fusionという特殊なモデリングツールは、プロダクト系やメカなどのモデリングに結構威力を発揮するかも。
ただし、mesh fusionで精度の高い形状にするとポリゴン数が多くなりがちなので、10万ポリゴンの制限では他のソフトには持っていけないかも。


私がメインのモデリングツールとして愛用しているshadeも今後はどんどん足りない機能を実装していくのに期待したいですが、「shadeの進化にちょっと待てない」という人は他のソフトも併用して3DCGを楽しむのもアリだと思います。
私自身は、もうかなり昔から他のソフトも併用して色々楽しんでたりします。

・人物キャラクターのレンダリングでスキンシェーダーを使いたい。
・リアルなファーレンダリングを楽しみたい。
・bulletベースの物理エンジンでリジッドボディやソフトボディのアニメーションを作りたい。
・3Dペイント機能が欲しい。
・インテリアシーンやエクステリアシーン、メカなどをそこそこの速さで美しくレンダリングしたい。
・高度なマテリアル表現がしたい

などの目的で、MODO indieを、このセールの期間中に2万円以下という安い値段で買ってしまうのもいいかも。

上記の事は今なら無料のblenderでも可能でしょう。
blenderの場合、「独特のクセのあるUIに慣れるなら」という条件はありますが。


posted by stxsi at 12:05| modo | このブログの読者になる | 更新情報をチェックする

2015年12月13日

shade用スクリプトクィックガイド(その3)

私が3DCGソフトshade向けに作ってきた色々なスクリプトを紹介していくシリーズ。

第一回
第二回


に続き、今回は第三回目です。
前回に続き、ポリゴンモデリング系スクリプト。

<P40:集合点の分解 >

サブディビジョンサーフェイス(ポリゴンメッシュの角の丸め)をONにした形状で、複数の頂点を同一座標に集合させて、角(つの)の形にしている場合、その同一座標にある頂点がもしマージされてしまうと、角は消えてしまいます。

qu070.jpg

qu071.jpg

私が作った色々なポリゴンメッシュ系の加工スクリプトでは、「同一座標にある頂点はマージする」というスクリプトリファレンスにある命令(メソッド)を利用して形状に不具合が起きないようにしている物が多く、それらを使って「角が消えてしまった・・・」という場合、また角に戻したい頂点を選択状態でこのスクリプトを実行すると、

qu072.jpg

という感じで、角を戻せるのです。

このスクリプトでは何をやっているかというと、同一座標にある頂点を分解して、微妙にずれた位置に頂点を作っているのです。


<P41:ビトウィーン選択>

qu073.jpg

qu074.jpg

「一番最後に選択した要素(頂点や辺、面)」と、「最後から一つ前に選択した要素(頂点や辺、面)」を結ぶように選択を拡張してくれるスクリプトです。

carraraだったと思いますが、そういう機能が確かあり、面白そうなのでshadeでもできるように作ってみたやつですね。

こういうビトウィーン選択機能は、shadeもバージョン15で標準機能として実装されたようです。


<P42:面張りと削除>

qu075.jpg

上記画像のような状態で、「辺は残して面だけ削除したい」というのを当時のshadeでできるように作ってみたスクリプトです。

qu076.jpg

このスクリプトは二つの機能を搭載しており、「面が存在している場合は辺を残して面を削除」し、逆に「面が存在しない場合は面を貼る」という事をやります。

もっとも、面貼り機能だけなら、shadeには元々標準機能で面貼りツールが実装されていたのでそっちを使えばいいでしょう。


<P43:稜線のオフセットとコピー>

qu077.jpg
これは一つ前の「面張りと削除」で、辺を残して面だけ削除したポリラインですが、「元のポリラインと一定の厚みを持った形状を生成したい」という時に、このスクリプトを使います。

qu078.jpg

上記は透視図でパースがかかっているので一定の厚みに見えないかもしれませんが、実際は上面図などで見ると、一定の厚みになっています。

面の生成だけでなく、選択していた稜線のオフセット移動(一定の厚みで内側や外側へ移動する)機能もあり。

qu079.jpg

ただし、複製にしろ、選択稜線のオフセット移動にしろ、外側ではなく内側方向へ実行した場合は、頂点数が多いとポリゴンのねじれが発生する場合があります。
これは、他の3DCGソフトに搭載されているオフセット移動や複製ツールでもそうですが。


<P44:指定位置を中心にスケーリング>

qu080.jpg

qu081.jpg

qu082.jpg

qu083.jpg

選択している要素を、「選択要素の中心を元に数値で拡大縮小する」スクリプトです。
複数のグループを「同じ比率」で上下や左右、奥方向に拡大縮小していくために作ったスクリプトですが、shadeはバージョン13でツールプロパティパネルが搭載され、拡大縮小などをやるとそこに拡大率などの数値が表示されるようになったので、このスクリプトは使わなくなりましたね。


<P45:カゴ作成支援スクリプト>

qu084.jpg

qu085.jpg

厚み付けしてしまった後の形状に、カゴのように穴をお手軽に空けたいために作ったスクリプトです。

厚みが分厚すぎるとエラーが起きる場合があります。


<P46:ツイストツール>

qu086.jpg

qu087.jpg

選択している頂点をねじる(ツイストする)ツールです。

「先っぽも一緒にねじる」という、他の3DCGソフトには見かけない特殊なオプションも付けてみました。
これがあると無いとでは、結構使い勝手が違ってくるのです。


<P47:ガイドラインスケーリング>

qu088.jpg

選択している頂点を

qu089.jpg

ガイドライン(線形状)の形にしたがって、

qu090.jpg

二軸同時や、特定の軸方向にだけ拡大縮小するツールです。

qu088.jpg
qu091.jpg

テーパー(先細り)ツールとしても使えます。


<P48:ガイドラインムーブ>

qu092.jpg
選択している頂点を、

qu093.jpg
ガイドライン(線形状)の形に従って

qu094.jpg

移動(ムーブ)してくれるスクリプトです。

元の形状は直線状に並んでいる方が結果が予想しやすいです。


<P49:ガイドラインへフィット>

一つ前の「ガイドラインムーブ」スクリプトは、選択頂点が直線状に並んでいる方が結果が予測しやすいのに対して、こっちの方は別に直線状でもなくても、ガイドライン(線形状)の形にフィットするように選択頂点が移動してくれるスクリプトです。

qu095.jpg

qu096.jpg

qu097.jpg

スクリプトの実際の使用方法には若干注意しておく点があります。
(最初に二頂点しか選択していないと、ガイドラインが作れない)


<P50:外形面選択>

qu098.jpg

qu099.jpg

選択している面を囲んでいる面を選択状態にするスクリプトです。


<P51:指定の頂点数の面を選択>

qu100.jpg

頂点数で面を選択したり、現在選択している面と同じ頂点数で構成された面を選択状態にしたりします。


<P52:センタリング>

qu101.jpg

qu102.jpg

ポリゴンメッシュモデリングでは、ポリゴンメッシュパーツの中心をX軸やY軸、Z軸中央に移動したい事がよくあるので作ってみたスクリプトです。

上記の例ではX軸0の位置に中心を移動しましたが、Y軸0やZ軸0の位置にもポリゴンメッシュの中心を移動できます。

このセンタリングスクリプトは、選択頂点や選択辺、選択面ではなく、そのポリゴンメッシュ全体を移動します。
選択頂点だけを中心に移動するスクリプトは、また別にあります。


<P53:ポイント移動と面の複製>

qu103.jpg

qu104.jpg

ポリゴンメッシュの中の一部のポリゴンを、「元の形状にぴったりくっついた状態で」指定回数複製するのに便利なスクリプトです。
作った本人が言うのも何ですが、このツールはモデリングにおいては結構役に立ちます。
メッシュツールプラスには収録していないので、コマンドパレットにスクリプトを登録して使うと、使い勝手が良くなるでしょう。


<P54:選択の拡張(シフト)>

qu105.jpg

qu106.jpg

要素(頂点、辺、面)の選択作業を多少効率化してくれるスクリプトです。
上記の画像のように「同じ大きさの面」を複数持つ「平面形状」で役に立つでしょう。


<P55:選択の拡張(回転)>

qu107.jpg

qu108.jpg

こちらは、球状や回転体状の形状において選択を効率化するために作った物です。
「結果確定前のダイアログでは結果が確認できない」という不具合がありますが、使用自体には問題は無いと思います。

<P56:うずまきツール>

qu109.jpg

qu110.jpg

うずまきツールというのは、中心と外周で回転の大きさを変える事によって、うずまき状に選択頂点を回転するスクリプトです。
他の3DCGソフトにそういうツールがあったので、shadeでもできるように作ってみました。

たとえばカーモデリングで、タイヤホイールがうずまき状にカーブを描いている時などに役に立つかもしれません。


<P57:選択の拡張(貫通)>

qu111.jpg

qu112.jpg

選択している要素(頂点、辺、面)と、上面図で見て(あるいは側面図や正面図で見て)同じ位置にある要素も選択に加えるスクリプトです。

「ワイヤーフレームモードで投げ縄選択すればいいのでは?」みたいに思うかもしれませんが、「ループ選択してから、このスクリプトで選択を拡張」の方が、オペレーションが結構早くなる事がわりと多いです。


<P58:リング単位で拡大縮小>

qu113.jpg

qu114.jpg

選択している辺を、リング(ひとつながりの輪)単位にグループ分けした上で、各グループ毎に、「グループの中心をピボットとして拡大縮小する」というツールです。

ポリゴンモデリングにおいては、こういうツールは結構威力を発揮するでしょう。


今回はここまでです。

posted by stxsi at 20:51| shadeスクリプト | このブログの読者になる | 更新情報をチェックする

2015年12月12日

トゥーンレンダリングはこういう用途にも使える(shade)

以前にふと思いついたアイデアを、実際に実験してみました。

toonline01.jpg
これは簡単にモデリングしたゲームコントローラーを大域照明ONでレンダリングした物ですが、実際のゲームコントローラーは、「本体パーツと十字キーやボタンの間には微妙な隙間が空いており、その隙間は暗くなっている」というのが確認できるかと思います。

メカ物やプロダクトデザインでは、こういった部分をきちんと表現するかどうかで見た目のクオリティがだいぶ違ってくるのですが、それをモデリングでやろうとすると結構面倒くさかったり。

3DCGソフトによってはアンビエントオクルージョンで交差部分近くを暗くするという事もできますが、そういえばshadeのトゥーンレンダリングは交差部分の描画のみもできるなぁと思い・・・

toonline02.jpg
こういう感じで交差線だけトゥーンレンダリング(無限遠光源や環境光、背景などを調整して、交差線以外は真っ白に)したものを、画像編集ソフト上で乗算レイヤーとして先ほどの画像に重ね合わせると・・・

toonline03.jpg

こんな感じで、先ほどよりぐっと良くなったように思います。
toonline01.jpg


一番最初の画像と比較すると、一目瞭然ですね。
ただ形状をめり込ませているだけなのに、現実世界のオブジェクトみたいに「パーツとパーツの微妙な隙間にできる暗部」が再現できると。

これは静止画でしか使えない方法ですが、プロダクトデザインやメカ物の静止画レンダリングでクオリティを高める方法として役に立つ場合もあるんじゃないでしょうか。

アングルによっては交差部分だけでなく輪郭線もレンダリングして、不要な部分は削除した上で乗算合成するといいかもしれません。



<basic版でもできるもう一つの方法>

トゥーンレンダリングはstandardバージョン以上でないと使えませんが、以下のように「レンダリングブーリアンを使う方法」もあり、こちらはbasicユーザーさんでもできるでしょう。

toonline04.jpg

上記の画像では、ボタンと本体パーツの交差部分に良い感じに黒い線が入っていますが、これは

1・各ボタンを同位置に複製
2・それぞれを「べベル>オフセット」で面の法線方向に少し膨らませる
3・膨らませた各オブジェクトは一つのパートに入れ、「&=」記号をつけて、ボディのパーツにだけ影響する形で真っ黒(拡散色も光沢も黒)の表面材質をレンダリングブーリアンする。

という感じです。

toonline05.jpg
各ボタンを非表示にしてレンダリングすると、こういう感じになっています。
それぞれのボタンより少し大きいサイズで、真っ黒の表面材質が「&=」でレンダリングブーリアンされているわけです。ボディーのパーツにだけ。


こっちの方式はボタン数が増えると、それぞれで少し大きいサイズのレンダリングブーリアン用オブジェクトを作る手間がかかりますが、この方式の利点としては、「カメラの視点を変えても大丈夫」というのがありますね。

toonline06.jpg

ちなみにレンダリングブーリアンをオフにすると、

toonline07.jpg

という感じで、やっぱりこういう手間を少しかけた方が、メカとかプロダクト製品では見映えがぐっと良くなります。

toonline08.jpg

メカ物とかは一体成型で作っているパーツはともかく、「複数のパーツが組み合わさって作られている箇所」については、「はめ込んでいる」感じを出すために、こういう手間をかけた方がいいでしょうね。

toonline09.jpg

toonline10.jpg

どちらも大域照明ONでレンダリング。

パーツをめり込ませただけでなく、レンダリングブーリアンで交差部分に黒い線を出した方が「はめ込んでいる」感が出て、ぐっと良くなると思います。


posted by stxsi at 10:08| shade | このブログの読者になる | 更新情報をチェックする

2015年12月05日

shade用スクリプトクィックガイド(その2)



第一回の続きです。


<P21:表面材質を残してマージ>

「二つのポリゴンメッシュを、片方の表面材質情報やUV情報を残したままマージできます。」というスクリプトですが、このスクリプトは作った私でさえあまり使用していないので、説明は省略します。


<P22:指定位置で分割>

qu044.jpg



qu045.jpg

shadeはバージョン12だったかでループスライスナイフが実装されました。
それ以前のshadeで希望した位置にループスライス処理をするには、このようなスクリプトが必要だったのです。

ループスライスナイフが実装された今は全然使いませんね。


<P23:線形状をポリラインに変換&マージ>

qu046.jpg



qu047.jpg

線形状をスクリプトでポリゴン化してから、兄階層にあるポリゴンメッシュとマージするスクリプトです。

線形状が「閉じた線形状」なら、ポリゴン化してから一緒のパートにポリゴンメッシュ二つを入れてマージすればいいでしょうが、開いた線形状の場合はやや手間がかかるので、作ってみたやつですね。

また、「近くで結ぶ」オプションをONにすると、上記のように四角のポリゴンと丸い線形状をつなぐようにマージして、こういった形のパーツも簡単に作れます。
実際は、つなぐ形状によっては穴が結構あいてしまうんですがね。


<P24:選択頂点の中心に円球を作成>

qu048.jpg



qu049.jpg

選択している頂点の中心に、円や球をポンと作ってくれるスクリプトです。

作られた円を使って「線形状をポリラインに変換マージ」をしたり、球を作って、前回の記事で紹介した「選択ポイントを球の表面へ移動」スクリプトで選択頂点を円状に並べたりするのに使います。


<P25:ループ稜線の丸めとベベル>
<P26:シンプル稜線の丸めとベベル>
この二つは、バージョン10当時はshadeにはポリゴンのエッジべベル機能が無かったので作ってみたものです。

13以後は標準のエッジべベルツールを使うようになって、どっちも使わなくなりましたね。
ちなみに14と15でこの二つを使用すると、形状が変な事になるようです。


<P27:極周辺で分割>

qu050.jpg



qu051.jpg

「極」とは南極とか北極のあの「極(pole)」の事です。
極付近のエッジをループ状に分割するのに使います。
分割数を指定して分割したり、位置を指定して分割したり。

極付近のエッジはループスライスナイフではループ状にカットできないため、このスクリプトは今もわりと使います。


<P28:コーナーポイントの丸めとベベル>

qu052.jpg



qu053.jpg

線形状は角の丸めが昔からできますが、ポリゴンメッシュでも角にある頂点を丸めやべベル(切り落とし)処理をできるように作ったものです。

「厚みをつけてから、エッジべベルをして、厚み分は消せばいいのでは?」と思うでしょうが、このスクリプトを作った当時はshadeにはポリゴンのエッジべベル機能はまだ搭載されていなかったのです。


<P29:メッシュツールプラス>

qu054.jpg

ポリゴン系のスクリプトをワンボタンですぐに実行できるようにしたパネル形式のウィジェットです。

全てのポリゴン系スクリプトを収録してはいませんが、わりとよく使うスクリプトはこれに収録しています。

各ボタンの上にマウスカーソルを止めると、スクリプトの名前と機能がしばらくの間表示されます。


<P30:ステップ選択>

qu055.jpg

一個飛びだったり、二個飛びだったり、そういう感じでstep(間隔)を空けて選択をしたい時に使います。
通常の選択方式に加えて、「ビトゥイーンモード」にすれば、途中で選択を止める事もできます。


<P31:内包面の検出>

qu056.jpg

「内包面(ポリゴンメッシュの内側に埋まっている不正な面)」を検出するためのスクリプトです。
場合によってはこのスクリプトでも見過ごしてしまうような内包面もごくまれにありますが、基本的にはほとんどの内包面を発見してくれるかと。

内包面がポリゴンメッシュの中にあると、不正な皺が出たり、形状加工時にshadeが落ちてしまう事があります。

ちなみに、エラー診断の「三面稜線」の場合だとこんな感じで、外側の面までも選択状態になってしまいます。

qu057.jpg


<P32:一点収束閉じ>

qu058.jpg



qu059.jpg

面を一つ選択状態で実行すると、一点で収束するような形で閉じてくれるスクリプトです。


<P33:二頂点間の距離を表示 >
選択している二頂点の距離を表示してくれるスクリプトですが、上位パートにマトリクス変換がかかっていると数値が不正になりますし、あんま使う事も無いスクリプトです。


<P34:厚みをつける>

qu060.jpg



qu061.jpg

平面状のポリゴンメッシュに厚みをつけるスクリプトです。

shadeも14からポリゴンメッシュツールに厚み付けが追加されましたが、法線方向にしか厚み付けができないのに対して、このスクリプトは厚みつけの方向を「法線方向」「X軸方向」「Y軸方向」「Z軸方向」から選べます。

こっちのスクリプトは標準の厚みつけツールみたいにリアルタイムで結果が変動しないのと、ポリゴンメッシュ全体に厚み付けをしてしまうという欠点はあります。


<P35:ソフトムーブ>

qu062.jpg



qu063.jpg

マグネットツールではアバウトな移動になるため、もっとかっちりソフトな移動をしたいと思って作ったスクリプトですが、正直制御がかなり難しい。

マグネットツールとは違ったソフトセレクションツールはshadeにも実装して欲しいですね。

書いてる今ふと思いついたんですが、ウェイトマップを設定してボールジョイントを操作すれば、ソフトムーブやベンド処理的なモデリングアプローチができますよね。


<P36:マニピュレーターの位置を変更>

「マニピュレーターの位置が変更できない」と勘違いしてた頃に作ってしまったスクリプトですね。


<P37:エッジ一括選択ツール>

qu064.jpg



qu065.jpg

複数のエッジを選択状態で実行すると、各エッジ毎にループ選択やリング選択をしてくれるスクリプトです。

shadeで15現在実装されているループ選択やリング選択は、「選択している全てのエッジごとに選択の拡張を行う」ので、このスクリプトは15ではお役御免となりました。

しかし、「複数のエッジを選択状態で、最後に選択に追加したエッジだけをループ選択やリング選択したい」という場合は、shade標準のループ選択やリング選択ツールではできないので、その場合は私が作ったループ選択スクリプト、リング選択スクリプトをご使用ください。


<P38:選択ラインを瞬間表示>

qu066.jpg

自由曲面の良い点の一つは、「断面ごとに線形状を編集できる」というのがありますが、ポリゴンメッシュでも入り組んだ線の中から断面の線を表示できるようにと作ってみたスクリプトです。

その過程で、「選択している頂点(や辺、面)を一時的に記憶しておく」みたいなスクリプトも作ってみました。

断面表示については、プラグインを使えるstandard版以上のユーザーは、MASAさんという方が作ったポリラインをハイライト表示してくれるプラグインを使った方が良いと思います。


<P39:片面削除後ミラーコピー>

qu067.jpg

qu068.jpg

スクリプトでやっている事は、「Y軸より左の頂点や面を全て削除して、Y軸を中心に鏡面コピーする」です。

ミラーリングツールがあるので、対称モデリングはそれを使えばいいと思うのですが、お手軽に鏡面コピーする時などに今でもたまに使いますね。
部分的にではなく、そのポリゴンメッシュ全体が鏡面コピーされます。

shadeは球や自由曲面をポリゴンメッシュに変換すると、見た目的には中央にある頂点が、実は微妙にずれている事があります。

その状態でこの「片面削除後ミラーコピー」をすると、

qu069.jpg

こんな風に穴が空いてしまいます。

そうならないよう、このスクリプトを実行する前に中心にある頂点はX座標値をきちんと0にしておく必要があります。


今回のスクリプトの紹介は、ここまで。
また次回に続きます。


posted by stxsi at 20:07| shadeスクリプト | このブログの読者になる | 更新情報をチェックする