« 2006 年 10 月 | Main | 2006 年 12 月 »
2006年11月30日
COLUMN ○○からのアクセス拒否
いらずら書き込みがあまりにも多いので、
2バイト文字を含まない書き込みの拒否と、
ある国とある国のアクセスを制限したところ、
いたずらがピタっとなくなりました。
なんといってもビッグ3ですから、
これを抑えれば残りは微々たるモンです。
やれやれ┐( ´ー`)┌
掲示板荒しに苦慮されている方はご参考ください。
3DCG MentalRay関連書籍
『PROGRAMMING MENTAL RAY』
定価:21,000円 (本体20,000円+税5%)
著者:Thomas Driemeyer
監修:小堀 剛
ISBN:4-939007-29-4
発行・発売: 株式会社ボーンデジタル
発行日: 2001年2月
『RENDERING WITH MENTAL RAY』
定価:26,250円 (本体25,000円+税5%)
著者:Thomas Driemeyer
監修:今村 和宏
ISBN:4-939007-22-7
発行・発売: 株式会社ボーンデジタル
発行日: 2000年9月
メンタル・レイ関連の書籍を調べておりまして、
その値段にびっくりしてしまいました。
何なんでしょうこの値段。
びっくりしたなぁもう。
目次を見た感じだと、『PROGRAMMING MENTAL RAY』 は
Mayaのマニュアルに翻訳されずに入っているあれのようですねぇ。
これは自分で訳せるとして、
『RENDERING WITH MENTAL RAY』の方がほしいんだけど、
5〜6千円位かなと思ってたら、この値段てどうよ?
ちょっとボッタクリ過ぎじゃないですか。
こういうの和訳して公開したらいけないのかな?
ちなみに洋書の値段は
『PROGRAMMING MENTAL RAY』 が EUR 129,00
『RENDERING WITH MENTAL RAY』が EUR 69,00
しかもバージョンが上がるごとに装丁しなおしてるじゃん。
。。。
2006年11月29日
3DCG ヘアの憂鬱
キャラクターを作っていて必ずぶち当たるのが
「髪の毛をどうするか」
私もズッポリはまってしまった一人でした。
今までいろいろ試してきました。
Lightwave時代には、プラグインの
・サスクヮッチ
・Shave and a Hair Cut
それからポリゴンで、
・短冊型
・モデリングしてしまう
Mayaで
・PaintEffect(Maya)
・hairはアンリミのみ。。。orz
というくらいでしょうか。
それで最終的にどれにしようかと悩んだ挙句、
「モデリングしてしまう」ということに落ち着きました。
ポイントで短冊パーツをかますとなお良い感じになります。
理由は
プラグインとかその他を使うと制約が多過ぎて手に負えないということ。
短冊型(FFとかこれですが)は、見た目良さそうですけどめちゃくちゃ重くなるということで。
3Dはまだまだ発展途上の技術だということだろうと思います。
個人でさくっと、さらっと作るには、髪型もローポリモデリングこれが最強ですね。
肝はテクスチャ。やっぱ絵を描くのが一番早いし効果的ではないかと。
ヘアついでに
Shave and a Haircut について
かつてLightwave3D用のプラグインとして
開発されていたのをご存知の方はいらっしゃるでしょうか。
私もそのユーザーの一人だったんですが、
メーカーと喧嘩したとかしてないとか詳しい事情はよくわかりませんが、
突如としてLightwave版の開発を中止して他アプリへ行ってしまいました。。。
そして残されたユーザーは途方に暮れる。。。という苦い思い出があります。
なので、今Maya版で比較的安価に販売されてるんですけれど、
どうも購入する気になれないんです。
いいソフトだと思いますけれど。
開発スタイルも、毎日マイナーバージョンアップを繰り出すという
万年ベータテストの状態なので、長期プロジェクトに組み込む
なんてできないよなと思います。
恨み節になってしまいましたね。反省
2006年11月28日
COLUMN mixiーターイム!
SNSの仕組みがオープンソースで出回り始めているようです。
mixiが大繁盛している所為もあってか、
その後を追うようにものすごい勢いでSNSサイトが作られてますねぇ。
私は当初物珍しさで何も考えず誘われるままにmixiに参加したわけですが、
ここに来てなんとなくその仕組みに違和感を感じ始めたというか、
なんか気持ち悪くなってきてしまいました。
本来自由であるべきインターネットの中に閉じた空間が
広がり始めているような不気味さを感じます。
これが当たり前になっていくんでしょうかねぇ。
そんなことないよね。。。
いままでのネットがなんでもありの状態で、
行き着くところが2ちゃんねるだったということで、
それからまたものすごい振り方で堅苦しいルールの中に
閉じ込められるのもどうかなと思います。
蓋を開けるまではわからない世界に足を踏み入れるのはちょっと躊躇してしまう。
閉鎖的な村意識みたいな。そんな気がします。
COLUMN 配色辞典というのが昔ありましたね。今もあるか。。。
(Adobeにしては)なかなか気の利いたサイトです。
配色の組み合わせを考えるのが面倒なときに便利ですねぇ。
えぇ、センスが無いもので。
2006年11月27日
3DCG ShortFilm Dragonslayerが出来るまで
ショートムービーのドラゴンスレイヤーが出来るまでを解説しています。
一人で2年かかったそうですが、振り返るとあれこれがいるなぁというお話です。
一人で2年。。。というところに感心してしまうわけですが、
とにかく作品として完成させることが一番大切なんだなと最近強く感じます。
2006年11月26日
Maya Page Turn Animation
本のページをめくるアニメーションのチュートリアル。
2006年11月25日
MEL House generator & House painter
Bonus Tools の Paint Geometry Tool を使った町並みの景観を作るチュートリアルです。
でもまぁGoogleEarthがあれば(ry
2006年11月24日
3DCG Monthly Game Art Competition # 35: "Child of Sin"
Monthly Game Art Competition # 35: "Child of Sin"
ローポラーのコンペティション
Monthly Game Art Competition
第35回 "Child of Sin" (罪の子?)
の優勝者が決まりました。
今リンクがおかしいです。
私ローポラーですからここら辺はチェック入れています。
アイデアと暇があれば参加してみたいですね。
2006年11月23日
Messiah messiahnismが閉鎖
日本で唯一の情報交換の場だったmessiahフォーラムが閉鎖されてしまいました。
交換といえるほどのことはほとんどありませんでしたが。。。
枯れているフォーラムを見るのはさびしいですけれど、
閉鎖はもっと寂しいですねぇ。
ちょっと前にはMBのwikiサイトが閉鎖されましたし。
うぅ、さむぃ。
私、Mayaにどっぷりはまってますから、もうほとんどmessiahを使ってないので、
今から私がmessiahフォーラムを立ち上げるのはお門違いな気がします。
それよりJAGUAをなんとかしたいかも。。。とか言ってみたりして。
Maya どうとでも出来るUI
MayaはなんでもOKとよく言われますが、
それはそのやり方を知っていないと意味が無いんですね。
それがなんとなくわかり始めてきた気がします。
自作MEL用にとパネル周りのコマンドを探っているのですが、
MELでいろんなパネルを呼び出してしまえば
UIなんてどうとでも出来るんですねぇ。
シェルフだろうが、ハイパーシェードだろうが、グラフエディターだろうが。
よく使う機能をフローティングのシェルフパネルに格納して、
さくさく作業するということが容易に可能という。
なんつーか、Mayaって巨大な工場にポーンと投げ込まれたみたいな、そんな感じ。
Maxとかは、ボタンがギッシリ並んだコクピットの前に座らされたイメージ。
どちらが好みかはその人によるんでしょう。
私は多分Mayaが合ってるんだろうなぁと思います。。。LWは合わなかったなぁ。orz
なんつーてもMELの自由さがいいですねぇ。
2006年11月22日
MEL 今まで損をしていたMayaの使い方
モデルパネルを表示するMEL。
string $window = `window`;
paneLayout;
modelPanel;
showWindow $window;
フローティングのモデルパネルが開きます。
今まで知らなかった。。。
勿体ない使い方をしていました。
試しにいくつ表示できるのかやってみました。
。。。27枚。。。まだまだいけそうですが、もう飽きました。
2006年11月21日
Maya Retargeting の検証
前から気になっていたRetargetingを試してみました。
Skeleton > Retargeting >には
Set Neutral Pose
Retarget Skeleton □
Go To Neutral Pose
の3つのコマンドしかなく、これだけで大したことができそうにないんですが。。。
使い方としては、
先ず、各キャラクターのルート・スケルトンを選んでニュートラルポーズを設定します。
Skeleton > Retargeting > Set Neutral Pose
次に、ソース側のルート・スケルトン、shift選択でターゲット側のルートスケルトンを選びます。
そして、
Skeleton > Retargeting > Retarget Skeleton □
でパネルを開きます。
設定項目が体の上下であります。
よければApplyで実行します。
いつくかのキャラクターでトライしてみましたが、
FBIK用のFKスケルトン同士以外はうまくロードまでいきませんでした。
そして、ロードできたとしても、手があっち向いたりこっち向いたりと、まともには動きませんでした。
何のためにニュトラルポーズを計算しているのかと。。。
どうもこのRetargetingはまだまだ開発途中ではないかという印象を受けます。
コマンド自体にも編集や参照といったことはできないようで、
Retargetというノードはなく、Mayaらしくない作りになっています。
当方7.01を使用しているのですが、
8.0でこの機能に進歩はあったのでしょうか?
プラチナの方どうでしょう?
2006年11月20日
MEL MM_mirrorPoseを少し修正

オプションを増やしました。
OrientJointに合わせた形となっています。
Maya , NEWS Maya Step-UPキャンペーン
Maya Complete (スタンダロン及びネットワーク)全バージョン
Maya Unlimited(スタンダロン)全バージョン
※ご注意
2006年10月31日までにご購入いただいたユーザ様対象となります。
通常価格 664,000円
キャンペーン価格 332,000円
だそうです。
なんと50%OFF!!
なんとも微妙な時期と価格。
XSI 6への牽制かな?
REVIEW FREEDOM オープニング
FREEDOM観ました。
オープニングはカッコ良かったです。
一瞬アキラのカットかな?と思ったんですけれど、それっぽく作ってたんですねぇ。
でCG関連のニュースを見たらどうやら神風動画の制作と。
あそこの仕事はうまいですねぇ。
ソース
CG NEWS Digital DNA
究極映像研究所
NEWS Tasty Tattoo™ Photoshop Brushes (Free)
Tasty Tattoo™ Photoshop Brushes (Free) by CG Channel
Photoshop用タトゥブラシ。
ベクターデータ、ソースコードは有償ですが、
ブラシの方はフリーです。
これ系のデザインて描くのが面倒なので、
こういうのがあるとありがたいです。
2006年11月19日
MEL Xスケールに-1をかけた行列をオイラーに戻すと 0 0 -180
Xスケールに-1をかけた行列をオイラー角に戻すと 0 0 -180 で返されます。
先日見つけた公式がそう返しおるんですが、
なるほどと。
スプーンに映る自分の顔。。。みたいな感じでしょうか?
なんでやねーんっ!と突っ込みを入れたくなりますが、
天地逆になってしまうのをなんとか補正をつけないといけないなぁと思います。
//テストMEL locator1のスケールを-1にセットしてこのMELを実行します。
float $nx, $ny ,$nz;
float $ma[16];
$ma = `xform -q -m locator1`;
//変換公式
if(($ma[2] < 1.0) && (($ma[2] > -1.0))){
$ny = -asind($ma[2]);
$c = cosd($ny);
$nx = atan2d(($ma[6])/$c, $ma[10]/$c);
$nz = atan2d($ma[1]/$c, $ma[0]/$c);
}
else {
$nx = atan2d(-$ma[9],$ma[5]);
$ny = -atan2d($ma[2],0.0);
$nz = 0.0;
}
print $nx;
print " ";
print $ny;
print " ";
print $nz;
print "\n";
2006年11月18日
COLUMN 年別アーカイブプラグインの導入
だらだらと長くなってきたアーカイブの表示をスッキリさせようと、年別アーカイブプラグインを導入しました。
導入方法
archiveload.pl
archiveyear.pl
mt-archive-dateheader.pl
この3つのファイルをMovableTypeのホームディレクトリ内のpluginsに入れて、
年別アーカイブ・テンプレートを新規に作成。
設定>公開>アーカイブ・マッピング
でマッピングを新規作成から年別用マッピングを作成します。
アーカイブの種類: は月別を選んで、
テンプレートには作った年別テンプレートを選んで追加。
出力フォーマット をカスタマイズで
%y/%i
にします。
その他のテンプレートを調整すればOKです。
こちらのサイトを参考にしました。
MT の過去ログリンク表示を nDiary (ごにょり済み)風に
参考テンプレートは以下で
参考テンプレート
サイドコンテンツ部分 Main Indexなどに追加
<h2>アーカイブ</h2>
<ul>
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader>
<li><a href="<$MTArchiveLink$>"><MTArchiveDate format="%Y"></a></li><br />
</MTArchiveDateHeader>
<a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y/%m/"$>" title="<$MTBlogName encode_html="1" remove_html="1"$>"><MTArchiveDate format="%B">月</a><wbr />
</MTArchiveList>
</ul>
年別アーカイブのテンプレート
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="<$MTDefaultLanguage$>" xml:lang="<$MTDefaultLanguage$>">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<meta name="generator" content="Movable Type <$MTVersion$>" />
<meta name="description" content="<$MTBlogName encode_html="1" remove_html="1"$> の <$MTArchiveDate format="%Y"$> 年の記事タイトル一覧" />
<title><$MTBlogName encode_html="1" remove_html="1"$> - <$MTArchiveDate format="%Y"$> Archives</title>
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="<$MTBlogURL$>index.rdf" />
<link rel="alternate" type="application/atom+xml" title="Atom" href="<$MTBlogURL$>atom.xml" />
<link rel="start" href="<$MTBlogURL$>" title="Home" />
<MTArchiveYearPrevious><link rel="prev" href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y/"$>" title="<$MTBlogName encode_html="1" remove_html="1"$> - <$MTArchiveDate format="%Y"$> Archives" /></MTArchiveYearPrevious>
<MTArchiveYearNext><link rel="next" href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y/"$>" title="<$MTBlogName encode_html="1" remove_html="1"$> - <$MTArchiveDate format="%Y"$> Archives" /></MTArchiveYearNext>
</head>
<body>
<div id="container">
<div id="banner">
<h1><a href="<$MTBlogURL$>" accesskey="1"><$MTBlogName encode_html="1"$></a></h1>
<h2><$MTBlogDescription$></h2>
</div>
<div class="content">
<h2 align="right">
<MTArchiveYearPrevious>
<a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y"$>" title="<$MTBlogName encode_html="1" remove_html="1"$> - <$MTArchiveDate format="%Y"$> 年"> «
<$MTArchiveDate format="%Y"$> 年</a>
|</MTArchiveYearPrevious>
<a href="<$MTBlogURL$>">Main</a>
<MTArchiveYearNext>
|<a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y"$>" title="<$MTBlogName encode_html="1" remove_html="1"$> - <$MTArchiveDate format="%Y"$> 年"><$MTArchiveDate format="%Y"$> 年 » </a>
</MTArchiveYearNext>
</h2>
<h2><$MTArchiveDate format="%Y"$> 年</h2>
<dl><MTArchiveYear order="descend">
<MTArchiveYearIfEntries>
<MTArchiveLoad>
<MTDateHeader>
<dt><a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y/%m/"$>" title="<$MTBlogName encode_html="1" remove_html="1"$> - <$MTArchiveDate format="%Y 年 %m"$> 月"><$MTArchiveDate format="%Y 年 %m"$> 月</a></dt>
<dd>
<MTEntries sort_order="descend">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a> - <$MTArchiveDate format="%Y-%m-%d (%a)"$></li>
</MTEntries>
<dd>
</MTDateHeader>
</MTArchiveLoad>
</MTArchiveYearIfEntries>
</MTArchiveYear></dl>
</div>
</div>
</body>
</html>
これに伴いまして、今までのdateテンプレの表記では不具合を起こしますので、
Date-Based Archive の次、前の送り部分を書き換えます。
<h2 align="right">
<MTArchivePrevious>
<a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y/%m/"$>" title="<$MTBlogName encode_html="1" remove_html="1"$> - <$MTArchiveDate format="%Y 年 %m"$> 月"> « <$MTArchiveDate format="%Y 年 %m"$> 月</a>
|</MTArchivePrevious>
<a href="<$MTBlogURL$>">Main</a>
<MTArchiveNext>
|<a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y/%m/"$>" title="<$MTBlogName encode_html="1" remove_html="1"$> - <$MTArchiveDate format="%Y 年 %m"$> 月"> <$MTArchiveDate format="%Y 年 %m"$> 月 »</a>
</MTArchiveNext>
</h2>
COLUMN フリ〜ダムの動画配信が見れませーん
結構な露出でちょっと興味があったんだけど、
動画を見ようとしたら、ストリーミング再生がちゃんと動かず紙芝居状態。
キャッシュもクリアされているみたいなので何回やってもおんなじっす。
せめてローバンド用のサイズも用意してくれていればいいものを、
このムービーだけはでかいサイズしか無い。
※ちなみにうちはフレッツ光です。ローバンドではないです、はい。
Yahooが配信しているんですけれど、このお粗末さは一体!?
あ、もしかしてYahooBBでしか、まともに見れないとか、そういうこと?
な訳ないと思うけど、強ちありえないこともないかもとか思ってみたりして。
Youtubeでアップされるまで待つかなぁ。
3DCG Indigo 関連
XSI 6 の新機能でMOTORというモーションの転送機能が付くという情報を見て、
羨ましいと思ったことはさておきまして、
Indigo の情報です。
Maya to Indigo セットアップ方法など
Indigo CGTalkスレ
プラグイン開発者のコメントでは、
まだまだフィニッシュには程遠いけれど、とりあえず動くよ。
ということらしいです。
使い手がまだあまりよくないので気長に待ちましょう。
2006年11月17日
MEL ※記事の訂正
の変換公式に誤り(というか不具合)がありました。
こちらの方がより正常に動作すると思います。
//変換公式
if(($ma[2] < 1.0) && (($ma[2] > -1.0))){
$ny = -asind($ma[2]);
$c = cosd($ny);
$nx = atan2d($ma[6]/$c, $ma[10]/$c);
$nz = atan2d($ma[1]/$c, $ma[0]/$c);
}
else {
$nx = atan2d(-$ma[9],$ma[5]);
$ny = -atan2d($ma[2],0.0);
$nz = 0.0;
}
記事の方も訂正をしています。
参考にされていた方には誤った情報を流してしまいまして
誠に申し訳ございませんでした。
MEL コワザ其の一 オイラー角を-90〜90°の範囲にする方法
意地でもラジアンを使わない根性で編み出した小技。
if($nx > 90) {
$nx = $nx - 180;
}
else if($nx < -90) {
$nx = $nx + 180;
}
if($ny > 90) {
$nx = -$nx;
$ny = $ny - 180;
}
else if($ny < -90) {
$nx = -$nx;
$ny = $ny + 180;
}
if($nz > 90) {
$nx = -$nx;
$ny = -$ny;
$nz = $nz - 180;
}
else if($nz < -90) {
$nx = -$nx;
$ny = -$ny;
$nz = $nz + 180;
}
数値を入れるとこんな感じでMayaが動作するのを見て
真似て作りました。
コードに入れ込んでみたらあんまり役に立たなかった。
ちっ!
これだと半分だけなので残り半分をカバーできるように改良せねばなりません。
2006年11月16日
NEWS 津波とサッカーと陣内智則と藤原紀香
津波は大したことがなくて良かった。
サッカーは最後のPKを外したらまずいでしょう。
中村に蹴らせるべきです。
そして何が驚いたって、やっぱり陣内。
何故藤原紀香が陣内智則と結婚するんですか?
この一報にはぶっ飛びました。
それから何故か不思議な笑いが込み上げて来て。
。。。なんか笑える。
カンダウノとかヤダアキコとか目じゃないですね。
今日のワイドショーはこれで持ち切り!
陣内といえば、前にも環なんとかとこんな噂があったような。
壮大なジョークなのかなぁ?
MEL おちゃめなMaya4 シビアすぎるアークサイン
asind()を使っておりますと、ときーどき
// Error: line ***: Invalid argument(s) for asind.
のエラーを返します。
debug用にprintをかまして数値を読んでも 1 のはずなのに、
しかもif文を前にかましているのに。。。if($hoge < 1.0) =(等号)付けてないのに。。。
そんな時のTips、
asind(`min 1.0 $hoge`);
これで通りました。えぇ
1.0000024
とか値が入ってるんでしょうか。
厳格なMayaさん。
つーか、その前のif文通すなっつーの。
2006年11月15日
MEL matrixの生成
なんとなく回転行列の使い方がわかり始めた今日この頃
4×4の行列変換が結構便利だということがわかりました。
しかし、理屈はわからないまま答えがポンと出てくるので、とても気持ち悪いです。
//ポイントと角度とスケールからマトリックスを生成
proc float[] _makeMatrix(float $point[], float $theta[], float $scale[]) {
float $ma[16];
float $px = $point[0];
float $py = $point[1];
float $pz = $point[2];
float $rx = $theta[0];
float $ry = $theta[1];
float $rz = $theta[2];
float $sx = $scale[0];
float $sy = $scale[1];
float $sz = $scale[2];
$ma[0] = $sx * cosd($ry)*cosd($rz);
$ma[1] = $sx * cosd($ry)*sind($rz);
$ma[2] = $sx * -sind($ry);
$ma[3] = 0;
$ma[4] = $sy * (sind($rx)*sind($ry)*cosd($rz) - cosd($rx)*sind($rz));
$ma[5] = $sy * (sind($rx)*sind($ry)*sind($rz) + cosd($rx)*cosd($rz));
$ma[6] = $sy * sind($rx)*cosd($ry);
$ma[7] = 0;
$ma[8] = $sz * (cosd($rx)*sind($ry)*cosd($rz) + sind($rx)*sind($rz));
$ma[9] = $sz * (cosd($rx)*sind($ry)*sind($rz) - sind($rx)*cosd($rz));
$ma[10] = $sz * cosd($rx)*cosd($ry);
$ma[11] = 0;
$ma[12] = $px;
$ma[13] = $py;
$ma[14] = $pz;
$ma[15] = 1;
return $ma;
}
//_makeMatrix({1.0, 2.0, 3.0}, {30.0, 60.0, 45.0}, {-1.0, 1.0, 1.0});
matrix関連のノードを見かけるので、APIには実装しているはずなんですが、
MELコマンドがないですねぇ。MELではやらんだろうということなのかな?
2006年11月14日
MEL matrix関数がない
MELには実装されてないのでしょうか?
libを書くのが面倒です。
//逆matrix
proc float[] _reMatrix(float $ma[])
{
float $am[16];
//マトリックスの掛け算
$am[0] = $ma[0];
$am[1] = $ma[4];
$am[2] = $ma[8];
$am[3] = $ma[12];
$am[4] = $ma[1];
$am[5] = $ma[5];
$am[6] = $ma[9];
$am[7] = $ma[13];
$am[8] = $ma[2];
$am[9] = $ma[6];
$am[10] = $ma[10];
$am[11] = $ma[14];
$am[12] = $ma[3];
$am[13] = $ma[7];
$am[14] = $ma[11];
$am[15] = $ma[15];
return $am;
}
//座標変換
proc float[] _matrixRotate(float $pi[], float $sita[])
{
float $nx, $ny ,$nz;
float $me[16];
string $lo[] = `spaceLocator -p 0 0 0`;
rotate -r -os $pi[0] $pi[1] $pi[2];
$ma = `xform -q -m $lo`;
string $lo2[] = `spaceLocator -p 0 0 0`;
rotate -r -os $sita[0] $sita[1] $sita[2];
$mb = `xform -q -m $lo2`;
select -r $lo;
delete;
select -r $lo2;
delete;
$me = _matrixTimes($ma, $mb);
//変換公式
if(($ma[2] < 1.0) && (($ma[2] > -1.0))){
$ny = -asind($ma[2]);
$c = cosd($ny);
$nx = atan2d($ma[6]/$c, $ma[10]/$c);
$nz = atan2d($ma[1]/$c, $ma[0]/$c);
}
else {
$nx = atan2d(-$ma[9],$ma[5]);
$ny = -atan2d($ma[2],0.0);
$nz = 0.0;
}
※訂正 2006 11/18 変換公式を訂正しました。
return {$nx, $ny, $nz};
}
//逆変換
proc float[] _matrixReRotate(float $pi[], float $sita[])
{
float $nx, $ny ,$nz;
float $me[16];
string $lo[] = `spaceLocator -p 0 0 0`;
rotate -r -os $pi[0] $pi[1] $pi[2];
$ma = `xform -q -m $lo`;
string $lo2[] = `spaceLocator -p 0 0 0`;
rotate -r -os $sita[0] $sita[1] $sita[2];
$mb = `xform -q -m $lo2`;
select -r $lo;
delete;
select -r $lo2;
delete;
$mb = _reMatrix($mb);
$me = _matrixTimes($ma, $mb);
//変換公式
if(($ma[2] < 1.0) && (($ma[2] > -1.0))){
$ny = -asind($ma[2]);
$c = cosd($ny);
$nx = atan2d($ma[6]/$c, $ma[10]/$c);
$nz = atan2d($ma[1]/$c, $ma[0]/$c);
}
else {
$nx = atan2d(-$ma[9],$ma[5]);
$ny = -atan2d($ma[2],0.0);
$nz = 0.0;
}
※訂正 2006 11/18 変換公式を訂正しました。
return {$nx, $ny, $nz};
}
matrixを取るのにいちいちロケイターを作ってるのがカッコ悪いんですが。。。
数値から生成してくれないものか知らん?
2006年11月13日
MEL オイラー角をオイラー角で変換した後のオイラー角
proc float[] _matrixTimes(float $pi[], float $sita[])
{
float $nx, $ny ,$nz;
string $lo[] = `spaceLocator -p 0 0 0`;
rotate -r -os $pi[0] $pi[1] $pi[2];
$ma = `xform -q -m $lo`;
string $lo2[] = `spaceLocator -p 0 0 0`;
rotate -r -os $sita[0] $sita[1] $sita[2];
$mb = `xform -q -m $lo2`;
select -r $lo;
delete;
select -r $lo2;
delete;
//マトリックスの掛け算
float $xx = $ma[0]*$mb[0] + $ma[1]*$mb[4] + $ma[2]*$mb[8] + $ma[3]*$mb[12];
float $xy = $ma[0]*$mb[1] + $ma[1]*$mb[5] + $ma[2]*$mb[9] + $ma[3]*$mb[13];
float $xz = $ma[0]*$mb[2] + $ma[1]*$mb[6] + $ma[2]*$mb[10] + $ma[3]*$mb[14];
float $xw = $ma[0]*$mb[3] + $ma[1]*$mb[7] + $ma[2]*$mb[11] + $ma[3]*$mb[15];
float $yx = $ma[4]*$mb[0] + $ma[5]*$mb[4] + $ma[6]*$mb[8] + $ma[7]*$mb[12];
float $yy = $ma[4]*$mb[1] + $ma[5]*$mb[5] + $ma[6]*$mb[9] + $ma[7]*$mb[13];
float $yz = $ma[4]*$mb[2] + $ma[5]*$mb[6] + $ma[6]*$mb[10] + $ma[7]*$mb[14];
float $yw = $ma[4]*$mb[3] + $ma[5]*$mb[7] + $ma[6]*$mb[11] + $ma[7]*$mb[15];
float $zx = $ma[8]*$mb[0] + $ma[9]*$mb[4] + $ma[10]*$mb[8] + $ma[11]*$mb[12];
float $zy = $ma[8]*$mb[1] + $ma[9]*$mb[5] + $ma[10]*$mb[9] + $ma[11]*$mb[13];
float $zz = $ma[8]*$mb[2] + $ma[9]*$mb[6] + $ma[10]*$mb[10] + $ma[11]*$mb[14];
float $zw = $ma[8]*$mb[3] + $ma[9]*$mb[7] + $ma[10]*$mb[11] + $ma[11]*$mb[15];
float $wx = $ma[12]*$mb[0] + $ma[13]*$mb[4] + $ma[14]*$mb[8] + $ma[15]*$mb[12];
float $wy = $ma[12]*$mb[1] + $ma[13]*$mb[5] + $ma[14]*$mb[9] + $ma[15]*$mb[13];
float $wz = $ma[12]*$mb[2] + $ma[13]*$mb[6] + $ma[14]*$mb[10] + $ma[15]*$mb[14];
float $ww = $ma[12]*$mb[3] + $ma[13]*$mb[7] + $ma[14]*$mb[11] + $ma[15]*$mb[15];
//変換公式
if(($ma[2] < 1.0) && (($ma[2] > -1.0))){
$ny = -asind($ma[2]);
$c = cosd($ny);
$nx = atan2d($ma[6]/$c, $ma[10]/$c);
$nz = atan2d($ma[1]/$c, $ma[0]/$c);
}
else {
$nx = atan2d(-$ma[9],$ma[5]);
$ny = -atan2d($ma[2],0.0);
$nz = 0.0;
}
※訂正 2006 11/18 変換公式を訂正しました。
return {$nx, $ny, $nz};
}
お試しコマンド
オイラー{0.0, 30.0, 0.0}を{30.0, 0.0, 0.0}回転させた時
_matrixTimes({0.0, 30.0, 0.0}, {30.0, 0.0, 0.0});
// Result: 33.690068 25.658906 16.102114 //
cheers!
2006年11月12日
Maya noise controller
PS3の発売を横目で睨み(別に睨んでないですけど)、
今日もMayaの情報をあれこれ探してました。
ノイズを加えるMELだそうです。当方未検証。
2006年11月11日
MEL おちゃめなMaya3 xformの謎
getAttr locator1.translate;
// Result: 4.549147 81.970932 -2.348332 //
xform -q -os -t locator1;
// Result: 70.437177 -40.261024 -12.770951 //
位置情報を取りたい時、上のように記述すると、
getAttr と xform で違う値を返すことがあります。
※正しい値は getAttr の方です。
これは一体どういうことなんでしょうか?
謎です。全然わからない。
何かクリアしなければならないものがあるんでしょうか?
今まで xform を多用してたのですが、
この所為で、うまく動かなかった。。。
なんでかなぁ?
とりあえず、今後は getAttr を使うことにします。
参ったっす。Mayaさん。。。
Maya レンダラーの選択
MayaSoftwareにするか、MentalRayにするかで迷っておりました。
MentalRayは設定項目も多く、シェーディングネットワークも、
MayaSoftwareに比べて今ひとつ使いにくいという印象があって、
今まで使用するのを敬遠していたんですが、
いろいろと試行錯誤した結果、MentalRayを使用することにしました。
理由は
MayaSoftwareでは、機能、品質に不十分なところがある。
それから、これが結構効いてるんですが、今後改善される気配がないという状況。
反対にMentalRayでは、多少の使いにくさはあるものの、
十分な機能と品質に加えて、情報が充実しつつあるのと、
現在のMentalRayの開発状況を見て鑑みるに、
MAYAだけでなく、XSI、MAXでも採用しており、
シェーダーのライブラリも生きてくるのではということで、
今後はこちらの方を勉強しておいた方が良いだろうという結論に達しました。
加えて、メインマシンが熱暴走し始めまして(埃でも溜まってるんかと思うんですが)、
MentalRaySatelliteを使うとスレーブのみでレンダリングできるので、
その点でも重宝するかなということで(これが一番大きい理由かも)。
後は、PaintEffectがMentalRayで問題なくレンダリングできるようになると
言うことはないんですけれど、どうなんでしょうねぇ。
2006年11月10日
Maxwell , Maya , Maya Maxwell for Maya
MAXWELL MAYA PLUG-IN FEATURES LIST
久しぶりに見たらかなり改善されてますねぇ。
しかし前科がありますから実際に出て触ってみて同じように。。。できるといいなぁ。
ムービーでのレンダリングが異様に速いんですけど、
5分で本当にあんなにキレイになるのかなぁ?
レンダーファームを使ってるんと違うんかと。
何にしましても、実際に触るまではわかりませんよぉ〜。
2006年11月09日
MEL デプスマップシャドウで影の減衰を表現する方法
mixiでも昨年頃話題になっていた手法を用いてやってみました。

やっていることは、Light Infoにオブジェクトをコネクトして
それをライトのFilter Sizeにつなげています。
rampとmultiplyDivideは値の調整です。
影色にもついでにコネクトしています。
オブジェクト位置から離れると影がぼけるという考え方です。
しかし、これでは1つのオブジェクトしか対応できません。
ということで、困った時のレイヤーテクスチャで、
複数のオブジェクトをレイヤーで重ねてDarkenで合成しています。
これでFilter Sizeのマップを作るという感じでしょうか。
しかし、これでは不都合な場合が出てくることが判明。
影のボケ足近くに他のオブジェクトが重なった場合、
重なっているところの影がクリアになったりと。
う〜ん、最初から考え直さないといけないなぁ。

こちらがデプスマップシャドウ レンダリング時間は1分と速く、仕上がりもなかなか綺麗なのですが。。。

こちらがレイトレース レンダリング時間 2分53秒。重い。。。
課題
オブジェクトが重なる場合の影の処理。
デプスマップシャドウではトランスペアレンシーで抜きたいところの影が抜けません。
これは何か方法はないのでしょうか?
以前日記でも紹介した事があるのですが、私が見つけた方法は、
ジオメトリを切り抜くというものでした。
しかし余りにも力技なのでもう少しまともな方法はないものかと。
それから、メンタルレイを使った場合、
トランスペアレンシーの切り抜きは可能なのですが、
カスタムアトリビュートのShadowMap の所の
Softnessで影のぼかしがLight Infoでは効きません。
どうも、また違ったシェーディングネットワークを組む必要がありそうです。
ご興味のある方はどうぞ
softshadow_depthmap.ma
2006年11月08日
3DCG Mymentalray サイトオープン!
ユーザー主導のメンタルレイのポータルサイトがオープンしました。
先日の日記で紹介した記事などもまとめられているみたいです。
パワーがあるなぁと感心します。
2006年11月07日
MentalRay Mental Ray for Maya の基本
基本をわかっていないと変な使い方をしてしまうわけで、
Mental Ray for Maya の基本的な使い方をレクチャーしてくれているスレッドをCGTalkで見つけました。
一つのオブジェクトにMayaソフトウェアとMRのシェーダーをコネクトする方法とか、
バンプマッピングの注意点とか、いろいろ。
ビギナーというか独学の人にはありがたいチュートリアルです。
中身をみてみると、MSとMRではシェーディングネットワークの組み方が全然違いますねぇ。
しかし、さらに勉強することが増えたようなそんな気がします。。。3Dは疲れる。
2006年11月06日
MentalRay Physical Sky Maya (mad_physicalSky)
Physical Sky Maya (mad_physicalSky)
開発元
Physical Sky
まだ試していませんが、
ソースも入っているのでありがたいです。
2006年11月05日
COLUMN イベント目白押しのインテックス大阪へ
11月5日(日)インテックス大阪で開催中のペット博へ行ってきました。
そしたら、なんか会場の外までびっしり長蛇の列ができているんです。
だけど、並んでる人を見たらどうもダーク系のブルゾンのモサイ野郎ばっかりで、
最後尾のプラカードをよく見ると『年齢制限云々はこちら』とか書いてあるんです。
これはペット博の列ではないよねと先へ進んでいくと、
DreamPartyとか可愛らしいイラストがでかでかと描かれてある看板を見て納得。
あぁ、秋葉系?
しかし、周囲のタバコ臭さとかそれ系の人たちと、看板のカワイイイラストと相俟って
かなり異様な雰囲気を醸し出していました。
私もそれ系に見られなくもないかもしれないんだけれど(何をいっているのかわかりませんね)、
あの中には入っていけないなぁ。
秋葉系の人ゴメンナサイ。
MentalRay More MR Shaders
Mayaの標準ユーティリティシェーダーをMR用にインプリメントしてくれています。
こういうのは、メーカー側でとっととやってほしいところなんですけれど。

ということで、メンタルレイでカケアミシェーダーが使えていませんでしたので、
ここぞとばかりに試してみたところ(JS_LuminanceとJS_SurfaceLuminanceを試しました)、
Shadowの情報が無いようで影が落ちてくれませんでした。
うーん、オシイところまで来ているのですが。。。
どうしよう。作者に報告しようかなぁ。
それとも別のコネクションを探した方がいいのか。
いっそ、MRのシェーダーを書いてしまえばいいのか。。。アァ、メンドクサイ
2006年11月04日
Maya プロジェクト管理彼是
CGTalkでプロジェクト管理についてのディスカッションを見つけました。
こういった内容はほとんど見つからないですから、
独学の身としては非常に参考になる話です。
私は今のところMayaのデフォルトのディレクトリ構造で管理してまして、
ファイル名もバラバラ。。。しっかり計画を立てておかないといけないなぁと思います。
開発環境の再インスコで1日終わってしまった。
エラーばっかり出るんだもの。。。
バイナリを作るぞっと。
2006年11月03日
MentalRay レンダーレイヤーの代用品?
レンダーレイヤーの代わりになるようなプラグインでしょうか?
まだ試していないので詳細はわかりませんが。
評判は良さげです。
2006年11月02日
3DCG 走るカケアミPOLICE ROBOT
プロジェクションで線の位置を固定しているのと、線が綺麗過ぎるので、
動かしてみると、もう一つ機械的ですねぇ。
手書き感がほしいんですけどどうすればいいんでしょうか?
足がめり込んでる。。。orz
2006年11月01日
NEWS ソフトバンクのうそつき!
だそうです。
最近発表されたナンバーポータビリティ以降のユーザーの増減では、
ドコモ -6万
au +8万
SoftBank -2万
となっていて、あれだけ宣伝してて減ってるじゃないの!?
とこっちが心配してしまう展開。
サーバー停止の一件といい、
ちょっと企業の姿勢が疑われてしまいますねぇ。
こいつは信用できないと。
あんまりごたごたが続くと。。。つーかもう遅いかも。
Maya カケアミシェーダー

シェーディングネットワークで組んでみました。
少しイメージに近づいてきたようです。
やっていることは単純で、影濃度に合わせて、8本の斜線を入れています。
シェーディングネットワークが結構煩雑なことになってまして、
今のところコントロールが難しいので、
これを一つのシェーダーにまとめてコントロールできればなぁと思います。
ご興味のある方はどうぞ
hatching_kakeami.ma

