2018年4月17日

VR向け3Dアバター新フォーマット「VRM」発表、ドキュメントひととおり読んでみた話

スクリーンショット 2018-04-17 10.38.14.png

dwangoが、VR向け3Dアバター新フォーマットの「VRM」を発表しました。
ドキュメントを一通り読んでUnityでセットアップして手元のモデルをニコニ立体へのアップロードまで試してみたので、つらつらとその内容、読み取ったことを述べたいと思います。

VRM - dwango on GitHub
https://dwango.github.io/vrm/

続きを読む "VR向け3Dアバター新フォーマット「VRM」発表、ドキュメントひととおり読んでみた話"

2018年4月16日

技術書典4 れいぞうこのドア く17にて「VRコンテンツのつくりかた3 Hello, VTuber World!」という本を頒布します。 #技術書典 #VTuber

vr3-hyousi.png vr3-urahyousi.png

今週末の2018/4/22(日)に、秋葉原UDX アキバ・スクエアで開催される技術書典4にて、「VRコンテンツのつくりかた3 Hello, VTuber World!」という本を頒布します。
1冊500円です。本文50ページぐらいです。

サークル名は「れいぞうこのドア」、スペースは「く17」です。
tbf04-ku17.png

目次は以下の通りで、前半はバーチャルYouTuberに使われている技術や、関連するアプリ・サービスの話です。
後半は実際にVTuberシステムを作ってみて、すでにGitHubで一式を公開しているYVTuberの話です。

vr3-mokuji-01.png
vr3-mokuji-02.png

以下、適当に内容を抜粋したものです。

vr3-03.png
vr3-04.png
vr3-05.png
vr3-06.png
vr3-07.png

今回も改稿タイミングに、PDFとRe:VIEWのファイル一式をGitHubで公開予定です。ご了承ねがいます。

VRコンテンツのつくりかた3
https://github.com/youten/howto-create-vr-contents3

それでは、日曜日に皆さまにお会いできるのを楽しみにしています!

2018年4月 3日

バーチャルYouTuberの略称「VTuber」はいつ生まれたのか調べてみた【"Vチューバー"表記は2017/10/9、複数発祥の気配】

Twitter, Google Trend, 2ch/5chログ, ニコニコ大百科, ピクシブ百科辞典, PANORA, Mogura VRで調べてみました。
(2018/04/05追記・修正)VTuberとしてはさはなちゃんが使い始めたのが12/22あたり、「Vチューバー」表記が先との情報をいただいたので修正しました。


○Twitter
「Vチューバー」で2017/10/9、「Vtuber」で2017/12/21の模様です。略称としてはシンプルなため、このあたりに同時発祥したのではないかと思われます。


以下、他思いつくままに調べてみたメモです。

続きを読む "バーチャルYouTuberの略称「VTuber」はいつ生まれたのか調べてみた【"Vチューバー"表記は2017/10/9、複数発祥の気配】"

2018年3月23日

【YouTube】VR180のメタデータを非公式ツールで付与してみたけど良さそう

suzuyakai2.jpg


※VR180はブラウザで再生しても固定アングルになってしまうため、各アプリでVRモードにて閲覧願います:)

YouTubeのVR180フォーマットですが、ちらほらYouTubeにアップロードされてる方がいらっしゃったので、どういうことかと調べてみたところcry2氏の【VR 180 MMD】水着デフォ子_PiNK CAT【Unity】の概要欄に非公式metadata付与pythonスクリプトが公開されているという情報を発見しました。

詳しくはリポジトリを見れば分かるのですが、Google提唱のSpherical Video V2フォーマットにVR180に該当するのが含まれてるようで、本リポジトリのツールをベースにVR180に対応したforkを使ったらさっくりいけました、という話です。

以下、MacでAnaconda経由での作業メモです。

$ git clone https://github.com/Vargol/spatial-media
$ cd spatial-media

$ python --version
Python 3.5.2 :: Anaconda 4.2.0 (x86_64)
; python 3ではどうもうまくいかなかったので、anacondaでpython2.7環境を作成
$ conda create --name py27 python=2.7 anaconda
$ source activate py27
$ python --version
Python 2.7.13 :: Anaconda 4.4.0 (x86_64)

$ python spatialmedia -i -s left-right -m equirectangular suzuyakai2.mp4 suzuyakai2_injected.mp4

手元にあったVR180ソース、side-by-sideな動画がちょっと解像度が低め(3200x1600)のものだけだったので今回はこれをアップロードしてみたのですが、YouTubeのStereo-Equiが8192x8192までいけるので、そこから換算して8192x4096とか、5120x2560あたりが良いのかな、と思います。

2018年3月 3日

「プレスで参加したいと言ったらいつのまにか運営手伝いをしてたのじゃー」第1回VTuberハッカソンの話

関係各位みなさま、「第1回 VTuberハッカソン」、大変おつかれさまでした。エントリタイトルで概ね全てなのですが、2日間、寝袋持参でがっつり参加してきたのですが、立場が謎なことになってしまったので、言い訳という名の経緯や、思うことを記載しておきたいと思います。

続きを読む "「プレスで参加したいと言ったらいつのまにか運営手伝いをしてたのじゃー」第1回VTuberハッカソンの話"

2018年1月15日

2017年に楽しんだコンテンツ紹介 VR編

あんまりやってないのでVR関連ガジェットも含めることにします、中身が薄くてすいません。
オススメ度を★から★★★で示そうと思って途中まで書いたのですが、意外と数が多くだらだらと間延びしてしまいそうだったので、オススメ度が★★以上のもののみ残っています。

◯ガジェット・ハード編

・GearVRコントローラ(オススメ度:★★)
Daydream Viewに追従する形で、Gear VRにもコントローラが来ました。GalaxyをS6を最後にそれ以降買っていないこともあり、充電しながらのとりまわしの観点でDaydream派に鞍替えしてしまったのであまり長くは触っていません。

使い勝手としてはDaydream Viewのと同等で、登場以降は標準装備のようになったのでどちらも同じ感覚で使えると思われます。登場時点ではアームモデルのエミュレーションによる腕の姿勢の追従度がDaydreamに比較して若干悪く、腕を模すというよりは体の正面でコントローラを制御してやる度が高かったのですが、最近はどうでしょうか?

・Daydream View(第二世代)(オススメ度:★★★)
やっと日本でも正式に発売され、コントローラの技適()問題がクリアされました。とくに特殊加工のフレネルレンズのできがよく、第一世代と比較してきっちりと視野角が広がって他HMDと同等になっているのが素晴らしいです。

12,000円はできれば9,800円であってほしかったのですが、対応Androidデバイスをもっているのであれば大変オススメです。
ただし、S8+Gear VR環境を持っている人がわざわざ鞍替えするほどのプラットフォームでは現時点ではないように思えます。


◯施設編

VR PARK TOKYO(オススメ度:★★)
渋谷店に4月頭に行ってきました。サークル オブ セイバーズとソロモン・カーペット(のメカ)が目的でしたが、野球(対戦!ハチャメチャスタジアムVR)と360度シューティング(ようこそ・パニック・マンションへ)もフツーに面白く、時間めいっぱい楽しめました。

伝説のハッピーおしゃれタイムが稼働したのでもう一度行ってみたいような、DCEXPOでやったから満足している点もあるような・・・(いろいろ変わってそうではありますが)

VR ZONE SHINJUKU(オススメ度:★★★)
まぁ説明はもういいですよね。物理的に制限が無いのであればぜひ一度は行っとけ、のアミューズメントVRの雄、VR ZONEです。マリカー・釣り・ハネチャリがやっぱりよかったです。


◯コンテンツ編

・PSVR:Joshua Bell VR Experience(オススメ度:★★★)
多視点撮影と3Dモデル化とビルボード(ハリボテ)表現を高い技術レベルで組み合わせたポジトラがゴリゴリ効く映像コンテンツです。最高。あーもう映像コンテンツはやくこれで全部つくってください。

・PSVR:Littlstar VR Cinema(オススメ度:★★)
ストリーミング再生だとコンテンツの増えて来たYouTubeに一歩劣ってしまうのですが、ある時USBメモリ・SDカード上の外部コンテンツの再生に対応して神アプリになりました。手元に非DRMなステレオEquiの動画資産がそれなりにある方にはオススメです。

とは言うもののPSVRとしての利点はEquiを投影した天球内での擬似ポジトラぐらいで、解像度比較もあって「Daydreamでいいや、とりまわしちょっと面倒だし」という位置づけに落ち着いてしまいました。

・PSVR:V!勇者のくせになまいきだR(オススメ度:★★)
箱庭3D見下ろし型タワーディフェンスとしての出来はよく、小清水亜美のムスメちゃんがかわいいのですがそれ以上ではない感じです。

ゲーム部分がゴリ押しじゃない感じであればよかったのですが、結局エレメント系が最強で、「直接有効なところに吸い込んで運ぶ」操作をなるべくすばやくやるだけの訓練ゲームでしかないのが惜しかったので★★にとどめています。

・Daydream:YouTube(オススメ度:★★★)
結局のところ現時点でDaydreamのキラーアプリはYouTubeだと思っています。
Cardboard時代からYouTubeの閲覧はできたわけですが、2017年、この体験は3つの観点で進化しました。

1. Daydreamコントローラでのポインタ操作、ソフトウェアキーボードIMEによるキーワード入力に対応した。
2. YouTubeの「360度」「3D(ステレオ)」絞り込みがまともに機能するようになった
3. やっと360度ステレオなVR MMD動画が増えてきた

(2017年の話というより2016年から投稿されていますが)BONBONBENZAKABA氏の動画他を見て幸せになりましょう。

・Gear VR:Innocent Forest(オススメ度:★★)
VR HMDでも文字が問題なく読み進められるぞおお、というInnocent Forestです。
★★が3つに出来ないのはまだ2ndを読み切ってないのと、僕こういうはっきりしない系の話(あと何話続くのかわかりやすくないの)あんまり好きじゃないんですごめんなさい・・・orz

紙の書籍に対して、ゲーム・ディスプレイインタフェースによる「ビジュアルノベル」が弟切草によって定義されたように、たぶんいろいろな形の「VRを利用したノベル」が多数でてきていんじゃないですかね、雨後のタケノコのようにニョキニョキしてくるのを待っているのですがこなーい。いやコストはわかるのですがこなーい。嗚呼。

・SteamVR:Project LUX(オススメ度:★★)
VR長尺アニメとしてまだ現時点でも唯一でしょうか?
シェーダなのかライティングなのか、妙なところが明るいのは気になるのですが、シナリオとしてはよくありそうな感じによくなさそうな+αでよかったです。
最後の選択肢はトゥルーを最初に選んでしまうとちょっともったいないので、強制バッドエンド後にヒントが出てくるよくあるやつとか入れたらよかったかなとか思っています。

・SteamVR:ぎゃるがんVR(オススメ度:★★★)
エロじゃなくてエッチでフェチなラインのゲームとして最高峰です。カスメはお人形遊びとして本質的すぎて、VRカノジョはパーティーゲームの中、ぎゃるがんVRは良質なVRギャルゲーです。

このゲームの素敵なところは「コントローラに慣れてさえいればまず死ぬことがない低難易度バカゲー」という入り口の遊び方と、全キャラのパンツを撮影するという実績解除にチャレンジしようとした途端「当初の目的を完全に無視してとにかくパンツが撮影可能なアングルに手を伸ばすシュールなフェチゲー」に変貌するのが最高です。
あとどこかで見た気がしますが踏みにくるモードはもっとイヤそうに踏んで欲しかったと思います。

・SteamVR:Hop Step Sing! 気ままに☆サマーバケーション(オススメ度:★★)
単純に新しい曲の方がVRとして良いです。曲とキャラがかわいいのは1曲目からあまり変わっていないのですが、物語のわかりやすさが気ままにサマーバケーションがダントツなので。
ただ、「おっさんがこんな仲良くからまれるはずないだろ、そういう有料裏サロンのVRですか?」みたいな後ろめたい感じになるのでできれば学生とか若いうちにやってみたかったですね。

・Cardboard:オルタナティブガールズ(オススメ度:★★)
VR対応モードのあるスマホゲーだと今でも先頭を突っ走ってるのではないでしょうか。ちゃんとspatialに対応したライブモードがたいへんオススメです。
あと個人的に「エポックメイキングだけど一種のクソ状態の山を築き上げることになったCardboard」に対する妄執をばっさりと斬ってくれたので大変ありがたい気持ちになったコンテンツでもあります。

そのあたり私情を込めまくったエントリをUniteのレポートで書いたのでそのへんについてはそちらを参照願います:)
すべてはVRで美少女をかわいく魅せるために 「オルタナティブガールズ」の技法と情熱【Unite】

ラブプラスEVERYには最低でもオルガル級、できればDaydream/GearVR対応等+αでがっつりと超えていってほしいなと思っています。

2017年10月23日

技術書典3 サークル参加レポ #技術書典

tbf3-myspace.jpg

技術書典3、おつかれさまでした。当サークルに遊びにきていただいた方、書籍を手にとっていただいた方、スタッフ他関係者のみなさま、ありがとうございました。

サークル参加して、「VRコンテンツのつくりかた2」というDaydream本を頒布してきました。
頒布した本の内容についてはは先日のエントリを参照願います。

○当日の話

以下、つらつらと。

・B5オフセット表紙フルカラーのP.44 新刊1種、旧刊なし、1冊500円で頒布。
・持ち込み113 - 提出見本1 - 展示見本1 - 残り25 = 頒布86(のはず)
・前回に引き続き、残りのうち10部(+1部見本)をCOMIC ZINさんの委託に預けました。
・かんたん後払いは10人と少し、アプリの使い勝手はよく、特にシェアコードのEmojiは良いなと思いました。
・BOBOVR Z5とDaydreamをスペース埋めに展示、Daydreamの紹介の意味で10人程度の方に体験してもらいました。
・かんたん後払いも効果もあるのか、1000円札支払いと500円玉支払いが見事に釣り合い、手持ちの500円玉数にほぼ変化なし。
・今回は100円玉ケースも用意したのでサイフがカタカタジャラジャラすることなく、良い感じでした。

台風という悪天候でしたが、島中の自スペースは何も不自由なく。寒いかと思いきや人がいっぱいで湿度が高く暑いぐらいで。
途中から冷房が効いてきて涼しいのとちょっと蒸してきたのをシーソーしつつ、全体的には1日快適にすごすことができました。

前回ははっきりと初心者ターゲットの本だったのですが、今回は1冊まるまるDaydreamという、特化したプラットフォームの話です。
最後まで見本誌をじっくり確認された上で「iPhoneは対応してませんか?」「残念ながらAndroid限定です」みたいなやりとりも数度ありましたが、Daydreamの知名度をあげる意味では目的は達成できたかなと思っています。


○制作の話

tbf3-100.jpg

もう少し時間をかけるつもりだったんですが、9月に風邪を引いたりお腹を壊したりみたいなのもあって、時間があった割にはちっとも計画的にできず、結果前回と同じぐらいの慌てながらの締め切り駆動執筆になってしまいました。

制作方法は、技術書典2の前回と同じ方式で、Re:VIEW+日光企画さんのWeb入稿で。2回目ということもあり、前回以上にスピーディで簡潔なやりとりでさっくりと本ができました。


○原価とか残りの話

今回は44ページ100部発注で、印刷費が約44000円+サークル参加費が7000円の計51000円なので、100部500円設定は実は単純計算では赤字の計画です。電子版を用意するのではなく、GitHubにRe:VIEW一式を公開しています。

これは、基本的に僕の本は「利益を出す商業本」「対価を得る同人誌」の流れではなく、「SNSやblogやGitHubに好きなことを置いてくる」スタイルの延長戦として、アナログのおまけグッズという感覚で作っています。

そのため買う側の観点で、「レアテーマの話がまとまって本の形になってるなら払ってもいいかな」感覚で価格を決めていますし、売る側の観点では「普段しないオフセ本頒布するという面白い体験がそれなりの原価で楽しめるならいいかな」感覚で価格を決めています。

あまり考えてないともいいます。

standaloneの続報まだかなー。

2017年10月20日

スマホVRはポジトラの白昼夢を見るのか?

Mobile inside-out VR Tracking, now readily available on your phone with Unity - Unity Blog
https://blogs.unity3d.com/jp/2017/10/18/mobile-inside-out-vr-tracking-now-readily-available-on-your-phone-with-unity/

Mobile inside-out VR TrackingをSamsung Galaxy S8でDaydreamGear VR+ARCoreにて実現する話がUnity Blogに掲載されました。
ASUS ZenFoneAR+Tangoでも実現した話がついでに掲載されています。

特に後者について、target23だとDaydreamが動かず、target24だとTangoが動かなかった僕の確認結果が突破されていて謎だったので、追試をしてみました。


〇プロジェクト一式よこせ系

Tangoはもう公開されてない古いSDKが必要だったりウニョいのでアレですが全部込みでGitHubに置きました。apkもあります。

Tango + Daydream
https://github.com/youten/TangoDream
ARCore + Daydream
https://github.com/youten/ARCoreDream


〇Daydream+ARCore

・Pixel XL(Android8.0)
・Unity2017.2.0f3を使用
・arcore-unity-sdk-preview.unitypackageをインポート
・Player Settingsまわりはblogにも掲載されている他、Unityのネイティブ対応に任せたGear VR/DaydreamとARCoreの公開ドキュメントの通りのため省略。

ここから話がはしょられ気味、よしなに補完しつつ完成させる。

・ARCore DeviceプレハブをHierarchyに配置、Tracking TypeはPosition onlyに設定。配下のFirst Person Cameraは使わないので無効にする。
・AR Session ConfigのDefaultSessionConfigを開き、Enable Plane FindingとEnable Pointcloudのチェックを外す
・GoogleARCore/HelloExample/Scripts/HelloARController.csをベースにblogの内容に従ってゴリゴリと書き換える
・VRCameraParent(Empty)>Camera(Camera)>CanvasCamPose(Empty)>CanvasとCamPoseText(Text)という階層構造で、ARCoreでposition移動させる対象の下に標準カメラを、さらにその下にデバッグ表示TextをWorld Spaceでぶら下げる。

ARCoreは起動・初期化時にカメラが原点になるらしく、適当に起動すると地面に埋まります。手元に持った状態で起動する方が楽なのでCameraのTransoform Y=1.2を設定。
このあたりはPlain Findingを有効にして地面認識を待ってずらす処理などが必要そう。

動かしてみた感想はそれなりに動いているが、Tangoと比較してプルプル気味、座標が飛びやすい。
Tangoと違ってArea Learningによる復帰ができないので実際に使おうとすると、人をうまく狙ったように動かす起動前チュートリアル設計が重要そうです。


〇Daydream+Tango


・ZenFoneAR(Android7.0)
・Unity5.6.3p4を使用
・Player Settings > Other Settings > Virtual Reality Supportedを有効に、Virtual Reality SDKsにDaydreamを追加
・Minimum API LevelをAndroid 7.0 'Nougat' (API level 24)に設定
・blogに従って、最新のTango SDK Ikariotikosを避けるも、TangoSDK_Biyelgee_Unity5.unitypackageは古すぎて手元にない。2つ前のTangoSDK_Gankino_Unity5.unitypackageが見つかったのでそちらを利用、Deprecatedフォルダ内のTango Delta Camera(Deprecated)を利用して成功。
・AndroidManifest.xmlのマージエラーは直下のmin17をmin19に変更することで回避。

結論として、Unityの設定としてAndroidのSDKバージョンがmin24だとしても、Pluginフォルダ内に含まれるAndroidManifest.xmlの方が優先され、min19target23としてDaydream(Android 7.0が要件)とTango(target23が制限)は同居できました。
Google VR SDKを含めるとtarget24になってしまうので、Daydream Controller APIが使えなくなるはず(回避可能?)。
Daydreamコントローラを使わないのであればペアリングまわりの操作は不要なので、デベロッパー設定でVR Entry Screenは外しておくとちょっと便利です。


〇さいごに

はー技術書典3前に色々すっきりしてよかった。

2017年10月18日

技術書典3 れいぞうこのドア か34にて「VRコンテンツのつくりかた2」を頒布します #技術書典

今週末の2017/10/22(日)に、秋葉原UDX アキバ・スクエアで開催される技術書典3にて、「VRコンテンツのつくりかた2」という本を頒布します。
1冊500円です。本文44ページです。
サークル名は「れいぞうこのドア」、スペースは「か34」です。

vr2-hyousi.png vr2-urabyousi.png

前回の技術書典2でははしっこでしたが、今回は島中です。

ka34-map.png

目次他、ページサンプルは以下の通りです。

2.png
3.png
4.png
5.png

・対象読者と方針
VRそのものとアプリ開発(VR/Android/Unity)に下知識または興味があって、日本発売が計画されている今のタイミングでのDaydreamについて幅広く知りたい人向けの本(のつもり)です。
コードは一切載っていませんし、開発ノウハウがゴリゴリ書かれたものではなく、読み物です。

・2章 Daydreamを知る
Daydreamの概要にはじまり、歴史的経緯やAndroidプラットフォームとしての要件(CDD)、Daydrean standaloneなどについて書いています。Oculus GOとかARとポジトラまわりの話のポエムも掲載しています。

・3章 Daydreamを使う
Daydreamの初期セットアップに始まり、ホーム画面の最低限の機能やアプリを紹介した後、おもむろにデベロッパー向けデバッグ設定を振り回してDaydream ViewなしでどうにかDaydreamを試す話に移ります。ついでにDaydream互換機であるBOBOVR Z5 Daydream Editionについても取り上げています。

・4章 UnityでDaydreamアプリ開発の入口を覗く
Daydreamも発表から1年半経って、Google VR SDK、略称GVR SDKがだんだん肥大化してきて、公式サイトもカオスな雰囲気になっているところに、入口からどのように覗けばいいのか、というツールやサンプルの紹介をしています。Hello WorldとしてGVRDemoを、GVR SDK for Unity v1.100.1で使い勝手が格段に進化したInstant Preview、こっそりサンプルが増えていたDaydream Elements、メディア再生アプリサンプルとしてすでに十分にできあがっているDaydream Media App Templateなどと、デザインガイドラインについての紹介を含んでいます。また、モバイル対応6DoFモーショントラッキングシステムであるNOLOについても書きました。

前回と同様に、今回もPDFとRe:VIEWのファイル一式をGitHubで公開予定です。ご了承ねがいます。

VRコンテンツのつくりかた2
https://github.com/youten/howto-create-vr-contents2

それでは、日曜日に皆さまにお会いできるのを楽しみにしています!

2017年5月28日

LT募集があったので #ABC2017s に行ってきた

abc2017s-leaflet.jpg

LTにホイホイ申し込んでしまったのでAndroid Bazaar and Conferenceに行ってきました。

日本Androidの会 Android Bazaar and Conference #ABC2017s
http://abc.android-group.jp/2017s/

続きを読む "LT募集があったので #ABC2017s に行ってきた"

2017年5月18日

AVRShow 2017 in Tokyo #AVRS レポ

2017.05.03に開催されたAVRShow 2017 in Tokyoのいまさらのレポです。レポというよりメモですが。

AVRShow 2017 in Tokyo
http://avrs.jp/

続きを読む "AVRShow 2017 in Tokyo #AVRS レポ"

2017年4月27日

鈴谷かわいいよ鈴谷

suzuyakai2.jpg

鈴谷改二が「高3になりました」というツイートを見た気がしますが天才だと思いましたね。

つみ鈴谷改二がかわいすぎたのでセコセコと動作確認用にSBSステレオ動画を出力しました。
suzuyakai2.mp4(SBSステレオ3200x1600 16Mbps、374MB)

モデル:【MMD艦これ】鈴谷改二のメーベル【モデル配布】
http://www.nicovideo.jp/watch/sm31090397
モーション:【MikuMikuDance】 おねがいダーリン 【MMDモーショントレース】
http://www.nicovideo.jp/watch/sm29131518
音源:おねがいダーリン 歌ってみたver.柊 優花
http://www.nicovideo.jp/watch/sm27864719

Gear VRユーザはSamsung VR(旧Milk VR)で。国限定が今でもかかっているかわかりませんが、かかっていたらVPNアプリで超えられます。Oculus Videoでもファイル名やメタファイルをきちんとすれば見られるかもしれません。
DaydreamユーザはSKYBOX VR Playerで。
CardboardユーザはFreeVRPlayer(Android版)で。iOS版もあります。
PSVRユーザはLittlStarのSideloadでみられるようになりました。

ひと昔前の「ステレオのTop-Bottom EquirectangularをYouTubeにアップロードしちゃえ」が唯一の選択肢の時代から、それなりに選択肢が増えてきました。
良いことですね。
あとは前方180度でいいので数万円で4Kが撮れるカメラを誰か市販してください...っ!

2017年4月11日

「VRエンジニア養成読本」でUnity+Google VR SDKでCardboard向けにVRアプリをつくる初心者向けの記事を書きました

本日4/11が発売日ということで、少し補足情報を述べておきます。

◯書籍全体について

vr-yousei-mokuji.jpg

技術評論社の公式ページには概要と目次が両方掲載されていますが、タイトルはVRでばっさり、表紙からVRなのにHoloLensとか、概要もゆるふわで掴みづらいので、目次を確認してください。

・「巻頭特集」として、既存VR/MRデバイスと、近い将来リリースされるハードなどについて、@yamashin0429さんが書いています。
・「特集1」として、VRアプリ開発初心者向けに、「Cardboard向けに壁打ちゲームアプリの作り方」・「Oculus向けにユニティちゃんをよびだすアプリの作り方」・「とくにターゲットは限定しないQuaternion、角度と頭・視線の話」をそれぞれ私@youten_redo@Somniumさん、@oukaichimonさんが書いています。
・「特集2」はもう少し実践的な話として、「プロ生ちゃんとロッカーに閉じ込められる「至近距離ガールVR」のデザイン」について@kohki_nakajiさんと@mementomori72さんが、「いまいる場所の把握や方向をわかりやすくする空間設計」について@tsuhirさんが書いています。
・「一般記事」は1つだけしかなくてもう特集とか一般とかの分類がよくわかりませんが、360度動画・VR動画の特徴について初心者向けの話を@kohki_nakajiさんが書いています。
・「特集3」はHoloLensそのものの話と開発入門(むしろ開発環境紹介)を@yuujiiさんが書いています。
・「特集4」としてVRに関連した3D技術の応用事例として2記事、両人の持ちネタである「@Somniumさんのボクセル変換と3D出力の話」と「@n_ryotaさんのUnityでProcessingっぽいことができるようしたUnicessingを使ったVRなジェネラティブアートの話」が書かれています。

◯私が書いた「特集1 Unityで作る 入門! VRアプリ開発」内、「第1章 Google CardboardとAndroidでスタート はじめてのVRアプリ」について

macOS/Windows対応でゼロからJava(JDK)・Androidのビルドツール・Unity(5.5最新を想定)をインストールして、Google VR SDKをセットアップして試したのち、Cardboard向けに壁打ちゲームをスクリプト込みで作成する手順を詰め込みました。
Daydreamの話を書こうと思っていたところ、「マニアックなものや上級者向けのコンテンツばかりではなく、初心者向けのものも入れ込みたい」という要望を受けて書いたもののため、VRアプリ開発の初心者向けに(おそらく)なっています。

・Unity 5.6対応の話

記事はUnity5.5で書いたのですが、最新のUnity5.6ではUnityのVRへのネイティブ対応の影響でそのままでは動作しません。以下の2点、差分対応をお願いします。

1. 「PlayerSettings」の「Other Settings」中、 「Virtual Reality Supported」のチェックをONにして、「Virtual Reality SDKs」に「Cardboard」を追加してください。

unity560-gvr-cardboard-01.png

2. Google VR SDKのAPIをUnityのVR APIに変更する必要があります。(Google VR SDK中にifdefで分岐があるとのことです

頭の向きを取得して自機(バー)の位置を変更するMeMain.csを以下の様に変更してください。詳細はコメントを参照願います。

void Update ()
{
    #if UNITY_EDITOR
    // キーボードによる自機の移動(Unityエディター上限定のデバッグ用)
    if (Input.GetKey (KeyCode.LeftArrow)) { // ←キー
        if (-MAX_ME_X < transform.position.x) {
            transform.Translate (Vector3.left * 0.3f); // 左へ            
        } 
    }
    if (Input.GetKey (KeyCode.RightArrow)) { // →キー
        if (transform.position.x < MAX_ME_X) {
            transform.Translate (Vector3.right * 0.3f); // 右へ
        }
    }
    #else // not UNITY_EDITOR
    
    // Cardboard (Google VR)での首振りによる自機の移動
    #if UNITY_5_6_OR_NEWER
    // Unity 5.6以降の場合はUnityネイティブのVR対応を利用することになるため、
    // PlayerSettingsのVirtual Reality SupportedチェックをONにして、
    // Cardboardコンポーネントを追加する必要があります。
    Quaternion head = InputTracking.GetLocalRotation(VRNode.Head);
    #else // 5.5 or older
    Quaternion head = GvrViewer.Instance.HeadPose.Orientation;
    #endif
    
    if (head != null) {
        float posX = Mathf.Clamp (head.y * 20.0f, -MAX_ME_X, MAX_ME_X);
        // move bar
        transform.position = new Vector3 (
            posX, // x
            transform.position.y, // y
            transform.position.z); // z
    }
    #endif
}

Unity5.6に対応した記事内のアプリのUnityプロジェクトは以下のGitHubリポジトリに配置しました。
問題があったら他のスペースに移動されるかもしれませんがよければ参考にしてください。

youten/Yousei-HelloCardboardVR
https://github.com/youten/Yousei-HelloCardboardVR

・Android SDK ManagerのGUIとCUIの話

Android SDKと必要なコンポーネントのダウンロードについて、GUIベースで記載してしまいましたが、CUI版のコマンドラインツールとしてのsdkmanagerのみが同梱されるように変更になっています。
コマンドラインツールをダウンロードしてzipを展開するとtoolsフォルダがでてきますが、tools/bin配下のsdkmanagerバイナリ(Windowsだとsdkmanager.exeのはず)で以下のようなリストアップ・ダウンロード(インストール)コマンドを実施してください。

tools/bin/sdkmanager --list
tools/bin/sdkmanager "platform-tools" "build-tools;25.0.3" "platforms;android-25"

# 2GB近いダウンロードとか、展開後のディスクスペースに余裕がある方はAndroid StudioのSDK入りをダウンロードしてしまっても概ねなんとかなりますが、記事中にも記載している通り、色々便利なため、adbコマンドなどパスを通してCUI側のツールを使うことをオススメしておきます:)

◯余談
Daydreamについて書きたかったのにCardboardについて書くことになったので「CardboardとDaydreamについて」という趣味丸出しの節がコラム枠で含まれています。購入された方は僕の顔を思い出しながら読んでやってください。


P.S.
冬休み明けに初稿、3月に入って涙目の全スクショ撮り直しで4/11発売のこの書籍と、ノリノリで4/1リリースのUnity5.6や4/5の12.1話ネタまでぶちこんだ先日の技術書典2向けの4/9頒布の同人誌。時間というものはほんとに強大な敵だな、と感じています。

2017年4月 6日

技術書典2 れいぞうこのドア か-10にて「VRコンテンツのつくりかた」を頒布します #技術書典

今週末の2017/4/9(日)の11:00-17:00、アキバ・スクエアで開催される技術書典2にて、「VRコンテンツのつくりかた」という本を頒布します。1冊500円です。36ページぐらいです。
サークル名は「れいぞうこのドア」、スペースは「か-10」です。

gi2-04.png
gi2-01.png gi2-02.png
gi2-03.png

ちなみに、元々予定していたのですが、すべてRe:VIEWで記載して一式を以下のリポジトリで公開済みです。
上述の目次画像にも記載していますが、1節丸々落としており、後日アップデート予定です。

VRコンテンツのつくりかた
https://github.com/youten/howto-create-vr-contents
※vr-contents.pdfが本体です。

「プログラミング等は初心者ではないけどVRのコンテンツについてはあまり詳しくない」人向けの本を作成しようと考えていたはずなのですが、どうも出来上がってみると「VRについて頭に浮かんだことを垂れ流したうえにおまけのように作業記録が掲載されている」本になってしまった感です。いろいろちぐはぐですがよかったら手にとってやってください。

先日のエントリの通りはたらいてないので、日曜までにはもう一つ版を上げたいと思っています。
皆様にお会いできることを楽しみにしております!

2017年1月 3日

2017.01.03現在のCardboardはUnity5.5.0p3 + Google VR SDK v1.0.3が良さそう

【結論】
Daydream → 5.4.2f2-GVR13
Cardboard → 5.5.0p3 + Google VR SDK v1.0.3

UnityのNative対応、Cardboard向けがダメっぽい印象です。首振り追従が優先されてフレームスキップが強烈に効いてる様に見えますが、計測上40-50fps出ているのに見た目では5fps程度に落ちます。(というかめっちゃシンプルな画面なのでそもそも60fpsから落ちないでほしい。)

以下の試行はSC-05G Galaxy S6(Android 6.0.1)で確認、(Galaxy S6はDaydream not readyなのでもちろん)Cardboard向け。

・5.4.2f2-GVR13 Technical Preview + Native → フレームスキップ低fps
・5.6.0b3 + Native → フレームスキップ低fps
・5.6.0b3 + Google VR SDK v1.10.0 → ビルドエラーが取れず
・5.5.0p3 + Google VR SDK v1.10.0 → ビルドエラーは取れたがAndroidManifest.xmlマージ死。Runtime Permission対応まわりのtargetSdkVersion22だの24だのがうまくいってない。
※どこかManifest探して書き換えれば良いことはわかるが筋が悪いので追いかけない。
・5.5.0p3 + Google VR SDK v1.0.3 → 正常動作。
 ・対象シーンはGoogleVR/DemoScenes/HeadsetDemo/DemoScene
 ・いつものPlatform - Android + Default Orientation - Landscape Left + Other Settings - Bundle Identifierの変更とmin API Levelを4.4(19)に。

Unity 5.5.0p3はここから5.5系最新パッチをダウンロード
https://unity3d.com/jp/unity/qa/patch-releases/
Google VR SDK v1.0.3はここからv1.0.3を掘って
https://github.com/googlevr/gvr-unity-sdk/releases
最終的にはGitHubのここからDownload
https://github.com/googlevr/gvr-unity-sdk/blob/f391c2436426857899af1c37f0720b3985631eb3/GoogleVRForUnity.unitypackage