2011/04/28

何かを辞めて、新しく始めることについて

先日、東京の家を引き払って実家(福岡)に戻りました。
本当は、カナダ行きの資金を東京で働きながら稼いでいくつもりでしたが、個人的な事情でそうもいかなくなり、実家に戻ってきた次第です。
幸いにも、東京で仕事をさせてもらっていた上司が、自宅でできるなら続けて良いよ、と言ってくれたため、現在週3日でデザイン制作の仕事をしています。
残りは、CGの勉強に当てるようにしています。


今回の決断もそうでしたが、何かを止めて(辞めて)、新しいことをはじめるときに、誰しも葛藤があると思います。
いまから転載するのは、今から1年半ほど前に、当時2年間勤めていた仕事を辞めて、専門学校に通い始めの時に某SNSに書いた日記です。当時僕は、2年間勤めていた会社をやめ、CGの道に進む決断をして、専門学校に入学したばかりでした。


仕事の選択もそうですし、特に、僕は当時28歳で、30という人生の岐路を前にしてどういう選択をするべきか、今後の人生をどう歩むのか、という所で悩む所が大きかったと思います。



まぁ、今も相変わらず悩みは尽きませんが、振り返ればあのときの選択は間違ってなかったと思います。この日記を見ると決断をした時の産みの苦しみというか、初心を思い出すことができて、気持ちが引き締まります。
やはり、人間やると決断するまでがキツいんですよね。決めてしまえば後はやるだけだから、ずいぶん気持ちは楽です。
某SNSはほとんど使わなくなったのでこちらに転載したいと思います。
もし、似たようなことで悩んでいる方にとって、何か参考になる所があれば幸いです。


*************************************************************************
2010年10月4日
先日、仕事を辞めた。 
もともと、こんなに早く辞めるつもりはなかった。 
年始には、温泉にこもって、今年1年の仕事の目標を立てたりしてたぐらいだ。 

それが変わったのは、今年の5月。 
全然新しい仕事を任されて、まったく訳がわからず、 
1週間、夜明けまで仕事して、タクシーで家に帰ってシャワー浴びて、 
1時間寝て、朝9時に出勤してまた夜明けまで仕事して、という生活が続いた。 
しかし、全く成果を出せず、結局締め切りギリギリに上司にゼロからやってもらうことになる、という出来事があった。 

もう入社して1年半で、ある程度はやれるはずと思っていたことが、 
全くできなかったことがショックだった。 
同僚は、難しい仕事だから仕方ないよ、と慰めてくれたが、 
逆に、これができるのに、あとどれぐらいの時間と努力が必要なのかを考えたときに、目の前に大きな壁が出来てしまった。 

そのあまりに大きな壁を前に、モチベーションは下がり、 
そしてまもなく心がぽっきりと折れてしまった。 

ここで、なにくそ、と壁を乗り越える、という選択が間違いなくあった。社会人であれば、こういう試練は当たり前にあるし、壁を乗り越えて強くなるものだと思う。 
自分も、過去、そういう壁にぶつかっては、なんども挑戦してきた。 

ただ、今回は、多分3年はじっくり腰を据えてやらねば登れない壁だと思った。社会人7年目、それくらいはわかった。 

3年、と思った時に、本当にこの会社に3年いるのか、その後、自分はどうしてるだろうか、と考えた。 
そのイメージがわかんかった。 

もちろん、最初からずっとこの会社にいる、という人生設計ではなかったし、キャリアアップしていつかは転職をとは思っていた。 
しかし、3年後、32歳で壁を登った後、この業界にいて、 
自分のなりたい自分になれているか、そのイメージがなかった。 
そう、ちゃんと将来のことを考えてなかったのだ。 

この壁は登る価値のある壁なのか?なりたい自分になれる壁なのか? 
違うな、と思った。 
ならば、仕事を辞めて、自分のなりたい自分に成れる仕事をしようと思った。 

転職サイトを回り、本を読み、父親に相談し、いろいろ考えた結果、結局、自分のやりたいことは映像・映画の仕事だという結論に達した。自分が大学のころにやっていたことだった。 
そしてもうひとつ、世界で勝負したいという夢もあった。 
その二つをかなえられるのがCG・VFXの仕事だった。これだと思った。 

そこから、学校を探し、上司に相談し、引継ぎをし、9月末で退職した。 

もちろん、周りからは、あいつは逃げたな、と思われたんだと思う。 
同僚や、上司も、きっとそう思っただろう。 
確かに、社会人的には、逃げたということになるんだと思う。 

3年前、25歳ぐらいなら、この壁にトライしていたと思う。 
がむしゃらに、後先は考えずに、目の前にある壁は登るものだと思って、チャレンジしていたと思う。 
しかし、今、自分は28歳だった。 
いつの間にか社会人7年目になっていた。もう有り余る時間を使える歳でないことに気づてしまった。 

人間には「人生の締め切り」がある。 
社会的な「年齢の締め切り」もある。 
そういったことを考えると、なんでもかんでも目の前にある壁を片っ端から乗り越えるのではなく、越えるべき壁を自分で選ぶ、という決断が必要だと思う。登るべき壁があるのならば、捨てるべき壁、もまたあるのだと思う。 

○○(友人)も書いていたが、 
30歳前に、決断をする人が多いのはそういうことが理由じゃないかと思う。 
きっとみんな壁にぶつかったのだ。 
順調に仕事がいっていれば、誰も仕事を辞めたり、転職なんて考えない。今の会社で頑張るに決まっている。 

登りきれない大きな壁にぶつかった人だけが、この壁を登るべきかを考え、登らないという選択をした人は、自分が本当に登るべき壁を目指して、新しく何かを始めるのだと思う。 

だから、壁が見えないうちは、無理に決断をする必要はないと思う。 
今の仕事を頑張れば良いし、壁にぶつかっても、越えられると思うなら、登ればいいと思う。 
それは、本当に自分に向いている仕事なのだと思う。 

越えられない壁が見えたとき、その時は、立ち止まって、考えてみるといいと思う。 
自分の人生を考えるとてもいい機会だ。 
そして、それはきっと、絶妙のタイミングでやってくると思うのだ。 

その時は、自分の頭で、精一杯考えてほしいと思う。 
もちろん、いろんな人のアドバイスを聞いてもいいが、 
最後は自分の意思で決断をしてほしい。 

誰かの意見で、自分の人生を決めて、うまくいかなかった時、 
その誰かは責任を取ってくれるだろうか? 
もちろんNOだ。それは間違いない。 

だから、自分の人生のハンドルを、他人に委ねてはいけないのだ。 
自分がしっかりとハンドルを握り、最後の決断は自分でしてほしいと思う。 

正直、今回の決断は、上司、両親、兄弟、友人、多くの人に反対をされた。 
でも、最後は自分で決めた。やると決めたのだ。 
自分で決めたことだから、うまくいっても、駄目でも全部自分のせいだ。 
だから、逃げずにやるのだ。 

1年後か、もっと先にか、 
自分の決断が正しかったと証明できるように、頑張りたいと思う。 

僕は、今この手にしっかりと握っているハンドルだけは絶対に手放さないと決めている。 




…以上、自分の今回の経験から思うことを書いてみました。 
今現在、悩んでる人も多いと思うけれど、頑張ってください。 
俺も頑張ります。 


今回の決断にあたり、参考にした本があります。 
「プロ論。」徳間文庫  http://amzn.to/jChxdn
2冊出てます。 
経営者、芸能人、学者、棋士、スポーツ選手、小説家、誰もが知ってる一流のプロと呼ばれる人のの仕事観や、この仕事でプロになろうと思った経緯、などがインタビュー形式で載ってます。 
僕が、自分の好きなことを仕事にしようと思うに至った本です。 
お勧めなので、ぜひ読んでみてください。 
************************************************************************************

音楽ファイルとモーションを同期させる

CHOPNETのなかで、音楽ファイルをモーションに結び付けていく。
やや個人メモのため、詳細の説明は省いてあります。

1.Chopnetを作成

2.channelノードを作成
http://www.sidefx.com/docs/houdini11.0/nodes/chop/channel


bezier関数・・チャネルセグメント機能:ベジェ補間スプライン


3.Fileノードを作成

audio panelでsound onに

4.deleteノードを作成
chan1を消します。

5.envelopeノードを作成
http://www.sidefx.com/docs/houdini11.0/nodes/chop/envelope

6.mathノードを作成
http://www.sidefx.com/docs/houdini11.0/nodes/chop/math

ここで、エクスポートflagを設定する。


オブジェクトがどのファイルに関連付けられているかは、
ノードの上で右クリック>view dependencies でツリー上に表示されます。


・・・音がレンダリングされませんが、一応音楽ファイルと同期したモーションになってます。パーティクルはおまけです。
Mantraの設定ではないようなので、コンポジットネットワークの方でやるんでしょうか?うーん、わからないので、音なしですみません。今後の宿題ということで。

以上。

2011/04/27

copyノードの使い方2

copyノードでコピーしたオブジェクトにスケールなどをかけると全て倍乗された値がかかってくる。

このようにせず、一つ一つのオブジェクトを変形させたいときは、コピーノードをもう一つ作成する。
この際、インプット先は左に。右にするとうまくいかない(なぜかは不明?)。
また、Transform Cumulativeのチェックは外しておく。
Transform Cumulative・・コピーが上位ノードに関連して変換される
http://www.sidefx.com/docs/houdini11.0/nodes/sop/copy
この状態でスケールなどをかけても、それぞれのコピーされたオブジェクトごとに独立してスケールがかかる。


以上。

copyノードの使い方1

グリッドのポイントにあわせて、各オブジェクトがランダムにアニメーションするようにしたい。



1.copyノードの設定
stampタブの設定をおこなう
value1に"randPeim"という名前で"rand($PT*3)*2
value2に"randScale"という名前で"rand($PT)*1.3

→グリッドのポイントの位置に任意の定数をかけて、ランダムに値を取っている

"pt"・・point
“det”・・detail
“vtx”・・vertex variables

2.swichノードの設定
selectinputにエクスプレッションを入れる
stamp("../copy1", "randPrim", 1)

*stamp stamp(scope,token,value)
stamping変数を返す

下流のコピーノードに通常から取得スタンプ変数を設定します。
この関数は、浮動小数点数の値を取得します。文字列の値については、stampsを使います。


scope:ノードのパスからの値を取得します。
token:変数の名前を取得します。
value:トークンが存在しない場合に使用するデフォルト値を設定します。
http://www.sidefx.com/docs/houdini11.0/expressions/stamp


ここでは、copyノードの、randPrimの値を返すように設定しています。
で、このstamp関数が良くわからないので、randPrimeの値がどう変化するのかが、不明ですが、copy stamping というのがあるのでそこを見てみると。
"The Copy to Points tool creates copies of a piece of source geometry on each point of a piece of template geometry. By default these copies are identical, but you can use stamping parameters to vary the generation of each copy.Stamping parameters let you communicate information upstream to the operators connected to its inputs. This lets you use values defined in the Copy SOP to control parameters on the source geometry as it is copied, even though the parameters are on operators upstream from the Copy SOP."「ポイントツールコピーし、テンプレートジオメトリの一部の各のソースジオメトリの一部のコピーを作成します。デフォルトでは、これらのコピー同じですが、各コピー世代変化させるパラメータ刻印することができます。
プレスパラメータを使用すると、その入力接続してオペレータ上流の情報を伝えることができます。これは、パラメータのコピーSOPから上流の演算子されていても、それコピーされると、ソースジオメトリパラメータを制御するためにコピーSOPで定義された値を使用することができます。」

となっており、ようするにとってきた値を、変数にしてコピーするみたいですね。
なので、ランダムに変化させた値を、下のinput operatorsに入れてそれぞれが、同時に出現するようにしているのでしょうか。
ちなみに、ただのランダム関数を入れると(rand($F/5))、それぞれのオブジェクト一つがフレームごとに出てきてしまいます。

stamp,swichノード、いくつか使い方を知りたいですね。

3.transformノードの設定
uniform scalingにstamp関数を入れる
stamp("../copy1", "randScale", 1)


ここも、スケーリングをランダムに、それぞれのオブジェクトにおこなうために、stamp関数が使われている。

こんなところでしょうか。
3つのオブジェクトのスケール、動きをそれぞれランダムに設定する、というところでswitchノードを設定し、stamp関数を使うところがミソでしょうか。
その前提の値は、コピーノードで設定して、その値をとってくるようにすることで、後からの変更にも対応できるんですね。

以上。

【基礎】パラメーターのTips

パラメーターにエクスプレッションを入れて、アニメーションさせるとき、今のフレームでどの値なのかを知る方法。

ここでは、offsetに"$F/15"という関数を入れている。
この状態で、フレームを進めてた状態で、パラーメータ名(ここではoffset)をクリックすると、現時点の値が出てくる。

【基礎】ノードアイコンのTips





・ディスプレイFLAG(目のマーク)
ディスプFlagをつけた状態がシーンビュー(作業画面)で表示される。

注意すべきは、選択状態(アイコンが黄色の状態)とは異なるということ。

ノードを選択した状態で、いろいろといじって、結果を見ようとしてもシーンビューで反映されないことが多々あります。これは、ディスプレイflagがついていないことが原因です。
ディスプレイフラグがネットワークのどのノードについているかは常に確認することが必要です。
僕もここは良く間違えます。

・レンダリング
ディスプレイフラグを上のノードにつけたままで、
下の階層でctr+クリックするとレンダリングflag(紫のフィルム)が表示され、アイコンに紫の円がつきます。
シミュレーションなど表示が重い場合は、ディスプレイflagを立てずに、こうやってオペレーション結果だけをレンダリングすることも可能。

・ロックフラグ
これまでの計算がフリーズされます。
いちいちファイルを開いたときに計算しなおされない。
ノードをきってもデータが蓄積される。
アンロックするときに、ポップアップがでる。
アンロックするときは、ちゃんとノードをつないでおかないと、再計算されず、再現できない。

2011/04/11

Particle EmitterのLocation Node-VelocityとVariance

Location Node
http://www.sidefx.com/docs/houdini11.0/nodes/pop/location

Velocity・・速度の設定と追加

Variance・・上記設定速度の分散値。このノードは、速度のパラメーターの数値に0からの+ /-の数値を各軸に沿って加えます。

この例だと、Velocityに沿ってParticleはX軸方向へ進み、分散方向Y軸上下に沿って広がっている。
今は0になっているXYZに数値を入れれば立体的な広がりとなる。


ちなみにwikiより「速度と速さについて」
"日常語としての速度(スピード、speed)は、大抵の場合一定時間あたりに進む距離のことを指す。これは [移動距離] ÷ [経過時間] で求めることができ、時速、分速などの単位が用いられる。

物理学の文脈では、日常的な意味での速度を速さ (speed) とよんで速度 (velocity) と区別する。速度は運動を表す物理量であり、ある物体が移動するときの、単位時間あたりの変位を表す。すなわち、物理学の文脈では速さと向きとを併せたものを速度というのであり、速さは「速度の大きさ」を示すスカラー量とみなされる。速度は“大きさ” と“向き”をもつのでベクトル量であり、それを明示するために速度ベクトルと呼ぶことがある。
例として、自動車が“一定速度”で東の方向に走り、1 時間で 60 km 移動した場合、車の速度は「東向きに時速 60 km」となり、車の速さは「時速 60 km」となる。また例えば、マラソン選手が 40 km を 2 時間で走った場合、そのマラソン選手の速さは 20 km/h、または時速 20 km と表される。"

Particle node-gravity and drop

Particle
gravity nodeのフォースの設定
 Force>Scaleで調整


Noise>Amplitude(振幅)
http://www.sidefx.com/docs/houdini11.0/nodes/pop/force
Noise・・The parameters on this tab add randomness to the force. This makes particles more or less affected at random, creating a less uniform effect
このタブのパラメータは、力にランダム性を追加します。これは、以下の均一な効果を作成し、粒子は、以下の影響をランダムに詳細になります。 )



Drag Node
Drag(抗力)・・・Applies drag to the velocity of particles.(抗力をパーティクルの速度に与える)
http://www.sidefx.com/docs/houdini11.0/nodes/pop/drag
そもそも「抗力」がよくわからなかったのでwikiよりhttp://ja.wikipedia.org/wiki/%E6%8A%97%E5%8A%9B
"抗力(こうりょく、drag)は、流体 (液体気体) 中を移動する、あるいは流れ中におかれた物体にはたらくのうち、流れの速度方向に平行で逆向きの成分のことである。流れの速度方向に垂直な成分は揚力鉛直上方、リフトフォースとも)やダウンフォース(鉛直下方)と呼ばれる。"


抵抗みたいなもの?か。イメージ的に。パーティクルが飛んでいくときの空気抵抗のような効果を出せる。
こちらもscaleパラメーターで調整する。1が最大。

Particleにブラーをかけてレンダリング

パーティクルにブラーをかけてレンダリングしたい。
複数のノードのパラメーターを変更する必要がある。

1.Particleノードでrenderノードを追加
render node http://www.sidefx.com/docs/houdini11.0/nodes/pop/render
パーティクルをどのようにレンダリングするか(描画するか)をコントロールする。
Particle type・・・球体、円形、ライン、チューブ状など選べる。
※ブラーをかけられるのはこのうち、sphere,disks表示のみ。
Particle size・・・パーティクルの大きさをコントロールする

Particle emitterのレンダー設定を行う
Renderタブ>Samplingタブ>Geometry Velocity Blur にチェック

Geometryタブ>Render As Points(Mantra)にチェック
renderノードでParticle TypeをLineなどを選択していた場合には、ブラーが適用されないため、ここにチェックを入れる。"デフォルトでは、パーティクルシステムプリミティブ内のポイントは、プリミティブとしてレンダリングされます。またポイントは、パーティクルシステムのプリミティブの一部でない場合、それ表示されません。このパラメータが有効になっている場合、このオブジェクトジオメトリから粒子系一部であるかどうかに関係なく、すべてのポイント、カメラに直面してポイントプリミティブとしてレンダリングされます。"

Mantraノードの設定

OutputノードにてMantraノードを追加する
Mantra>Properties>Sampling>Allow Motion Blurにチェックhttp://www.sidefx.com/docs/houdini11.0/nodes/out/ifd

マントラの設定
レンダー設定をIPRからマントラに変更。
IPRレンダリングではブラーがかからない。

モーションブラーのレンダリングについて詳しく