ZBrush – 男の素体

2013_07_31Image_01
そういえば、随分前に作ったこのモデル。
アップしようと思って忘れておりました。

 

久しぶりに見てみると、、あぁ、、
色々と酷い。
ほんの少しだけ手を入れて、アップします。
MaleBase01
物は大した事ありませんが、何もない状態から始めるよりは少し時間を節約できる。

 

3Dcoat、現在作られているベータ版ではリトポ機能が強化されるようで、
殆どのポリゴンを四角形にし、螺旋でリトポされるのを大幅になくすそうです。素晴らしい。
相当ZBrushを意識しているのでしょう。
ZBrushでのリトポで螺旋ができてしまうのは、ポリゴンカウントをいじると、ある程度解決される場合もあるようです。
3Dcoatのベータ版、この機能にこういった要素が加わればなぁ、と思っていたものが知らぬ間に付いていたりする。
なるほど、サイトで使い方を書く人が少ないわけだ。定石がすぐに崩れる、、

ZBrush 3Dcoat xNormal knald

ZBrush4R6が少し前に出ました。
リトポ機能が優れたようです。
四角形のポリゴンだけでリトポしてくれるのはありがたいが、細かい調整ができない。
なので、5角形が混じることがあっても手動で整えられる3Dcoatは欠かせない。

 

xNormalを使ってノーマルを作成してみました。
とりあえずのテストなので、適当なモデルを作りました。
2013_07_26Image_01
これを3Dcoatでリトポし、xNormalでハイモデルとローモデルを読み込んで、ノーマルベイクです。

 

更にknaldでオクルージョンとその他のマップも焼いて、3Dcoatで、合成。
2013_07_26Image_02
モデルがモデルだけに、ほとんど効果はありませんが、もっと複雑なものであれば、それなりの効果が出ます。

 

そもそも、3Dcoatでボクセルモデリングしていれば、ZBrushすらも使う必要がなくなる。
でもスカルプトの楽しさはZBrushの方が高いと思う。
うーん、悩みどころだ。一つのツールで完結させたほうが良いといえば良いし、
自由度や編集のしやすさは3Dcoatに分があるように思う。

Maya2014

Maya2014を触ってみました。
2013_07_19Image_01
モデリングツールキット、と呼ばれる新たなツールです。

 

なんだろう、MODO感が凄い。
マニピュレータに○印が付き、二軸での操作がしやすくなった。
選択の事前プレビューが付いた。
選択範囲を記憶してくれるようになった。
スティッキーツールのような動作をするツールが出来た。

 

有機的なモデルであれば、Mayaだけでもそれほど苦労せずにモデルングできるようになったかなぁ。
Alenbicでやり取りすれば、ツール間をほぼシームレスで行き来できるから、Mayaにそこまでのモデリング機能も要らないきがする。
どうせ追加するならMODOくらいのモデリング機能を追加してもらいたい。
まぁ、進化したことはおめでたいか。

Maya Script Python – PS Script – フォトショップで保存を行うと同時にMayaでテクスチャリロード

またまた更新が滞っておりました。

 

Mayaではコマンドを実行しないとテクスチャはリロードされない。
ファイルの更新を監視してリロードする。というのも考えましたが、面倒くさそうなのと、
環境によっては色々と必要になりそうなので、他にいい方法はないのか、と探しておりました。

 

どうやらフォトショップから他のツールに対して信号を送ることができるらしく、
それを経由すればMayaにコマンドを送ることができるのではないか、ということでやってみました。

 

まずは下準備。

import maya.cmds as cmds
cmds.commandPort(n=':30000',stp='python')

Mayaで上記のコマンドを実行し、ポートを開いておきます。
userSetup.py等に書いておくと良いかと思います。

 

で、フォトショップスクリプト

if (app.documents)
{
	try{
		activeDocument.path;
		activeDocument.save();
		fileObj = new File("※注 フォトショップのスクリプトパス");
		fileObj.execute();
	}catch(e){
		alert("一度名前を付けて保存してください")
	}
}

※環境に応じたフォトショップのスクリプトパス

fileObj = new File("C:/Program Files/Adobe/Adobe Photoshop CS5 (64 Bit)/Presets/Scripts/texreload_send.py");
fileObj = new File("C:/Program Files (x86)/Adobe/Adobe Photoshop CS2/プリセット/スクリプト/texreload_send.py");

 

上記の物を適当な名前を付けて、「.js」の拡張子で保存します。
フォトショップのスクリプトパスにそれを移動します。
フォトショップを起動し、適当な画像を作成し、名前を付けて保存します。
始めに保存をしていないと、スクリプトは動作しません。
同じディレクトリに、以下のコードを、「texreload_send.py」という名前で保存します。

import socket
import sys

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('localhost', 30000))

com = "import maya.cmds as cmds;[cmds.setAttr(x+'.ftn',cmds.getAttr(x+'.ftn'),type='string') for x in cmds.ls(typ='file',type='mentalrayTexture')]"
sock.send(com)
sock.close()

 

Mayaでその画像を貼り付け、フォトショップでスクリプトを実行すれば効果を確認できます。
フォトショップのスクリプトを実行すると画像が保存され、コマンドの送信が始まります。

 

ただ、Python2.6をインストールする必要がある。
やはり環境を選ぶことになる。なので、色々と探していると、「py2exe」というモジュールを発見。
Pythonスクリプトをexeにしてくれるものらしい。
それで作ったexeがこちら
texreload_send
先ほどのフォトショップスクリプト、注の部分を

fileObj = new File("C:/Program Files/Adobe/Adobe Photoshop CS5 (64 Bit)/Presets/Scripts/texreload_send.exe");
fileObj = new File("C:/Program Files (x86)/Adobe/Adobe Photoshop CS2/プリセット/スクリプト/texreload_send.exe");

といったように拡張子をexeに置き換えれば使えます。

 

しかし、確認はしておりませんが、VC2008のランタイムがインストールされていないとそれでも動かないかもしれない。
まぁ、そんな方法もあるんだ。ということで、

PhothoShop Script PS-Script – xtools フォトショップスクリプトのライブラリ

最近フォトショップのスクリプトを書くことが多いです。
googleで検索しても多くの場合、上位に表示されるサイトがこちら
フォーラムで検索すると、色々な情報が出てきます。

 

そのサイトでよく使用されているライブラリがあります。
随分前に記事に書いたようにも思いますが、stdlibというライブラリが頻繁に出てきます。
そのstdlibというのがxToolsのメインのライブラリのようです。

 

xtoolsのインストール方法は至って簡単で、解答してできたフォルダを、
C:\Program Files\Adobe
の中に入れれば終了です。「Adobe」ディレクトリがなければ、別の場所でフォルダを作り、「Program Files」に入れれば大丈夫です。
CS3以上であれば、2.0それ以前のバージョンであれば、1.7.5をダウンロードすれば問題無さそうです。

 

パスを上記のようにする理由は、
C:\Program Files\Adobe\xtools\etc\
の中にフォトショップのアクションファイルがあります。そのアクションは実行するとスクリプトが実行されます。
その時のパスがそのようになっているから、という理由だけです。だからどこに入れてもライブラリは基本的に動きます。
ライブラリを使ったスクリプトを作って、人に配るときには、スクリプトと同じディレクトリ、にライブラリ「stdlib.js」
を入れてスクリプトを作り、ライブラリと一緒に渡せば大丈夫だと思います。

 

で、ライブラリの機能はドキュメントに書いてあります。

#include 'C:/Program Files/Adobe/xtools/xlib/stdlib.js'

doc = app.activeDocument;
layer = doc.activeLayer;

Stdlib.showLayerEffects(doc,layer)

こんな感じで使うと、ライブラリを使えます。因みにレイヤースタイルを表示させるだけの関数です。

 

もうちょっと早くに思い出していれば、もっと楽にプログラムを書くことだできたのに、、
暇を見つけて書きなおしてみよう。

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です