月別アーカイブ: 2014年10月

複数のマテリアルが適応されたオブジェクトを3DSMaxからUE4へエクスポートするには

参考になったサイト

・ライトマップについて

動画

http://www.worldofleveldesign.com/categories/udk/udk-lightmaps-02-uv-techniques-and-how-to-create-second-uv-channel-in-maya.php

http://eat3d.com/free/udk_lightmaps

Wikipedia

http://en.wikipedia.org/wiki/Lightmap

UE4の公式ドキュメント

https://docs.unrealengine.com/latest/JPN/Engine/Content/Types/StaticMeshes/LightmapUnwrapping/index.html

・3DSMaxで複数のマテリアルが適応されたオブジェクトを一まとめ(MultiSub Objects)にしてUE4へエクスポートするには

アタッチとマテリアルについて

http://tech.autodesk.jp/faq/faq/adsk_result_dd.asp?QA_ID=7403

ライトマップ用のUVについて

テクスチャ用のUVとは違ってライトマップ用のUVを作成する必要がある。もし作成しなければ変な箇所に影が表示(Blood)されてしまう。テクスチャ用のUVWアンラップとライトマップ用のUVWアンラップは個別にモデファイアリストから追加して作成しなければならない。手順はまずテスクチャ用にモデファイアリストからUVWアンラップを選択して一つ目を追加して、チャンネル欄のマップチャネルが1になっている事を確認してからマッピングする。終えたら次はライトマップ用のUVWアンラップをモデファイアリストからさらに追加する。この時点で修正パネルにはUVWアンラップが二つある。ライトマップ用のUVWアンラップのチャネルのマップチャネルを2に変更する。このときホップアップウィンドウが表示されるので移動を選択する。その前にチャネルを移動したら前のチャネルのUV情報はもう編集できなくなるので、チャネル欄の保存ボタンから保存しておく。UVエディタを開く。面同士が重ならないように並べていく’(重要)が、手っ取り早く済ませるために、Ctrl+Aを押してオブジェクトの面をすべて選択してからUVWを編集ウィンドウのツールバーのマッピング→フラッティンマッピングをクリックすると大体きれいに並べられる。表示されたオプションの間隔とあるが。ライトマップ用のUVは面が連なった一塊同士がある程度余白を空けなければダメで、それぞれが近すぎると変に影が出来てしまう。なので適当に調節して間隔の数値を入力する。あとは仕上げで面を選択してハイライト表示させながら調節していく。調節の仕方は面と面をつなげるべき場所はフラットな場所で、角があればそこで切るようにする。大事な事なので二度書くと、絶対に面と面が重ならないようにする事。後はエスクポート設定。詳しくはこのURL

あとはUE4側のライトマップの解像度設定の事で、解像度を上げれば上げるほど影が詳細に映るが処理が重くなるので32,64,128ぐらいにする。値は2の累乗。透過オブジェクトに対しては解像度を下げれば逆に影が詳細に映るようになる。値は5ぐらい。

3DSMax側のチャネル1(デフォルト)はUE4側で0になり、3DSMax側のチャネル2はUE4側で1にする。なのでUE4のチャネル0のUVはテクスチャ用、チャネル1はライトマップ用にする。UE4側でのデフォルトでのライトマップのチャネルはテクスチャと同じの0なのでLightMap Coordinate Indexを0から1に変更して適応して保存する。以下がその画像

lightmap_UV

Unityからサーバーへデータを送信して保存するには

参考になったPHPスクリプト

https://gist.github.com/t-kashima/5714358

流れ

unity側でデータをjson形式のテキストを作成して、AES暗号方式で暗号化し、URLエンコードをしてGETで送信。PHP側ではそれを復号化し、改行文字が含まれているとjsonでデコードできないので、rtrim関数で取り除いて置く。json_decode関数で配列に変換する。json_decode関数の第二引数にtrueを指定すると返り値が配列となるのでしておく。