2014年11月30日日曜日

アニメ背景屋のための、無料3DCGツール「Blender」活用法 :球形変形ツールとして使う


モデリングは時間がかかりすぎるから、結局描いたほうが早い。でも何とかうまく3Dをつかえないか・・・と思っている背景屋さんのために、無料の3DCGツール「Blender」の活用例を紹介します。
ここでは、「画像素材を球形に湾曲させる方法」です。
(使用バージョン:Blender 2.72)



Blender
ここでは写真を使って、このような画像を作成します。

ガスタンクの表面にマークが描いてあります。通常の背景作業を考えた場合、球体の表面に模様などを描き込むのはとても面倒です。
ベースの画像はこのようなものです。昔、フィルムで撮影した写真です。

ガスタンクに描かれたマークはこちらです。


この画像を変形させてガスタンクに貼り付けたいところですが、Photoshopでは球面に沿った変形はあまりうまくできません。
そこで3DCGツール「Blender」を使ってみます。
シーンの準備

Blenderを起動し、最初からある立方体を削除して、カメラ位置を変更します。


レンダリング解像度を、貼り付け先画像の解像度と同じサイズにします。



今回用意した写真のサイズは「1499 x 1066pix」です。
パーセンテージを「100%」にするのを忘れずに。
「下絵」にチェックを入れ、「画像を追加」から写真画像を選択します。
「座標軸」を「カメラ」にして「カメラビュー」だけに下絵を表示するようにします。
「不透明度」で下絵の不透明度を変更できます。


アイレベルを写真と合わせます。
カメラビューの薄いグレーの線は「真横から見たグリッド線」です。
最初にカメラ位置を変更したのは、このグリッド線をアイレベルとして使いたいためでもあります。
カメラのX軸の回転の値を少し変更し、グレーの線が写真のアイレベルとだいたい同じ位置に合わせます。


オブジェクトの用意

タンクに見立てた球のオブジェクトを配置します。
「UV球」を追加し、写真のタンクと重なるように、サイズと位置を合わせます。
配置が終わったら「オブジェクト」>「適用」>「回転と拡縮」で、位置とサイズを適用しておきます。
 

次に、マーク素材を貼りたい位置に「エンプティオブジェクト」を配置します。
「エンプティ」を追加し、「座標軸」を表示させておきます。
模様を貼りたい位置にエンプティを置きます。
模様の上下がエンプティのY軸、左右がX軸、前後がZ軸になるので、エンプティの角度を合わせておきます。
 

マテリアルとテクスチャの設定

球のマテリアルを設定します。
球自体は変形のガイドなので、レンダリングされないように透明な素材にしておきます。
球を選択して、マテリアル設定の「陰影なし」にチェック、「透過」にチェックし、「Z値透過」の「アルファ」を0にします。


球のテクスチャを設定します。
テクスチャの「タイプ」を「画像または動画」
「画像」に貼り付けたい模様素材ファイルを選択
「イメージマッピング」の「延長」に「正方形クリップ」
「マッピング」の「座標」を「オブジェクト」
「オブジェクト」に先ほど配置した「エンプティ」を指定
「投影」は「フラット」
「影響」の「カラー」と「アルファ」にチェックして値はどちらも「1」


3Dビューのシェーディングを「レンダー」に変更して、確認します。


カメラビューにはこのように表示されました。


レンダリング

レンダリングの設定をします。
「シェーディング」の「アルファ」を「透過」にすることで、背景を透明にしてレンダリングできます。
「出力」を「PNG」の「RGBA」にすれば、アルファ付きで画像ファイルを出力できます。


レンダリングしてみます。 「レンダー」>「画像をレンダリング」


レンダリング結果はこのようになります。


このレンダリング結果を画像ファイルとして保存します。


photoshopで仕上げ

photoshopで写真と出力した画像を重ねてみます。


加筆など調整をして、完成です。


メリットとデメリット

【メリット】
貼り付け位置やサイズの変更は、エンプティオブジェクトのトランスフォームを調整すればいいだけなので、見栄えのいい位置に調整することが容易です。
【デメリット】
この方法では、缶のラベルのように裏側へ回り込むような画像の貼り付けはできません。

Blender上でMIDIファイルを読み込み3Dモデルの鍵盤を動かすpythonスクリプトに挑戦したこと

昔取り組んだことについての忘備録 作成日 2016/8/7 目的 MIDIファイルの仕様の理解 BlenderとPythonの学習 内容 MIDIファイルのバイナリを読み込んで解析し、ノートオン、ノートオフ情報に従って、対応する音階の...