devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

Lightwave/Modeler用のスクリプトです。

レイヤー名に指定した文字列が含まれている(含まれていない)レイヤーをフォアグランドレイヤーとして選択します。対象外のレイヤーをバックグランドレイヤーとして選択することも出来ます。

使い方

sellayersbyname120

スクリプトを実行して、対象とする文字列を指定します。大文字小文字が区別されますので注意してください。

containをオンにすると、指定した文字列が含まれるレイヤー名のレイヤーが、フォアグランドレイヤーとして選択されます。オフにすると、指定した文字列が含まれていないレイヤー名のレイヤーがフォアグランドレイヤーとして選択されます。

select background layerをオンにすると、フォアグランドレイヤーとして選択したレイヤー以外が、バックグランドレイヤーとして選択されます。

操作動画

※rev.1.00時のものです

ファイル

DOWNLOAD : SK_SelLayerName_rev1.20 ※SK_SelLayerNameとして登録されます。

動作確認環境:Lightwave2015.2J (Windows7-64bit)
本スクリプトを使用して発生するいかなる問題も責任は負いかねます。ご自身の責任のもとで使用してください。

更新履歴

rev1.20 (2015/09/11)
追加機能:レイヤー名に文字列が”含まれる/含まれない”を選択できるようにした

BSPのボックスをスタティックメッシュに変換したとき、ボックスに「INVALID LIGHTMAP SETTINGS」と表示された。これは、スタティックメッシュのライトマップが設定されていないことが原因らしい。

SS_NoName_2015-4-6_15-4-57_No-00

コンテンツブラウザで該当するスタティックメッシュをダブルクリック(または右クリックメニューから編集を選択)して、編集画面を開く。

SS_NoName_2015-4-6_15-8-23_No-00

編集画面の右側、詳細パネルのスタティックメッシュの設定、Light Map Resolutionの値が0になっているので、0よりも大きな値に変更する(1を設定したら自動的に4になった。最小が4?)。

SS_Box_StaticMesh_1_2015-4-6_15-16-16_No-00

ボックスに表示されていた「INVALID LIGHTMAP SETTINGS」が消えた。

SS_NoName_2015-4-6_15-21-42_No-00

– – – – – – – – – –
Unreal Engine 4.6.1

UnityとLightwaveのカメラ設定を一致させることで、モデル作成の手戻りを減らして作業効率を上げる。

UnityのCamera設定

スクリーンショット 2015-03-29 17.22.16

LightwaveのCamera設定

スクリーンショット 2015-03-29 17.22.42

画角をあわせる

UnityのField of ViewとLightwaveのVertical FOVに同じ値を設定する。

画面サイズをあわせる

LightwaveのWidthとHeightの値をUnityのGameウィンドウのサイズと同じにする。

画像の比較

lightwave_renderunity_game1unity_game2

左から、Lightwaveのレンダリング画像、Unityでシーンに追加、Unityでシーンに追加(補正Y軸180度回転)

ライティングや背景は違いますが、形状の見え方に関しては同じになりました。

– – – – –
Lightwave2015.2, Unity5.0.0p3

Lightwaveで作成したデータをfbxファイルでUnityへ読み込んだ時にスケールに違いがあるか確認した。

LightwaveのModelerで1m×1m×1mのボックスを作成。
スクリーンショット 2015-03-29 16.43.46

作成したボックスをLightwaveのLayoutへ転送し、シーンをfbxファイルとして書き出す(デフォルト設定)。
スクリーンショット 2015-03-29 16.38.39

UnityのAssetsフォルダにfbxファイルをドラッグ&ドロップ。以下の様なImport設定で自動的に読み込まれた。
スクリーンショット 2015-03-29 16.39.59

インポートしたオブジェクトをシーン(Hierarchy)に追加。
スクリーンショット 2015-03-29 16.49.33

上記画像のグリッドサイズは1。Lightwaveの1mがUnityの1単位となり、デフォルトの設定でも等倍で読み込まれることが確認できました。

参考

Unity マニュアル:モデル

http://docs.unity3d.com/ja/current/Manual/FBXImporter-Model.html

Unityのマニュアルには「Unity の物理特性システムは,ゲーム世界での 1 メートルを,インポートされたファイルでの 1 単位と考えます。」と書かれていました。

– – – – –
Lightwave2015.2, Unity5.0.0p3

2015/04/01 Social Connector v0.3.6でUnity5対応されました。以下の内容はUnity5対応される前のバージョン(v0.3.5)の時の内容です。

UnityでSNS連携するときには必須のプラグイン

Social Connector v0.3.5

https://github.com/anchan828/social-connector

ですが、Unity5でiOS向けにビルドするとXcodeでエラーが発生しました。

スクリーンショット 2015-03-28 10.37.41

どうやらARCが影響しているようです。

Xcodeで、Build Phases – Compile Sources(xx items)を開いて、SocialConnector.mmをダブルクリックして -fno-objc-arc を追加することでエラーがでなくなりました。

スクリーンショット 2015-03-28 10.25.28

参考:

Stack Overflow : Disable Automatic Reference Counting for Some Files

http://stackoverflow.com/questions/6448874/disable-automatic-reference-counting-for-some-files

Stack Overflow : How can I disable ARC for a single file in a project?

http://stackoverflow.com/questions/6646052/how-can-i-disable-arc-for-a-single-file-in-a-project

– – – – –
Unity5.0.0p3

少し前にNewtekのフォーラムに書かれていたUnity向けのGenoma2用リグがリリースされていました。

スクリーンショット 2015-03-17 12.41.42

GENOMA2UNITY

http://3dxyz.pro/genoma2unity/

Unityでインポートすることを前提にしたGenoma2用のリグプリセットです。使い方を説明したビデオも同時に公開されていました。

How to use the Genoma 2 to Unity Preset – Part 1
How to use the Genoma 2 to Unity Preset – Part 2
How to use the Genoma 2 to Unity Preset – Part 3
How to use the Genoma 2 to Unity Preset – Part 4
How to use the Genoma 2 to Unity Preset – Part 5

メモ : 正常に変換できない

現象

LayoutでCreate Rigを押した時に、エラーメッセージ(Unknown command. “Generic_Py_ConvertTagsToNulls”.)が表示される。

スクリーンショット 2015-03-17 13.44.12

OKを押して先に進むが、再びエラーメッセージが表示される。

スクリーンショット 2015-03-17 13.47.09

リグが正常に生成されない。

対処方法

Layoutで次のプラグインを追加します。
support/plugins/scripts/Python/Layout/Generic/ConvertTagsToNulls.py

Unity5からシェーダーまわりがガラッと変わりました。よりリアルな質感を表現するためにStandard Shaderが汎用的に使われます。新規でマテリアルを作成した時や、3Dオブジェクトを作成した時、fbxでオブジェクトをインポートした時には、このStandard Shaderがデフォルトで設定されます。

平面オブジェクトにStandard Shaderを設定した時に、想像していなかった状態になったので、ここにメモしておきます。

現象

以下の画像はGameウィンドウのキャプチャです。平面オブジェクトにStandard Shaderを割り当てています。ライトはDirectional Lightを1つシーンに設定しています。画像を見ると、平面の中央がライトが直接あたっているように白くなっています。
スクリーンショット 2015-03-16 23.20.42

シーンの構成はカメラの前面に平面オブジェクト、やや上の方にDirectional Lightを配置しています。平面の中央に直接ライトはあてていません。

スクリーンショット 2015-03-16 23.18.19

平面オブジェクトに設定しているStandard Shaderはデフォルトの状態です。

スクリーンショット 2015-03-16 23.17.28

結論

Standard ShaderのMain MapsのSmoothnessが影響していたようです。この値を0に設定したら以下画像のようにフラットな質感になりました。

スクリーンショット 2015-03-16 23.21.49

平面オブジェクトの質感がおかしい*1、妙にバンディングが目立つ時は、このパラメータが影響しているかもしれません。

Unity5.0

追記(2015/04/23)

*1 「質感がおかしい」は正しくない。ここでは、フラットな設定にしたかったのにライトが写り込んでしまったのを何とかしたかっただけ。Smoothnessはメタリック、マット感をコントロールするためのパラメータ。メタリックになると背景の映り込みやライトによるハイライトが発生するので挙動は問題ない。

Smooothnessを小さくするとマットな質感になり、背景の映り込みやライトによるハイライトが無くなっただけ。

リアルタイムに影をつけるのは負荷がかかります。カメラからどれぐらい離れた所まで影を計算するか(表示するか)を設定することが出来ます。

設定は、(メニュー)Edit-Project Setting-Qualityで表示されるQuality SettingウィンドウのShadow Distanceです。

shadow_distance

以下、Shadow Distanceの値による違い

Shadow Distを7に設定

Shadow Distanceを7に設定

Shadow Distanceを20に設定

Shadow Distanceを20に設定

影の表示をONにしているのに表示されない場合は、Shadow Distanceの値を変更すると解決するかも。

Unity5.0