Vray for blenderのノードにキーフレームを追加する作業は、値をポイントして[i]キーを押せば良いです(つまり普通のキーフレーム追加作業)。
しかしなぜかDopeSheetやGraphEditorで表示されないため、変化速度のカーブを編集したりできません。
仕方が無いので、pythonで1フレームずつ設定します。
1.設定したい項目をポイントし、pythonからのアクセス方法を確認します。
2.この情報を使って、以下のコードを作成します
import bpy for i in range(1,1000): bpy.context.scene.frame_set(i) bpy.data.node_groups["World"].nodes["Noise"].inputs[6].value=i/1000 bpy.data.node_groups["World"].nodes["Noise"].inputs[6].keyframe_insert('value',frame=i)
※ bpy.context.scene.frame_set(i)
現在のフレームをiに設定します
※keyframe_insert
その項目にキーフレームを挿入します
frame=iは挿入するフレーム番号ですが、省略すると現在のフレームに挿入されます。従って先にframe_setをしてあるこの例では以下のように書いても動作します。
bpy.data.node_groups["World"].nodes["Noise"].inputs[6].keyframe_insert('value')
なお、下のようにして現在のキーフレームを取得できます
参考:
(Blender) (Python)How can I animate the factor value in the mix node with Python code?
希にほしくなるCubeを描画する関数です。同種の物は探せばいくらでも出てくると思います。
OpenGLはデフォルトで反時計回りを面の表としているので、glFrontFace(GL_CCW)でカリングをし、面の向きが全てCubeの外側を向いていることを確認しています。実際に使用するときは外すと良いと思います。
//! @brief 立方体を描画 //! @param [in] width 立方体の一辺の長さ //! @return なし void cube(double width) { double ws = -width / 2; double we = width / 2; double xs = ws; double ys = ws; double zs = ws; double xe = we; double ye = we; double ze = we; glFrontFace(GL_CCW);//反時計回りが表 glEnable(GL_CULL_FACE);//カリングを有効にする glBegin(GL_QUADS); glColor3d(0.5, 0.5, 1.0); glVertex3d(xs, ys, zs);// glVertex3d(xs, ye, zs); glVertex3d(xe, ye, zs); glVertex3d(xe, ys, zs); glColor3d(0.0, 0.0, 1.0); glVertex3d(xs, ye, ze);// glVertex3d(xs, ys, ze); glVertex3d(xe, ys, ze); glVertex3d(xe, ye, ze); glColor3d(0.0, 0.5, 0.0); glVertex3d(xs, ye, zs);// glVertex3d(xs, ye, ze); glVertex3d(xe, ye, ze); glVertex3d(xe, ye, zs); glColor3d(0.5, 1.0, 0.5); glVertex3d(xs, ys, zs);// glVertex3d(xe, ys, zs); glVertex3d(xe, ys, ze); glVertex3d(xs, ys, ze); glColor3d(1.0, 0.5, 0.5); glVertex3d(xs, ys, zs);// glVertex3d(xs, ys, ze); glVertex3d(xs, ye, ze); glVertex3d(xs, ye, zs); glColor3d(1.0, 0.0, 0.0); glVertex3d(xe, ys, zs);// glVertex3d(xe, ye, zs); glVertex3d(xe, ye, ze); glVertex3d(xe, ys, ze); glEnd(); glDisable(GL_CULL_FACE);//カリングを無効にする }
NAVERまとめを除外したいんです。
それはもう、切実に。
Naverまとめは便利だ。芸能人のゴシップとか本来知る必要すらないような情報を検索して、信憑性のない断片的な情報から想像を膨らませて楽しむには最適と言える。
勿論、今夜のおかずを何にするかと言った、重要な決定をするときには使えない。信憑性、可読性、独自性、そして情報量において他メディアに比べ圧倒的に劣っているからだ。
だが問題は、にもかかわらず、google検索で上位に表示される点にある。
キュレーションサイトを検索結果から外すには、Personal Blocklistプラグインを使います。Firefox用、Chrome用があります。
Chrome用 ... Chrome ウェブストア Personal Blocklist (by Google)
Firefox用 ... Personal Blocklist (not by Google)
Firefox用で説明します。インストールするとブラウザ右上に赤いボタンが出ます。
この状態で普通に検索すると、検索結果の左下に「xxxxx.comをブロック」という項目が出てきます。これをクリックすると以降、検索結果にこのドメインのサイトが表示されなくなります。
ページ単位でなくサイト単位で表示されなくなるので、1クリックでまとめサイトを丸ごと一つ排除出来ます。
なお、ブロックを解除したいときは、先の右上の赤いボタンをクリックし、「ブロックの解除」をクリックします。
ただし、2018/11/28現在、Chrome用のほうが全く機能しないようです。「ブロックするための項目がサイト名付近から消える」というトラブルは過去にも数回起こっているようですが、少なくとも私の環境では一切の動作をしませんでした。代替として、Chrome用にはuBlacklistがあります。
uBlacklistの場合、一度そのサイトに入る必要があります。まとめサイトに入った上で、ブラウザ右上にある禁止マークをクリックし、「このサイトをブロックする」と表示された状態でOKボタンを押します。
まとめサイトの事を正確には「キュレーションサイト」といいます。
キュレーションサイト自体は本来悪い物ではないのですが、最新のSEOを徹底的に施した粗悪なコピペ記事の量産により、検索結果がゴミサイトばかりになるという事で、キュレーション汚染とまで言われています。
なぜそうなるかというと「クラウドソーシング」と呼ばれる、オンラインで個人に仕事を依頼する方法で、1記事100円等という低予算でど素人によるGoogle検索結果のコピペ作業で完成したページだからです。
広告収入を目的に記事を書くのは良いと思います。品質を保つには予算かモチベーションの少なくともどちらか一方は必ず必要です。問題は品質が保てていないことです。Googleは検索アルゴリズムの変更で対処するようですが、もういっそ営業妨害で訴えたらどうか。
ちなみに私がなぜ今頃キレたかというと、諸事情により中二病の壁紙を検索したら頭のほうをnaverが独占したからです。
壁紙は壁紙サイト自体がまとめサイトみたいな物です。まとめをまとめるとかもう訳がわかりません。
Clouds Tutorial for Blender Cycles
前回までで基本は完了となる。
あとはイメージ通りの風景にするための微調整として、様々な位置に雲を追加していく。
既存の雲を[Shift+D]でコピーした場合はマテリアルも複製されているので、Displaceのテクスチャを状況に応じてiCloudをつかうかBIGを使うかを選択すると良い。
新しく雲を作成した場合、既存の雲と同時に選択し、Ctrl+LでMaterialモディファイアをMake Linkすることで、此までと同じ設定をする手間を省くことができる。
さらに、雲のマテリアルを数種類追加する。
マテリアルを追加するとき、全く違うマテリアルなら新規作成するが、今回のように現在のマテリアルを修正する場合、既存のマテリアルが有効な状態で、マテリアル名横の数字をクリックすることで、既存のマテリアルをコピーできる。
この数字は、現在選択中のオブジェクトが使用しているマテリアルは、何個のオブジェクトと共有されているかという意味である。この数字をクリックするとマテリアルがコピーされ、新たなマテリアルは現在のオブジェクトだけが使用する状態になる。
逆に、コピーしたオブジェクトにはCloud Upcloseが適用されているはずだが、これを先ほど作ったCloud Far Mediumに変更したい場合、マテリアルのリストから既存のマテリアルを選択する。
[52:19 命名] Cloud Upclose (Viewport色 明るい灰色) (このcloseは近くの意味)
[53:01 追加] Cloud Far Medium (Viewport色 灰色)
[53:37 追加] Cloud Far Heavy (Viewport色 暗い灰色)
このようにしてマテリアルと形状を組み合わせた雲を配置する。
これは自分の好みの問題なので、より動画に忠実に配置したい人は動画の[50:30~]を見てほしい。英語だが、動きだけ見ていれば何をしているのかはわかる。
ここまでの結果。背景を透過したPNG版だと特にわかりにくいが、volumeのアーティファクトが沢山できている。動画ではBlenderで対処せず、Photoshopなどのフォトレタッチソフトで修正をかけている。
Clouds Tutorial for Blender Cycles
[38:30~ ]
眼下の一面の雲のモデリングが終わったので、両脇の雲を別に作成する。
その前に、前回まで作成した各モデルのモディファイアを不可視にし、モデリング中の表示速度を改善する。
[38:55~ ]
Blenderで雲を作るチュートリアルを試す(4)
と同じ方法で、新しい雲を作る。
できたら、それをカメラの目の前に配置する。
[41:55~ ]
そして、追加した雲のマテリアルを設定する。
さらに以下の形状の雲を作り、カメラから少し遠いところに配置する。
このとき、カメラから離れたところに配置すると小さく見えるので、モデルを[S]で拡大する。しかし、拡大するとスケーリングが変化し、ノイズが尖ってしまう。
そのために、新たにEmpty(名前をBIGとする)を追加し、このオブジェクトにかかっているDisplaceモディファイアに指定されている[Texture Coordinate]→[Object]にBIGを指定する。そしてBIGを拡大、縮小し、適切なノイズに調整する。
この作業はBlenderで雲を作るチュートリアルを試す(4)
で行ったのと同じ内容である。
Clouds Tutorial for Blender Cycles
[34:20~ ]
マテリアルの設定に入る。
ただし、動画とは若干前後するが、先にレンダリングの設定を行っておく。
Renderを開き、
[Sampling]→[Samples]→Render=30
(※ 動画では、最低30、と言っている)
[Performance]→[Tiles]→X=16,Y=16
[Performance]→[Thread]→Fixed
[Performance]→[Thread]→Threads=7
前々回作った"iCloud"の雲のオブジェクトを一つ選択し、マテリアルを追加後、以下のようにノードを設定する。
{Volume Scatter (Density:0.1)}
→[Volume]{Material Output}
iCloudグループの全ての雲にこの設定を適用するため、Shift+右クリックでiCloudグループの全てのオブジェクトを選択し、Ctrl+L→[Make Links]→Materialを実行する。
このとき、先にマテリアルを追加しておいたオブジェクトを最後に選択することに注意する。
ここまでのレンダリング結果
この結果の中で、雲の形状の周辺に黒い部分(アーティファクト)が生じている。これは透過PNGを複数重ねたときにも生じる、Cyclesの透過の回数制限が原因である。
解決するため、Renderへ行き、
[Light Path]→[Transparency]→Max=30
を設定する。
ここまでのレンダリング結果(Light Path変更後)
Clouds Tutorial for Blender Cycles
面状の雲に、小さな雲を配置していく。
[32:00~ ]
面状の雲にHair Particleを追加する。
このとき、Hairが雲の裏側に出る。これはSolidifyモディファイアの後にParticleを発生させているためである。回避するために、モディファイアの適用順序を、Particle→Solidifyに変更する。
Hair ParticleのAdvancedをチェックし、
[33:00~ ]
動画と前後するが、最後に回転を設定する。
まず、BlenderのParticleでオブジェクトを指定すると(なぜか)90度反転するので、オブジェクトをY軸に-90度回転する。
その後、
※このRandomは、動画では1.0が最大になっているが、筆者の環境Blender2.79では最大2.0になっていた。
ここまでの結果
Clouds Tutorial for Blender Cycles
雲のモデリングに入る。
[25:50 ~ ]
Cubeを追加し、Tの形を作る
[Shift+A]→[Mesh]→[Cube]
エディットモードで[E]で各面を押し出す。
[26:25 ~ ]
次の順にモディファイアを適用する
注意:
Displaceが強すぎると、アーティファクトが生じる。
これが生じる場合は、特にVolumeを表示するときにエラーになるので、Strengthを小さくするなどの対策をする。
※ちなみに、動画ではアーティファクトと呼んでいるようだが、検索してもコレをArtifactsと呼んでいる例がなかった。
同様にして複数の雲を作るが、その前にEmptyを一つ追加し、DisplaceモディファイアのTexture Coordinatesに設定する。これにより、オブジェクトの位置でノイズが変わるようになる。
●[Shift+A]→[Empty]→[Plane Axis]
(名前をiCloudに設定)
[29:15~ ]
この状態で、[Shift+D]で複製しても数を増やすことはできるが、より多様な形を作るため、他の方法を使う。
こうして複数の雲を作り、以降のステップでParticleで配置する。
この時、モデリングの段階で(表示上の)ポリゴン数が多いとコンピュータに負荷がかかるので、Subdivisionのviewの値を減らしておく。
最後に、Particleで使うために、雲をすべてGroupにし、"iCloud"と名前を付けておく。
Clouds Tutorial for Blender Cycles
[19:20 ~ ]
眼下に広がる雲のマテリアルを設定していく。
[20:35~ ]
(動画と前後するが)先にSunの設定をする。
追加したSunオブジェクトの色を
1 . HSVで0.076 , 0.281,1.000 に設定
2 . Strengthを18に設定
[24:40~ ]
これも動画と前後するが、先にSolidifyモディファイアを追加する。
これは面のオブジェクトに厚みをつけるモディファイアで、厚みのないものに対して使用する。
雲なのでこれからVolume を使うが、Volumeは閉じたオブジェクトでないと正常に動作しないので、先に追加する。
[19:10~ ]
[19:25 ~ ]
まずVolume Scatterを設定し、試験的にレンダリングを行ってみる。
1. はじめにつながっているDiffuseを[X]で削除
2. [Shift+A]→[Shader]→[Volume Scatter] を選択
雲の影の部分に空の色が反映されていない問題があり、解決策として、
[World]→[Setting]→Multiple Importanceをチェックする事が指摘されている。
しかし著者の環境ではこのチェックがはじめから入っていた上、外しても特に影響がないように見えたので、この問題はチェックをつけた状態にしておくだけで保留とする。
[22:30 ~ ]
(続く...)
Clouds Tutorial for Blender Cycles
[ 7:55~ ]
Displaceモディファイアを追加する。
1. [Add Modifier]→[Displace] , Texture → New
2. テクスチャのタイプを[Wood]に指定
3. [Shift+A]→[Empty]→[Plain Axis]を追加
4.Empty(Plane Axis)の名前を"Wave"に設定
[ 8:40 ~ ]
1. Emptyをどこかわかりやすいところに移動
2. (Objectモードで)モデル(以下、面と表記)のDisplaceの設定へ戻り、
[Texture Coordinates]を[Wave] (Emptyの事)に設定する。
※ここで、Subdivision SurfaceをDisplaceの上に追加する
前手順で、Displaceのテクスチャ座標がEmpty(Wave)に依存するようになったので、EmptyをZ軸回転し、Woodテクスチャの波が面のカメラ方向に水平になるようにする。
同時に拡大縮小し、波の大きさが適切になるようにする。
カメラの角度を調整する。
先に、カメラビューに補助目盛を表示する。
カメラを選択し、[Display]→[Composition Guides]の中の、"Thirds"のチェックを入れる。
そしてカメラを選択したまま、[Num"0"]でカメラビューへ移行し、
・[G]→[Z]でマウスを動かし
・[R]→[X]でカメラの角度を変更し、少しだけ下を向かせる。
法線のチェックを行っておく。
面をEditモードにし、プロパティシェルフから[Display Face Normals as lines]を選択し、sizeを20等大きい数字にする。
青い線が下を向いている場合、ツールシェルフから
[Shading/UVs]→[FlipDirection]を選択する。
(法線が反転したら、Display Face Normals as linens のチェックを外しておく)
Displaceモディファイアをもう一つ追加し、Voronoiテクスチャを指定する。
※この際、Woodの時と同じように、Texture CoordinatesをWaveに設定する。
※ついでに、Voronoiの影響を確認できるようにwoodのほうのDisplaceのViewport上の表示をoffにする。
最終的に、各モディファイアとテクスチャの設定はこのようになる。
[18:10 ]