MRが楽しい

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

HoloLens用のオリジナルモデルを作成する その27(UV展開のためのシーム付け)

本日はホロ恋子モデルの作成枠です。
UV展開のためのシーム付けを行いました。
f:id:bluebirdofoz:20180616214310j:plain

早速ですが、一つしくじりポイントです。
この作業からUV展開までは衣装パターンを複製する前に実施するべきでした。
bluebirdofoz.hatenablog.com

シーム付けやUV展開はオブジェクトを複製しても保持されます。
手や足など共通部分は素体モデルある程度形を整えてから複製すればそのまま流用できます。

今回は先に衣装パターンを作成していたため、水着モデルと別々にシーム付けの二度手間をかけることになりました。
f:id:bluebirdofoz:20180616214329j:plain

シーム付けの作業方法は以前、書籍課題で実施した通りです。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com

作業中の新しい技術要素としては、今回は「クリース」、「シャープ」など様々な属性値を辺に設定していたため、プロパティシェルフの「メッシュ表示」を利用して、シーム付け作業中は「シーム」のみを表示するなどを行いました。
f:id:bluebirdofoz:20180616214400j:plain

また、シーム付けはその特性上、シーム付けを行った箇所はテクスチャの変化をシャープにできるため、手の部分については手袋のラインでシーム付けを行うなどの工夫を行いました。
f:id:bluebirdofoz:20180616214410j:plain

RS4でDevicePortalのpreviewの背景が緑色になる

本日はRS4の調査枠です。
RS4で DevicePortal を確認していると、preview表示にて背景部分が緑一色になる事象を確認しました。
f:id:bluebirdofoz:20180615015405j:plain

Cameraのチェック項目を変更したりしましたが、元に戻りません。
そこでよくよく見ていて気付いたのですが、緑一色に見える背景にボンヤリと手の形が浮かんでいました。

どうも赤外線センサの入力のように見えます。
確認してみると、調査用に使った Research Mode がオンのままでした。
f:id:bluebirdofoz:20180615015436j:plain

試しに Research Mode を解除し、再起動を行ってから DevicePortal を再確認すると。。
f:id:bluebirdofoz:20180615015447j:plain
カメラの背景が描写される状態に戻りました。
Research Mode は不要になったら戻すようにしましょう。

過去プロジェクトのMRTKのバージョンを更新する

本日はMRTKの技術調査枠です。
前回、過去バージョンのプロジェクトで発生する不具合を Unity のバージョンアップで解消しました。
bluebirdofoz.hatenablog.com

これに合わせて、該当プロジェクトで利用していたMRTKについても新しいものに差し替えることにしました。
2017.4 まであげるのは慎重になった方が良さそう?なので、2017.2 の最新版である 2017.2.1.4 Patch Release を利用することにします。
qiita.com

以下のページから 2017.2.1.4 Patch Release のパッケージファイルを取得します。
github.com

MRTK の差し替えを行いたいプロジェクトを開きます。
f:id:bluebirdofoz:20180614032613j:plain

既にインストール済みの Assets/HoloToolkit ディレクトリを削除します。
f:id:bluebirdofoz:20180614032625j:plain

すると HoloToolKit から利用していたゲームオブジェクトが赤色に変化します。
f:id:bluebirdofoz:20180614032632j:plain

そのまま新しい MRTK のパッケージを実行し、最新の HoloToolkit ディレクトリをインポートします。
f:id:bluebirdofoz:20180614032640j:plain

インポートが完了したらプロジェクトを再読み込みします。
ゲームオブジェクトの参照が元に戻っていたら差し替え完了です。
f:id:bluebirdofoz:20180614032647j:plain

当然、クラスやインタフェースの変更等もあるので、齟齬が発生した個所はエラーになります。
これについては個々に確認して適切な修正を行う必要があります。

過去バージョンのUnityでビルドしたアプリをRS4環境で実行するとエラーが発生する

本日はRS4の技術調査枠です。
過去バージョンのUnityでビルドしたアプリをRS4環境で実行したとき、デバッグメッセージを見ると見慣れないエラーが発生していました。
f:id:bluebirdofoz:20180613091412j:plain

エラーメッセージを書き出すと以下の通り。

Failed to get spatial interaction controller
- touchpad, thumbstick, and vendor data will be unavailable to the application for InteractionController!
Error code: '0x00000000'.

調べてみると、以下に同様の報告がありました。
github.com

解決方法は Unity 2017.4 以降のバージョンに移行する事とのこと。
このアプリは古いプロジェクトで、調べてみると Unity 2017.2.0f3 で作成していました。

問題を解決するため、アーカイブから Unity 2017.4.3f1 を取得しました。
unity3d.com
f:id:bluebirdofoz:20180613091502j:plain

2017.4.3f1 で再ビルドを行うとエラーが表示されなくなりました。RS4移行時には古いプロジェクトのメンテナンスをした方が良いですね。
f:id:bluebirdofoz:20180613091635j:plain

BlenderでFreeStyleを使って輪郭線を入れる

本日はBlenderの技術調査枠です。
BlenderでFreeStyleを使って輪郭線を入れる方法についてまとめます。
f:id:bluebirdofoz:20180612034657j:plain

前回、ホロ恋子モデルのトゥーンマテリアル設定を行いました。
見た目は綺麗になりましたが、ライティングによる色合いの変化が希薄なため、視点によっては同じマテリアル同士のメッシュが同色で溶けあい、奥行きが分からなくなってしまいます。
f:id:bluebirdofoz:20180612034928j:plain

ホロ恋子モデリングの作業と目的からは少し逸れてしまいますが、折角なのでBlenderのFreeStyleという機能を使って輪郭線を入れたいと思います。
FreeSytleを有効にするにはレンダータブから、FreeStyleパネルを有効化します。
これだけで、レンダリングを行った際に輪郭線が表示されるようになります。
f:id:bluebirdofoz:20180612034715j:plain

しかしデフォルトでは奥行のみに輪郭線を付けるため、服などメッシュが繋がった箇所に輪郭線が表示されません。
レンダーレイヤータブを開くと、FreeSyleのパネルが追加されているので、ここで輪郭線の表示箇所やスタイルについて設定可能です。
例えば、「エッジタイプ」の「マテリアル」のチェックを追加すると、服の輪郭も線が引かれるようになります。
f:id:bluebirdofoz:20180612034723j:plain
首部分にも輪郭線が引かれているのは、顔と体で別の肌マテリアルを使っているからです。
本当に指定箇所のみに輪郭を引きたい場合は、辺マークという機能を利用することで実現可能です。
今回はマテリアルを統合して回避します。

各設定項目の効果は以下のサイトに詳細にまとめられています。
blender-cg.net
blender-cg.net
blender-cg.net
blender-cg.net
blender-cg.net
blender-cg.net

ラインの幅はレンダータブのFreeStyleパネルでも変更可能です。
f:id:bluebirdofoz:20180612034732j:plain
レンダーレイヤータブ側のスタイルでまとめてやった方が良いかもしれませんが。

HoloLens用のオリジナルモデルを作成する その27(マテリアルの作成)

本日はホロ恋子モデルの作成枠です。
トゥーンマテリアルの設定を行いました。
f:id:bluebirdofoz:20180611061320j:plain

作成手順としては概ね書籍課題で実施したマテリアルと違いありません。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com

今回は「RGBカーブ」ノードと「カラーランプ」ノードをそれぞれ以下のように設定して、グラデーションのかかったトゥーンレンダリングを目指してみました。
・「RGBカーブ」ノード
 - 左端頂点
   X = 0.000, Y = 0.500
 - 右端頂点
   X = 1.000, Y = 0.800
f:id:bluebirdofoz:20180611061405j:plain

「カラーランプ」ノード
・位置:0.000
  R:0.300
  G:0.300
  B:0.300
・位置:0.400
  R:0.500
  G:0.500
  B:0.500
・位置:0.450
  R:0.100
  G:0.100
  B:0.100
・位置:0.900
  R:0.000
  G:0.000
  B:0.000
f:id:bluebirdofoz:20180611061417j:plain

単純なトゥーンマテリアルとの違いが実感できるかというと、微妙なところ。
f:id:bluebirdofoz:20180611061425j:plain
テクスチャで微調整した方が良いかもしれません。手間削減の観点で言うと、マテリアルで完結できればそれが最良なのですが。

HoloLens用のオリジナルモデルを作成する その26(ウェイトペイント後の衣装パターン作成)

本日はホロ恋子モデルの作成枠です。
f:id:bluebirdofoz:20180610065918j:plain
以前、書式課題のモデルを作成した際はモデリング完了直後に衣装パターンを作成していました。
bluebirdofoz.hatenablog.com

しかし実際にはオブジェクトのコピー時にウェイトペイント設定もコピーされるため、ウェイトペイント完了後に衣装パターンを作成するのが最も効率的なフローです。
書籍課題では作業工程の説明の分かりやすさのため、先に全てのモデリングが実施されていました。
今回はこの効率的なフローで作業を実施するため、この時点で衣装を分けます。

現在作成している水着モデルを選択し、複製(Shit+Dキー)を行います。
複製した衣装モデルは作業しやすいよう、それぞれレイヤー移動(Mキー)を行っておきます。
f:id:bluebirdofoz:20180610065941j:plain

衣装を着たモデルを作成しますが、その前に、ウェイト付けを完了した時点で三角ポリゴン数は 4,850 でした。
トポロジを微調整したことでよりポリゴン数が変わっていますが、5,000 以下のポリゴン数をキープできました。

ここで衣装モデルについても 5,000 ポリゴン以下に抑えてみたい欲求が出てきました。
よって急遽、Yシャツと短パンの軽装モデルを作成する事にしました。
Yシャツの形状はスクール水着で代用可能なので、三面図を上下で別々に参考する形で下半身の短パンのみモデリングします。
f:id:bluebirdofoz:20180610065954j:plain

なるべく既存のウェイトを崩さないようトポロジを少し修正し、押し出し(Eキー)+法線方向拡大(Alt+Sキー)で短パン部分を作成します。
f:id:bluebirdofoz:20180610070005j:plain

モデリングが完了したものが以下です。
f:id:bluebirdofoz:20180610070016j:plain

残念ながら全体の三角ポリゴン数は 5,230 と 5,000 を上回ってしまいました。
しかしHMDバイスを除いたキャラクタ単体では 4,994 と 5,000 以下で抑えることができました。

もう少し短パンモデルを簡略化させれば、できなくもなさそうですが……あくまで 5,000 についてはチャレンジ値だったのでメッシュの拘りを優先させました。
個人的拘りポイントは脚を動かすと、ズボンの裾と足は別々に追従する点です。
f:id:bluebirdofoz:20180610070038j:plain

追従の重みが異なるので、逆方向に関節が曲がると、ポリゴンが突き抜ける問題が発生しますが、常識的な稼働の範囲であればギリギリ突き抜けないよう調整を実施しています。
f:id:bluebirdofoz:20180610070046j:plain