Unity3D – 11 – 参考になるサイト

Unity3Dで役に立ちそうなページを紹介します。
Unity3D Student無料のビデオチュートリアルが大量にあります。

 

MURAKUMO.NET日本でUnity3Dの勉強会があったそうですが、
その時の映像です。とても長いですが、勉強になります。
汎用エンジンの宿命のような、ボトルネックやUnityならではのコミュニティーの広がりを知ることが出来ます。
どうもこれを見て思ったのですが、本格的に使うにはやはりプロ版を購入する必要があるようで、プロ版ではコンソールが付くそうです。
船にたとえるならば、羅針盤。といったところでしょうか。羅針盤がなくとも陸地を辿って航海はできるが、遠洋航海はほぼ不可能。そんな感じだと思います。

 

ざんないプログラマァのiPhoneアプリ開発日記さんiPhoneでの開発を行っているそうです。
特に、このページでは、チュートリアル。
そして、このページでは、FBXのインポートなどを解説されております。
とても為になりました。

 

Unity Answers英語のサイトです。よく分かりませんが、役立つそうです。

 

めっきりUnityを触れていませんが、また時間ができたらやるつもりではいます。

画像を統合して保存

if (app.documents.length != 0)
{
	var docRef = app.activeDocument;

	var upString = new String( app.activeDocument.path );
	upString = upString.substring( 0, upString.lastIndexOf("/") );
	upString = upString.concat( "/" + app.activeDocument.name );
	upString = new File( upString );

	targaSaveOptions = new TargaSaveOptions();
	targaSaveOptions.alphaChannels = true;
	targaSaveOptions.resolution = TargaBitsPerPixels.TWENTYFOUR;
	if(activeDocument.channels.length >= 4)
	{
		targaSaveOptions.resolution = TargaBitsPerPixels.THIRTYTWO;
	}
	targaSaveOptions.rleCompression = false;
	
	docRef.save();
	
	docRef.duplicate('',1);
	var docRef2 = app.activeDocument;
	h = activeDocument.height.value;
	h = h/2;
	w = activeDocument.width.value;
	w = w/2;
	docRef2.resizeImage(w,h,'',ResampleMethod.BICUBICSMOOTHER);

	docRef2.saveAs( upString, targaSaveOptions, true, Extension.LOWERCASE );
	docRef2.close(SaveOptions.DONOTSAVECHANGES);
}

似た様なスクリプトですが、公開しておきます。
ゲームなどでは実際に使われる大きさの2倍くらいのサイズでテクスチャが描かれるかと思います。
このスクリプトを実行すると、現在アクティブになっているドキュメントを複製、画像統合し、それを半分のサイズにして一つ上にディレクトリにtgaとして保存します。
psdは等倍のまま保存されます。

 

今更かもしれませんが、このサイトで公開しているファイルに関して、著作権を主張する気もありませんが、責任を負うつもりもございません。
使用にはある程度の覚悟をしてください。一応CS3で検証済みです。
都合のいい所だけとったり、付けたりしてご自由に使ってください。

MachStudio Pro from StudioGPU – GPUレンダラー

MachStudio Pro
例によってまたまたLuxologyのフォーラムで見つけました。

 

よく分かりませんが、シーンを構成するツールのようです。
試してませんが、興味のある方は是非。

 

普段はフラフラとやりたいことをやっては飽きる。の繰り返しですが、このところやらなければならない事が溜まってしまいました。
実験が出来ないです。
うーん、UnityもZBrushもやりたいのになぁ、、

 

modoのペイントで苦戦しております。マットな感じが出にくいです。
レイヤーを重ねていると、ビューの表示がおかしくなる時があります。
安くて具合の良いペイントツール、うーん、3Dcoatちょっと惹かれるなぁ、、

※追記
ymt3dさんに教えていただきました。
GPUレンダラーだそうです。実験してみたいのですが、手が回りません、、
数百万円もしたものがフリーだなんて、、どんなからくりだろうか?

HDR Single Images Shop – フリーのHDRI

HDR Single Images Shop
またまた、Luxologyのフォーラムで見つけました。
期間限定なのでしょうか?何となく無くなってしまいそうなので、紹介します。
とはいっても、まだダウンロード出来ていません、、一つのファイルが約600MBもあります。
ダウンロード出来てもmodoで読み込めるのだろうか?少なくともうちのパソコンでは無理そうだ。
ダウンロードにも時間がかかる、、諦めたほうが良いかなぁ、、

雑記58 – 虹の色数

どうも最初にお題を付けてから書くと、それに囚われてしまい書きづらくなります。
随分と前に考えていた事、ということもあり、今更それを引っ張り出すのも中々気持ちが上がらないようなので、
比較的最近考えてみたことを書いてみます。

 

虹の色数は何色でしょう?アホみたいな質問ですが、一般的には7色といわれております。
これはドレミファソラシの音階に符合させて解釈したものです。
古代ギリシャの哲学では音が森羅万象全ての根底に通ずる、という考えから来ており、それに合わせただけだと思います。
人間の聴覚である蝸牛では、音の知覚がピアノの鍵盤と並びが同じである事も考え合わせると面白いようにも思います。

 

ニュートンはプリズムの分光により太陽光線には全ての色の要素が含まれている、と言う事を発見しました。
では7色が全てなのでしょうか?人間の可視光線とは4000オングストロームから8000オングストロームの電磁波を指します。
それより小さい周波数を紫外線、大きい周波数を赤外線と呼びます。人間には知覚できませんが存在しています。

 

実際に試したことはありませんが、もしデジカメで虹を撮影し、それをフォトショップなりで開いて色を抽出することは可能です。
様々な色が存在することは容易に想像できますが、現行のモニターの最大色表示数は約1千6百万色と言われております。
もし、ニュートンの言うようにすべての色が含まれているのであれば、それだけの色数があってもいいのかと思いますが、
どうにも疑問が残ります。拡散と反射では色の質が違う、とそこまでのことを主張する気はありませんが、やはり暗い色は少ないかと思います。
あくまでも要素であって、それではない。ということでしょうか。まぁ、いいです。
面白いことにこの実験では実は量子力学の問題も浮き出ていることが分かります。

 

量子は人間が知覚した時点で粒子となり古典物理学の影響下に置かれる。といわれます。
空に現れる虹の色を場所を明確にして測ることは出来ません。空中にあるもので、しかも色は複雑なグラデーションをなしております。
それをデジカメで撮ることでピクセルに変換し、RGB256段階で表現ができるようになります。
カメラを固定し、連写して撮ったものを比較するとどうなるのでしょうか?やってはいませんが当たり前のように、似た様な画像が出来ます。
それの同じ場所の値を取得するとどうでしょう?偶然に全く一致する。ということも全く考えられないことではありませんが、難しいかと思います。
さらにはHDRIで撮影し、32ビットの情報量ではいかがでしょうか?さらに一致が難しくなります。

 

そこで量子力学ではコペンハーゲン解釈というものを持ち出しました。その論争が行われたのがコペンハーゲンなだけです。
シュレディンガーの猫と呼ばれるもので、箱の中に生きた猫とある装置を入れます。
その装置は線量計とそれにつながったハンマー、青酸カリが入った瓶を入れます。そしてラジウムを入れ、
線量計が放射線を感知したらハンマーが振り下ろされ、青酸カリが入った瓶を割る。というものです。
量子の振る舞いが確率的にしか求められないのであれば、その猫は生きている状態と死んでいる状態の半々の状態になりうるのではないか?
という皮肉を込めた話で、実際に実験されたことではありません。
そして、線量計により知覚された時点で確率でしか求められないミクロな世界は古典力学によるマクロな世界に変化するので、
ミクロとマクロは全く関係が断絶されたものである。という事になりました。

 

要するにリアルタイムに目で観ている虹と、デジカメで撮った虹とは別物だ。といっているようなものです。
そして、量子力学は多世界解釈というものを生み出しました。以前少し書きましたが、光の振る舞いを量子力学で計算するには、
考えられる全ての経路を足す。ということを書きました。経路積分ともいいます。
それと同じで、全ての確率を考慮する。という立場の考えで、その時知覚した世界もあれば、知覚しない世界も同時に存在する。
パラレルワールドの誕生です。

 

物理学とは自然に起こるハードの問題を解決するために生まれたかと思いますが、思想というソフトの問題に行き着いてしまいました。
コペンハーゲン解釈か多世界解釈か、カラスが鳴くのはカラスの勝手か。

 

どうもこの問題は唯脳論に行き着きます。脳が感じて考えているのだから仕方がない。
西洋哲学や現代社会では測定できないことは存在しないこと、と認める風潮が多々あります。
そして、こうすればああなる。という単純な因果関係を結んでしまいます。
だから養老孟司さんは自分で感じ、自分で考えろ。ということを繰り返しいうのだと思います。
答えというものは、自分が納得する。というものであり、政府のお墨付きや学者の提言はシャーマンの神託と大した違いはない。ということなのだろうと思います。

 

少し前に流行した、正義についての本を読んでみました。
やはり、原点探しから始まります。いや、原点探しに終始している。といっても過言ではないかと思います。
しかし、その努力が現代の文明を築いている事も事実です。人間の衝動や情熱。それにより人類は進化しましたが、同時に色々なものを破壊しました。
恐らく、それらすべてが生命というものが持つ、方向性なのだろうと思います。
人に限らず、動物は目に意識を寄せます。なぜだろうかと考えていましたが、動物の体において、これほど幾何学的な部位は無い。
ということも重要なのではないかと思います。幾何学は自然現象の近似なのだと思います。間違っているけど大体合ってる。
現代においてはそんな答えは見向きもされませんが。

雑記57 – 情報という観点から見る遺伝子と脳 その2

人間を生命の頂点に置く、という考えはいかがなものかと思いますが、情報、という観点からすると最も進化を遂げた物の一つであることはいえるかと思います。
それは種内での遺伝子の差が最も少ない、ということから導きだされるように思います。
そして、情報量の増大という問題は神経細胞の進化により、そちらにアウトソーシングすることで更なる進化を促進していったのだろうと思います。

 

外部に委託することにより、情報量はより増加し遺伝子にあった複雑性は個体への複雑性へと変貌を遂げてゆきます。
反射的な運動は個体それぞれの随意的な運動へと変化してゆく。特に現代の人はこれを個性として尊重する。という図式が見えてくるように思います。

 

では、人間にある反射的な運動とは何か、これを紐解くことにより、随意運動と呼ばれる個人の意思、というものが見えてくるように思います。
人間に限らず、動物は叫びます。鳴く、いななく、ともいいます。
それらの行動の共通性は、自分の意思とは関係なく反射的に起こるものです。
他の動物に比べ、人間の叫びの種類は少なく、その中でも社会性を持った物、と限定すると、泣くと笑う。に限られます。
これらの叫びは周りの環境によって促されることが多く、大抵の人は自律的に行う動作ではありません。
それらが自律的、突発的であると人格を疑われます。

 

人間に近いチンパンジーで観測された面白い例があります。
一匹のチンパンジーが群れから離れたところでバナナの木を見つけ、一目散にそれに駆け寄りました。
チンパンジーはフードコールと呼ばれる叫びを持ちます。これは食べ物を見つけると反射的に特定の叫びを上げる行為です。
しかしそのチンパンジーは仲間にバナナの事を教えたくなかったようで、片手で口を抑え残った片手でバナナを取り出したそうですが、
叫びは抑えられず、必死になって反射的な運動を随意的な運動で抑えこもうとしていたそうです。

 

チンパンジーよりも行動範囲が狭く、観察のし易いベルベットモンキーでは、天敵の種類に合わせて鳴き声をあげる。という行動も観測されています。
鳥、蛇、ネコ科の動物。と三種類あり、それも特定のものにしか反応しません。要するに自分たちを食べる可能性のある種類を見極めています。
しかし、その鳴き声はどうも学習するもののようで、幼い個体は間違えて叫び声をあげます。
天敵の種類が変わると逃げ方も変わります。間違えると大変なことになります。群れの中でその鳴き方を学んでゆくことが観測されています。

 

サルに限らず、鳥にも学習することが観測されました。
アズマヤドリという種類の鳥は、雌に対して性的なアピールをするために家を作ります。
その家の形は地域による特徴を持ち、幼い時期に大人の雄が作るそれらを観察して作られることが観測されています。
また、違う鳥では鳴き声を父親から学ぶ。ということも観測されています。これは実験により、親から引き離した子供が鳴くことが出来ない。
という事でも更なる裏付けがなされました。

 

少ない例しか挙げておりませんが、随意運動に移行してゆくと学習という物が必要になってゆきます。
遺伝子がミーム(文化的遺伝子)となる原因はここにあるように思います。

 

うーん、終わらせるつもりだったのですが、終わらない、、またにします。

savinoff.com – LightWave用のシーンデータ

savinoff.com
このサイトを見つけたのは10年くらい前でしょうか?当時はライトウェーブを使っておりました。
ブックマークをちらほら見ていたら発掘したので紹介します。

 

ライトウェーブのシーンデータがアップされております。
一見するととても複雑な機能を使って作られているように見えるのですが、プロシージャルテクスチャのみで作られた夕焼けのシーンを見ることが出来ます。
もう一度データを見たいなぁ、などと思っていたらドングルどこにやったか忘れました。インストールディスクもあるのだろうか?
部屋の中を引っかき回せば必ず見つかるとは思いますが、そこまでするのもなぁ、、
modoで再現してみたいなぁ。

キャラを作っています。

image825l
うーん、何番目のものだろうか?作ると言いつつ出来ていないものばかりです。我ながらヒドイ話だ。

 

Sculptrisでデザインを考えながら作ったものをmodoでリトポです。
デザインを考える、といっても色々なものをパクって混ぜあわせたよく分からないものです。
image826l
そしてこんな感じです。
image827l
顔の造形にこだわりたいなぁ、と思っておりますが、他がまだまだなので他を優先させます。
image828l
そして、メカモノは得意ではありませんが、こんなギミックも作ってみたいなぁ、などと考えております。

 

ノーマルを使うのか、どれくらいのポリゴン数で収めるのか。まだまだ決めていませんが、髪の毛がない分半透明は殆ど使う必要が無い。ということだけ決めています。
しかし、前にアップした中途半端なキャラクターの画像が酷すぎる、、我ながらびっくりしました。
恐らく自分で窮地に追い込んだつもりでしょうが、それすらも忘れています。世話はない。

雑記56 – 情報という観点から見る遺伝子と脳 その1

ちょっとややこしいタイトルでしかも、その1です。
遺伝子と脳の関係について、考えたことをまとめてみたいと思います。

 

生物の種の中で遺伝子の情報のばらつきには違いがあるようです。
中でも最もその差が少ないのが人間だそうです。それでいながら同種による争いが多いのは皮肉なことです。
人間とチンパンジーでは1.2%程しか違いは無いそうで、二種のテナガザルでは2.2%の違いがあります。それと比較すると同種、と言えるかも知れません。
どうやらより原始的な生命ほど遺伝子の違いが大きく、ショウジョウバエに至っては人間の30倍ほどの違いがあり、植物に至っては数百倍から数千倍にも及ぶそうです。

 

恐らくこれらのことが意味することは、情報の持ち方の違いなのだと思います。
遺伝子に違いを持たせることで、様々な環境でも生き延びる個体を増やす。という作用を狙っているのだと思います。
そういった情報を外部に持たせ、より瞬発的な状況対応に応じるために脳というものが出来たように思います。そして、それを本能といいます。

 

余談になりますが、種内の差といえば、現在日本に住む人種は、古くからいた所謂大和民族と呼ばれる人たちと、
海で隔てられてから来たとされる朝鮮民族で多くが構成されているそうで、遺伝的に見てもそれらの丁度半分くらいのものになっているそうです。
しかし、ミトコンドリアDNAというもので見るとまた違って見えるようです。
ミトコンドリアとは元々細胞にはなかったものですがいつしか共生するようになったもので、それのDNAを辿って祖先を知ることが出来ますが、
母親からしか伝えられないそうで、要するに母系をたどることが出来ます。
全ての人類の母系を辿るとアフリカの一人の女性に行き着くそうで、ミトコンドリア・イブ、などとも呼ばれております。
そして、その観点で見ると我々日本人に近いミトコンドリアDNAを持つ人達はアラスカなどに住むイヌイットやアメリカ大陸に住むネイティブ・アメリカンの方が近いそうです。
ここ数千年の付き合いよりも、数万年、数十万年の付き合いのほうが濃密であったのか?などと思ってしまいます。

 

余談ついでに、Y染色体を辿ることで父系を求めることも出来るようです。
アイスランドに住む人々の多くは、フィンランド系のY染色体とアイルランド系のミトコンドリアDNAを持っているそうで、
かつて北欧を荒らしたバイキングと呼ばれた海賊が、アイルランドに立ち寄り、女性を連れ去ってアイスランドに住み着いたのではないか?といわれております。
カースト制度が厳しいインドでも、その頂点にいるバラモンたちはアーリア人のY染色体と土着のミトコンドリアDNAを持っているそうで、
少数の白人男性が地元の女性を連れ去って、そこで定住し、少数である自分たちを守るために厳しいカースト制度によるヒンドゥー教(バラモン教)を布いたのだろう。といわれております。

 

話を戻すと、なぜ脳は大きくなったか、むしろ正確にいうならば、なぜ生き残れたのかを見てゆきたいと思います。
眠っている間も起きている時と同様にカロリーを消費し、多くの蛋白質が必要となる脳は、
生命体に取って、とてもコストの掛かる器官で出来る限り大きくしたくない。というのが本来の形だと思います。
しかし自分で動ける生命に取っては瞬時の対応が必要となり、どうしても必要な器官でもあります。脳と動き、どちらが先か?というのは鶏と卵の関係にあるかと思います。

 

どうも進化の過程とは、必要に応じて出来た、というよりも二次的な使用方法から発展してゆくものが多いようです。
鳥の翼なども卵を温めるものが進化し、飛ぶことにも使用できるようになり、主な使用目的は飛ぶことになっていったそうですが、
我々人間の脳においても似た様な事があるようです。もっともリアルタイムに見ていた人が、正確に言うと記録している人がいないので完全に言い切ることは出来ません。
人の脳が大きくなるには、多くの蛋白質が必要で、肉食が始まった後の事だろう。といわれております。
始めの肉食は大型のネコ科の動物が仕留めた残りを食べていたようです。当時の石器と脳の大きさでは狩りは無理だったようです。
一般的な原始人のイメージは、大勢で大型の哺乳類を仕留める。というイメージが有るかと思いますが、近代においても石器時代と変わらない生活をする人々が主に狩る動物は、
野うさぎなどの小さな哺乳類で、考えて見れば当然ですが日常生活においてリスキーな事はあまりしません。

 

ちなみに我々の祖先や現在の霊長類に取って最も恐ろしいネコ科の動物はヒョウだそうで、ライオンに襲われてもすぐに病院に運ばれれば一命を取り留めることは出来るそうですが、
ヒョウに襲われると病院に付く前に死亡していることが多いそうです。ヒョウはサバンナだけでなくジャングルも行動範囲に入るので、尚更危険だったのだろうかと思います。
彼らにとっても脳というものは貴重な蛋白源で、下顎を取って前足を使って脳をほじくり出すそうですが、猛禽類は目をほじりそこからついばむそうで、とても綺麗に骨が残るそうです。

 

とにかく死肉ではありますが、肉という蛋白源によりハード的な面をクリアし、偶発的に発達した声帯の機構を使ったコミュニケーションによりソフト的な面をクリアした我々の祖先は、
その後脳を進化させ、本能と呼ばれる反射的な運動からより状況に応じた行動が出来るよう、随意的な運動へと移行していったようです。
今回はこの辺にして、随意的な運動を促す前頭前野については又の機会に書いてみようかと思います。

modo501 – レンダリングセットアップのスクリプト

20110428a20110511a
左の画像が以前載せたもので、右の画像がイラディアンスキャッシュを3倍の解像度でレンダリングしたものです。
特に画面右の窓の下あたりを見ると、アーティファクトと呼ばれるノイズが少ないことが分かるかと思います。

 

そして、チュートリアルビデオを元にレンダリングのセットアップスクリプトを作りました。
これもXSRを元にしましたが、ここまで変えれば大丈夫だろう。ということで載せておきます。

#python

num_render = lx.eval ('query sceneservice polyRender.N ?')
for x in xrange(num_render):
	id = lx.eval('query sceneservice polyRender.ID ? %s' % x)
	lx.eval('select.item %s set' % id)
	if lx.eval('item.channel polyRender$globEnable ?') == 0:
		lx.eval('item.channel polyRender$globEnable true')
		lx.eval('item.channel polyRender$fineThresh 0.05')
		lx.eval('item.channel ambRad 0.0')

		num_shader = lx.eval ('query sceneservice defaultShader.N ?')
		for x in xrange(num_shader):
			id = lx.eval('query sceneservice defaultShader.ID ? %s' % x)
			lx.eval('select.item %s set' % id)
			lx.eval('item.channel indSat 0.5')

		num_Sunlight = lx.eval('query sceneservice sunLight.N ?')
		for x in xrange(num_Sunlight):
			id = lx.eval('query sceneservice sunLight.ID ? %s' % x)
			lx.eval('select.item %s set' % id)
			lx.eval('item.channel sunLight$spread 1.0')
			lx.eval('item.channel sunLight$fast false')
	else :
		lx.eval('item.channel polyRender$globEnable false')

処理としては、GIをオンにし、リファイメント閾値を5%に設定、アンビエントライトを無効化、シェーダの間接照明彩度を50%に設定。
ディレクショナルライトの広角度を1に設定、シンプルシェーディングをオフ。
もしすでにGIが入っていればGIをオフ。といった感じです。目的に合わせて調整してください。

 

3D人さんのところで知りましたが、SculptrisAlpha6ができたそうです。いつも素早い情報助かります。
しかし、ダウンロードページが消えていました。
職場でGoZを試してみましたが、ただそのまま渡されるだけでした、、自社ツールとしてもっと凄い事を期待していたので残念です。
うーん、職場のPCではスレッドの数を変更しても100万ポリゴン近くになると、とたんにパフォーマンスが落ちる、、余り遊ぶな、ということか?

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

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

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