ページ

2015年1月10日土曜日

SpeedTreeで雑草をつくる


SpeedTreeで雑草をつくっていきたいとおもいます。
今回は上の動画を参考に、日本語で解説を入れながら説明して行きたいと思います。
(動画のやり方より速いと思います)

まず最初にテクスチャを手に入れましょう。
CGtextures.comというサイトから手に入れます

今回使うのは
http://www.cgtextures.com/textures.php?t=browse&q=105491
このページにある雑草を使います。(アレンジで;^^


















プレビューでみてみます。

フォトショップで起動してみます。



















このように表示されます。

選択ツールを利用します



























次に新規作成から



















512*512 1024*1024 などの大きさでプリセットを設定しましょう。




次に移動ツールで選択した枠の中のものを新しいところにもっていきます。



























このようになると思います。
自由変形で調節するので、ctrl+Tを押します。
















調整していくとうまく枠に収まると思います。

















三つ並べてみました。
レイヤーを複製でfoliageのレイヤーを増やしておきましょう。
また背景のレイヤーをつくり白で塗りつぶして作っておきましょう。
背景レイヤーはアルファチャンネルを作るとき黒い部分をつくるのに利用します。



こんなかんじですね。

ここからアルファチャンネルを作成してきます。












カラーピッカーを黒にして






塗りつぶしツールでレイヤー1のコピーをアルファチャンネルにするため塗りつぶしていきます。

塗りつぶすときはfoliageを白、背景を黒にします。
















こんなかんじですね。

アルファチャンネルはフォトショップのチャンネルを開いてブルーを複製します。
ブルーのコピーができますが、アルファチャンネルとして機能します。

















レイヤーのコピーと背景を削除してtgaフォーマットで保存しましょう。




















CrazyBumpやxnormalなどでノーマルやスペキュラを作ってファイルに格納します。
(手順は割愛します)

スピードツリーを開いて
















適当にスペースバーを押しながら雑草をはやします。

左のジオメトリタイプを以下の設定にします。












先ほど作成したものをアプライします。














































スペースバーを押しながらはやしていきましょう。
このときコツがあるのですがメッシュ同士が重なり合わないようにします。
また必要以上にくねらせないようにもしましょう。

view>render>lightmap density からライトマップの調整がかのうです。

保存するとアンリアルエンジン用スピードツリーを利用されている場合は自動的にsrtファイルが生成されます。

ue4に持ち込みます。


























最終的にはこのような形になりました。
ちょっと茎の部分が薄くて見えにくかったです;
今度から意識して太くしていきたいとおもいます。

2015年1月9日金曜日

ライトマップUVについて

UnrealEngine4がリリースされてから9ヶ月くらいがたっていると思います。
ですが自分は最近までライティングビルド時のエラーについて苦しめられてきました;

今回解決方法がわかったので3dsmaxを用いて手順を解説していきたいとおもいます。












:Object  has overlapping uvs

このような感じにエラーがよくおきると思います。
何故起きるのか結論から言うとライトマップ用のUVが重複しているからです。
アンリアルエンジンでは3dcgでよく使われる拡張子のobjやfbxなどのUVの他にライトマップ用のUVというものが必要なのでこれを追加することでエラーを解除することができます。

具体例を用いて手順を追って説明していきます。

1、重複するUVを持つオブジェクトを編集してみる。


















デフォルトのティーポットに重複するようにUVをはりました。
objファイルで書き出しUE4で表示してみます。

そうすると...








このように表示されます。
影がメチャクチャな状態ですね。
UE4内で編集画面をみると...


















このようになっています。
白いUVのラインが他のUVと重複しています。これだといけないので編集します。


















平均化で適当にならべてみました。objでインポートします。






















このように表示されました。影がおかしいですね。
エディタ内のUVは以下のようになっています。


















つまり重複があるとエラーが発生します。
しかしこれは展開用のUVとライトマップ用のUVをひとつのUVで使っているので影がメチャメチャであります。

2、ライトマップ用のUV(セカンドUVチャンネル)を作成する

まず大前提として覚えておいて貰いたいのは
拡張子objは一つのUVしかもつことができません。ですのでインポート時にfbxを選ぶ必要があります。

以下3dsmaxでセカンドUVチャンネルの作り方をレクチャーします。

























まず角度でフラット化してみました。

次に画像のように

新規UVWアンラップを追加します。



チャネル→マップチャネルを2にするとこのようなビューポートが表示されるので
移動を選択しましょう。

fbx形式でインポートします。

FBXインポート時はこのようなチェックボックスの設定が望ましいです。
ソース→FBXインポートのリファレンス

UE4で表示してみます。




このように表示されました。
左上にあるUVチャンネルが2になってることを確認してみてください。

右側にあるスタティックメッシュの設定です。
UE4内のUVチャネルは3dsmaxだと
UVチャンネル1(3dsmax)→UVチャンネル0(UE4)
という具合になります。
ライトマップUVは
lightmap coordinate index を変えれば変更可能です。
lightmap resolution はライトマップの解像度のことです。


この際以下の画像のように重複するUVがライトマップUV以外にある場合も大丈夫です。




影がまだ角ばっていますね。

望ましくありません。
detail>lighting>cast insert shadow にチェックをいれます。


上手にやけました♪

またムーブアブルオブジェクトの場合
例:スピードツリーアセットなど
は可動性の部分をムーバブルに変更するだけでもきちんと影が出来ると思います。

またスカイライトをムーバブルにすることでもfixすることができます。
またライトソースをムーバブルにし、cast static shadow をオフとfixできたりします。

おしまい。

このほかにオブジェクトをブループリント化してエラーを回避する方法もあり動画もあがっていますが影がなくなるみたいです。