MRが楽しい

MRやVRについて学習したことを書き残す

Blenderで作成した3DCGを写真に合成する

本日は Blender の技術調査枠です。
Blender で作成した3DCGを他の写真に合成する方法についてです。
hololens 紹介写真でよくある下みたいな3Dと写真の重ね合わせをやることが目的です。
f:id:bluebirdofoz:20171120000945j:plain

Blender を起動して、毎度お馴染み hololens モデルを利用します。
f:id:bluebirdofoz:20171120000954j:plain

追加 -> カメラ で撮影用のカメラオブジェクトを追加します。
f:id:bluebirdofoz:20171120001005j:plain

カメラが追加されたら位置を調整する必要があります。
値調整で位置を変更することも可能ですが、現在の視点をカメラに反映することもできます。
f:id:bluebirdofoz:20171120001017j:plain

気にいった位置に視点を持っていきます。
f:id:bluebirdofoz:20171120001025j:plain
レンダーシェーディングにしているとより撮影後の印象が分かりやすいと思います。

ビュー -> 視点を揃える -> 現在の視点にカメラを合わせる を選択します。
f:id:bluebirdofoz:20171120001035j:plain

カメラ位置が設定されました。
テンキーの 0 キーを押すことで、カメラ視点とユーザ視点を切り替えることができます。
f:id:bluebirdofoz:20171120001042j:plain

後は焦点距離など、位置以外のパラメータを設定します。
f:id:bluebirdofoz:20171120001053j:plain

レンダリング時に、背景を透過するように設定します。
レンダーシェーディングの状態でカメラタブを開きます。
シェーディング項目のレイトレーシング下にあるアルファの値を「透過」に設定します。
f:id:bluebirdofoz:20171120001102j:plain

出力の形式が PNG かつ RGBA になっていることを確認して、「レンダー」ボタンをクリックします。
f:id:bluebirdofoz:20171120001113j:plain

レンダリング結果が表示されますので、画像 -> 画像を別名保存 でファイル出力します。
f:id:bluebirdofoz:20171120001121j:plain

出力できました。背景部分は透過色のアルファ値が設定されています。
f:id:bluebirdofoz:20171120001131j:plain

後は透過編集が可能なペイントツールを使って画像を重ね合わせます。
f:id:bluebirdofoz:20171120001141j:plain

できました。
f:id:bluebirdofoz:20171120001149j:plain
ゴーグル部分などに注目すると、きちんと写真との透過合成ができていることが分かります。

HoloToolkit-Unityのサンプルシーンを実行する(SharingWithUnetExample)

本日は hololens の技術調査枠です。
HoloToolkit-Unityのサンプルシーンを試します。
github.com

今回は SharingWithUnetExample.unity を試してみました。

Unity 2017.2 と Windows10SDK 10.0.16299 のインストールが前提となります。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com

MixedRealityToolkit-Unityのダウンロードページから以下をダウンロードします。
・HoloToolkit-Unity-v1.2017.2.0.unitypackage
f:id:bluebirdofoz:20171119221905j:plain

サンプルシーンを試すための新規プロジェクトを作成します。
f:id:bluebirdofoz:20171119221914j:plain

HoloToolkit-Unity-v1.2017.2.0.unitypackageをインポートします。
f:id:bluebirdofoz:20171119221923j:plain

Assets/HoloToolkit/SharingWithUNET/Scenes にある SharingWithUnetExample を選択します。
f:id:bluebirdofoz:20171119221931j:plain

以下の通り、サンプルシーンが開きます。
f:id:bluebirdofoz:20171119221942j:plain

ビルド設定を行います。
Mixed Reality Toolkit -> Configure -> Apply Mixed Reality Project Settings を選択します。
f:id:bluebirdofoz:20171119221950j:plain

デフォルト設定に加えて enable Sharing Service にチェックを入れて Apply をクリックします。
f:id:bluebirdofoz:20171119222000j:plain

次に権限設定を確認します。
Mixed Reality Toolkit -> Configure -> Apply UWP Capability Project Settings を選択します。
f:id:bluebirdofoz:20171119222009j:plain

enable Sharing Service の設定が成功していれば、自動で以下の権限チェックが行われています。
・Internet Client Server
・Private Network Client Server
f:id:bluebirdofoz:20171119222019j:plain

後は File -> Build Settings からビルドを実行するだけです。
f:id:bluebirdofoz:20171119222027j:plain

作成されたVisualStudioのプロジェクトから hololens へのインストールを実行します。
f:id:bluebirdofoz:20171119222036j:plain

hololens 上でアプリが起動しました。
f:id:bluebirdofoz:20171119222046j:plain
しかし、今は手元に hololens が1台しかないため、シェアリングの動作確認はまた次回です。

Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]を試す その11(メッシュの非表示)

本日は書籍「Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]」の実施枠です。

顔のモデリングの続きです。
f:id:bluebirdofoz:20171118114626j:plain

今回は耳や舌を作っていきます。耳は押し出しを利用して形作ります。
f:id:bluebirdofoz:20171118114636j:plain

ついでに眉毛と睫毛もメッシュ追加と押し出しを駆使して作成します。
f:id:bluebirdofoz:20171118114645j:plain

次に、口の中に舌を作成します。しかし、このままでは唇が邪魔で非常に作成し辛いです。
f:id:bluebirdofoz:20171118114706j:plain

ここでメッシュの非表示を利用します。まず、非表示にしたいメッシュを選択します。
f:id:bluebirdofoz:20171118114718j:plain

ショートカットの H キーを押下すると選択したメッシュが非表示になります。
f:id:bluebirdofoz:20171118114727j:plain

後は同じようにメッシュ追加を駆使して、口の中に舌のオブジェクトを作成します。
f:id:bluebirdofoz:20171118114736j:plain

マテリアルで色を割り当てるのも忘れずに。
f:id:bluebirdofoz:20171118114744j:plain

最後に、Alt + H キーを押下すると非表示が解除されます。
f:id:bluebirdofoz:20171118114751j:plain

Windows Mixed Reality for SteamVRを試す

本日は WindowsMR の技術調査枠です。
遂に WindowsMR で steamVR がプレイできるようになりました。
forest.watch.impress.co.jp
早速試してみたのでレビューします。

当然ながら steam のインストールが前提となります。
bluebirdofoz.hatenablog.com

ツールとしてsteamVRのライブラリがインストールされていることを確認します。
f:id:bluebirdofoz:20171117005617j:plain

steamストアで「Windows Mixed Reality for SteamVR」をインストールします。
f:id:bluebirdofoz:20171117005626j:plain

WindowsMRヘッドセットをPCに接続し、MixedRealityポータルが起動した状態で steamVR を起動します。
f:id:bluebirdofoz:20171117005637j:plain

ヘッドセットとコントローラが認識されました。
f:id:bluebirdofoz:20171117010530j:plain
とっても簡単。

ゲームについては steamストアで「WindowsMixedReality」タグで検索をかけると、対応アプリが表示されます。
f:id:bluebirdofoz:20171117005820j:plain

しかし試しに「WindowsMixedReality」タグのない BigScreen を起動した場合でも正常に動作しました。
f:id:bluebirdofoz:20171117005852j:plain
動作保証しているかどうかの記述であって、steamVR で動作する以上、ある程度プレイはできるようです。
(後はコントローラの対応とか?)

そして以前調査した steamVR のキャプチャ機能を試してみます。
www.vive.com

WindowsMR でのシステムボタンは左コントローラのスティックの押し込み操作になります。
スティックの押し込みとトリガーを同時押しすると……。
f:id:bluebirdofoz:20171117010107j:plain
ようやく BigScreen 内でのキャプチャができましたー。簡単そうに見えて長い道のりだった。

勿論、ストアにあるゲームだけでなく steamVR で動作する色々な外部アプリも動きます。
凄まじい勢いでアプリの幅が広がりました。steamVR 対応恐るべし。
f:id:bluebirdofoz:20171117010219j:plain

注意点としては、動作推奨スペックはゲームごとの推奨スペックになります。
全ての steamVR ゲームを快適に遊ぶ環境としては GTX 1070 のビデオカードが推奨されています。
Windows Mixed Reality Ultra 環境を満たしたPCならば、全てのゲームが快適にプレイできるという訳ではありません。

HoloLensの開発環境構築手順 Steam編

本日は環境構築のまとめ枠です。
Steam のインストール手順を記録します。
bluebirdofoz.hatenablog.com

Steam のダウンロードページは以下です。
・Steam
 http://store.steampowered.com/about/

インストールボタンをクリックして、Steam のインストーラをダウンロードします。
f:id:bluebirdofoz:20171117005200j:plain

ダウンロードした SteamSetup.exe を実行します。
インストーラが起動するので、次へ をクリックします。
f:id:bluebirdofoz:20171117005208j:plain

ライセンス契約が表示されます。チェックボックスをチェックし、次へ をクリックします。
f:id:bluebirdofoz:20171117005217j:plain

使用言語の選択が表示されます。ラジオボタンを選択し、次へ をクリックします。
f:id:bluebirdofoz:20171117005224j:plain

インストールディレクトリの選択が表示されます。
Steam のインストール先を指定し、インストールをクリックします。
f:id:bluebirdofoz:20171117005233j:plain

インストールが開始します。後は完了まで待つだけです。
f:id:bluebirdofoz:20171117005242j:plain
以上で Steam のインストールは完了です。

そのままだと steam のインストールディスクにゲームデータが保存されるため、すぐに容量が足りなくなります。
以下の手順で、STEAMライブラリフォルダを大容量の HDD に変更しておくのが良いです。

メニューから Steam -> 設定 で設定ダイアログを開き、「ダウンロード」を選択する。
「STEMライブラリフォルダ」のボタンをクリックします。
f:id:bluebirdofoz:20171117005304j:plain

「ライブラリフォルダを追加」をクリックして、ダウンロード用フォルダを指定します。
f:id:bluebirdofoz:20171117005330j:plain
これでゲームのインストール時にフォルダを選択できるようになります。

ARとVRデバイスを色々調べてまとめる(SurfaceBook2)

ARとVRデバイスを色々調べてまとめる 周辺機器枠その5 Surface Book 2 です。
bluebirdofoz.hatenablog.com
(周辺機器というかこっちが本体な気もしますがとりあえず気にしない)

スペック

本体仕様

Surface Book 2 - 256 GB / Intel Core i7 の場合

ソフトウェアWindows 10 Pro
Office Hoe & Business Premium プラス Office 365 サービス
本体サイズ312 mm x 232 mm x 23 mm (最薄部 15 mm)
重量1,642 g から (キーボードを含む)
ストレージ256 GB SSD
ディスプレイ画面: 13.5 インチ PixelSense ディスプレイ
解像度: 3000 x 2000
バッテリ駆動時間ビデオ再生は最長 17 時間可能
グラフィックスIntel HD Graphics 620 integrated GPU または Nvidia GEFORCE GTX 1050 discrete GPU
メモリ8 GB RAM 1866 Mhz LPDDR3
ワイヤレス802.11 a/b/g/n/ac
Bluetooth 4.0 省電力テクノロジー
外部接続端子フルサイズ USB 3.0 端子 x 2
Type-C Port x 1
UHS-II SDXC スロット
3.5 mm ヘッドフォン ジャック
SurfaceConnect
・スペック参照
www.microsoft.com

価格

Surface Book 2 - 256 GB / Intel Core i7262,224円 (税込)

説明

Microsoft社が販売する「Surface Book」の新モデル「Surface Book 2」です。
日本では13.5インチモデルのみ11月16日から販売されます。

GEFORCE GTX 1050 搭載モデルあり

本ブログで取り上げたのはこの点に尽きます。
Surface Book 2」は Windows Mixed Reality Ultra 環境のスペックを満たすことができます。
PVでもWindowsMRヘッドセットが登場しており、WindowsMR の利用を想定している事が分かります。
www.youtube.com
PCがよく分かっていない人から「最近流行りのVRをやりたいんだけど、どのノートPCを買ったらいい?」と聞かれたら、これを奨めるのが最適な回答です。
無論、価格を除いて。

Ultra環境利用の際はお値段26万から

最も安価な Surface Book 2 - 256 GB / Intel Core i5 モデルは GEFORCE GTX 1050 を搭載していません。
Ultra環境を利用するためには Surface Book 2 - 256 GB / Intel Core i7 モデル以上である必要があります。
お値段は26万円から。本当にUltra環境をノートPCで利用したいだけならばゲーミングPCを購入した方が安価です。
Surface Book 2 は総合環境を謳っており、グラフィック以外にも色々な機能があるためですね。

色々な使い方をするほど魅力的

最近Blenderモデリングを行っている私としてはタッチペンが使える点が魅力的に感じます。
UWPアプリ開発で、アプリの開発兼、動作確認環境、更に必要な3Dリソースを作成する環境としても、これ一台で賄えるとしたら便利そうです。

開発者やゲーマーでもデスクトップPCはもう不要?

取り上げておいて何ですが、私は遂3か月前にノートPCを新調したばかりの身ですので、購入は少し様子見です。
しかし空気清浄機ほどの大きさがあるVR環境用デスクトップPC(去年購入)に近しい性能のノートPCがゲーミングPC以外でもう販売されるとは……。
まだまだ価格の問題はありますが、開発者やゲーマーでもデスクトップPCが不要な時代が今にでもやってきそうです。

Unity2017.1以前のVRプロジェクトをUnity2017.2でビルドする

本日は Unity の技術調査枠です。
先月、Unity2017.2へのアップデートを実施しました。
これに伴い、Unity2017.1以前で利用していたVRプロジェクトをビルドすると、以下のエラーが発生するようになりました。
f:id:bluebirdofoz:20171115040749j:plain

UnityEngine.VR というネームスペースが無くなっているようです。
調べたところ、これらは UnityEngine.XR というネームスペースに変更されたらしいです。
・2017.2 VR to XR rename (scripts)
 https://forum.unity.com/threads/2017-2-vr-to-xr-rename-scripts.482045/

変更されたのはネームスペースのみで各関数のAPIに変更はないようです。
よってインクルード部を例えば以下のように変更すれば、Unity2017.1以前のVRプロジェクトがUnity2017.2で利用可能です。

#if UNITY_2017_2_OR_NEWER
using UnityEngine.XR.WSA;
#else
using UnityEngine.VR.WSA;
#endif

ほとんどのエラーはネームスペースの問題だと思うので大方のエラーは解決します。
f:id:bluebirdofoz:20171115040848j:plain
あまりに古いプロジェクトだと、旧式扱いになっている関数も多いので他にも修正は必要ですが。