白あえてテクスチャを張らないという選択。猫と羊と紙の束DAZで動物系を何点か買ったので使ってみる。本当は草原を作りたかっただけなのだが、それだけだと味気ないので人間を乗せた。Blender]で出力したFBXファイルをCyclesでImportしたときに、非透過テクスチャを透過させるより簡単な方法を紹介する。読み込んだ直後はこのようになっている。左上、アルファ用のモノクロテクスチャのColorから、MixColor/AlphaのColorへ繋げる。これだけで透過するようになる。次に、Displacementがよくわからないことになっているので、カラー画像からバンプマップを作り、それをDisplacementへ接続する。BWは色を0~1.0の値に変換する。BSDF]に置き換える。PLEはサンプルをエクスポートしたのみ。この倍率でも少しポリゴンが欠けてるのがわかる。これは買えばなおるやつ。緑の川セント・パトリック・デーという日らしい。シカゴでは川を緑色に染めるという。C/C++のクラスの「継承」とは何なのか前回「クラスはC++にデータ型を追加するための機能である」ということを説明した。今回は、継承とは何か、を説明する。くどいようだが、クラスは現実世界にあるモノの種類をデータ型として定義する機能である。「○○は■■の一種である」という定義を、C++語で行うための機能なのである。具体的な例を挙げると、日本語で「リンゴは果物の一種である」という定義を、C++言語で記述するための機能である。果物{...};断っておきたいが、確かに継承した子クラスは親クラスのメンバ変数等をすべて持つことになる。継承は、似たようなクラスを量産するための機能ではない。price;};を作りたいとする。//継承したので、メンバ変数は全てAppleを引き継ぐ};というコードを書いたら、それは「このプログラムにおいて、オレンジはリンゴの一種であるとする」と宣言したのと同じことなのだ。定義されているクラスAppleと、メンバ変数も、メンバ関数も、全く同じクラスOrangeが必要になったとしても、「OrangeはAppleの一種である」という関係が成り立たないなら、継承を使ってはならない。この例なら、普通は両方のクラスをFruitクラスからの継承とするだろう。※ただし、「Appleとほとんど同じ内容のクラスをもう一つ作るのは無駄に思えるので、Fruitを作って、AppleとOrangeはFruitを継承しましょう」ということを書いている解説書があるが、誤解を招く表現だと思っている。楽をするために継承を使ってはいけない。price;};//リンゴというデータ型を定義。これは果物の一種である。//果物の一種なので、パラメータの種類は果物から引き継ぐ};//オレンジというデータ型を定義。これは果物の一種である。//果物の一種なので、パラメータの種類は果物から引き継ぐ};だが、それすらできない場合もある。}日本語には「月とすっぽん」ということわざがある。似たところもあるが、比較にならないほどの違いがあるである。月はすっぽんの一種ではないし、その逆でもない。この両者は方や生き物、方や星である。種類としての共通点がない。これは「ほかのプログラマから、オレンジはリンゴの一種という意図をもって書いたと解釈され、馬鹿にされる」という次元の話をしているのではない。OrangeはAppleの一種である、という定義のC++語訳であるから、C++のコンパイラがそのように解釈してしまうのが困る点なのである。C++が意味を勘違いすると、後でとんでもないバグを引き起こす可能性がある。正確には、プログラマのミスを検出してくれないのである。Cyclesでアルファ情報のない画像を透過するe-onのPlantFactoryはBlender向けにExportできる(ただしPLE版では削減されるらしい)。アルファチャンネルをもたないjpgなどの画像にモノクロのマスクをつけて透過する方法をここにメモしておく。ちなみに、e-onのライセンスに触れたくないので加工画像だが、カラー画像、アルファ画像はそれぞれ以下のようなもの。言いたいことはいろいろあるが、とりあえずそれっぽくできた。Cyclesへの変換。mcjTeleBlender3を使えばいい。-Blender-http://3d-memo.blog.jp/archives/1049736434.htmlはずなのだが、なぜか動かない。動いてもテクスチャが反映されない。私のところでは以下二つが問題だった。1.Blenderのパスが違う出力されたscene.batファイルをテキストエディタで開く。Blenderのパスが自分の環境にあっていなかったら、自分の環境にあったものに変更する。Optionsタブから変更できる。2.テクスチャのパスにスペースがある。」(アンダーバー)に置き換えられていた。エクスプローラなどのファイラで確認し、テクスチャへの正しいパスに置換する。量が多いのでテキストエディタの置換機能などを使ったほうがいい。これでやっとテクスチャがつく。あとは別に作ったシーンをBlenderで開き、フィギュアをAppendすればいい。