VRコンテンツでのUI表示

VRにてUIを表示する際に、Cameraの設定はOrthographicでいいかなと思いましたが、どうやらVRコンテンツでは(google VRでは?)カメラの設定をOrthographicではなく、Perspectiveに設定するしかないようです。
Post Processingを使っている場合はその影響が出ないように、UI専用のCameraを作成しそちらをPerspectiveにし、そちらにCanvasのRenderModeをWorldSpaceに設定し、そのカメラの子オブジェクトにしました。
PerspectiveなCameraへのUIをフィットさせる方法は
Continue…

Xcodeのパスのrecursiveの設定

PBXProjectなんかを使って、Xcodeの設定を書き換える際、パスのrecursiveを設定するには、パスの値に**とつければいい。
“$(PROJECT_DIR)/Frameworks/Plugins/iOS/**”
こんな感じ。

VRモードとノーマルモードの切り替え

UnityでのVR対応を作るのは非常に簡単で、PlayerSettingsのOther SettingsからVirtual Reality SupportedをONにして、SDKにCardboardなどを入れればもうVRコンテンツになる。
Unity2017.2b3からはVRではなく、XRと名称が代わり、スクリプトのパッケージ名や、PlayerSettingsの項目も、XR Settingsへと移行。
現状の最新Google VR Unity SDK v1.7ですが、Unityに入っているものはv1.6。
VRと通常コンテンツの切り替えは、基本的には。

VRSettings.enabled = !VRSettings.enabled;

(2017.2b3からはXRSettings)

とすればOK。
ただ、これで成り立つのは

・起動直後からVRコンテンツ
・ノーマルコンテンツもVR同様の横向き

という条件になると思います。
Continue…

CinemachineとPost Processing Stack

ムービーシーンを作るなら
・Timeline (Unity2017にて組み込み)
Cinemachine (Asset Storeにて先月から[2017.06]から提供)
Post Processing Stack (Asset Storeにて提供)
を使いたいですが(全てUnity社提供)、いまいちPost ProcessingをTimelineで変更する方法が分からなかった。

と思ったら、Cinemachine側で、Post Processingの方ので用意してくれていた。
cinemachine_post_processing

Cinemachine Brainの方にCinemachine Post FXコンポーネントを追加し。
あとは、Cinemachine Virtual Cameraにも追加し、そのカメラに切り替わる際に使いたいPost Processingを設定すればOK!
CinemachineBrainにもこのコンポーネントをつけないとなぜか動かない。

ちなみに、Post Processingの値はフェードしてくれないような気がします。

MecanimにてTriggerがtrueになる

MecanimにてTriggerを2回連続して叩く場合に、アニメーションステートに行くことが許可されていない(Can Translation To Self)と、そのトリガーが再びONになってしまう。
なので、いったんAnimatorのステートをみてトリガーを押すかどうかを判断すればOK。

if (!this.animator.GetCurrentAnimatorStateInfo(0).IsName("StateName"))
	this.animator.SetTrigger("StateName");

参考)

色味の調整

editor_ios_color

Unity Editor上で見るのと、iOSに書き出してみたら色が違った。
データ自体はpsdだけど、ためしにpngにしてカラープロファイルを切っても一緒だった。なにが悪いんでしょうか。。?ひょっとしてディスプレーのカラープロファイルの影響でそう見えただけ?
とりあえずデザインデータを書き換えずになにかできるかなと調べていたらColor Collection CurvesColorSuiteというライブラリを見つけました。
Continue…

‘.’ is not a valid texture file name on asset…

‘.’ is not a valid texture file name on asset ‘***’ on material ‘Tree02Mat__UVTest’ of renderer ‘***’. The file will be ignored

Blenderで作った3Dファイルを読み込むとたまにこのエラーが出る。
どうもBlender上で参照しているファイルが、Blenderファイルに埋め込みの場合(外部ファイルでない場合)、Unity側が画像ファイルを見つけられずに困ってしまうらしい。
blender_image_deleteBlender上で画像ファイルを消すには、UV/Image Editorを開いて、下のメニューにあるバツマークをShiftを押しながら押すと消える。そのあと画像のプルダウンから、該当のファイル名の先頭に0(ゼロ)がついていればOK。