タグ「VR」 の検索結果(1/1)

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

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


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

2017年4月10日

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

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

本エントリは、技術書典2の【当日レポート編】と、以下のツイートの通りのRe:VIEWでPDF作成+日光企画さんのWeb入稿+イベント会場直接搬入が大変便利で感動したのでその手順・経緯について記載した【制作編】を含んでいます。

続きを読む "技術書典2 サークル参加レポ #技術書典"

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について頭に浮かんだことを垂れ流したうえにおまけのように作業記録が掲載されている」本になってしまった感です。いろいろちぐはぐですがよかったら手にとってやってください。

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

2016年5月17日

ViveでSDユニティちゃんを無限に投げて掃いてみた

こりん(@k0rin)さんのフレームシンセシス Unity+HTC Vive開発メモに「また、SteamVR/Extrasに、コントローラでオブジェクトを投げるSteamVR_TestThrowというサンプルがあります。」と紹介されていたサンプルがおもしろかったので、RagdollなSDユニティちゃんをひたすら投げられるデモを作ってみました。

SDユニティちゃんのRagdoll化については以下のページを参考にしました。(というかそのまんまですね)

[Unity]SDユニティちゃんにラグドールを入れて人形っぽくする
http://notargs.com/blog/?p=588

Rigidbodyに直velocityではうまくいかなかったのでAddForce作戦に変えたあたりは以下のLeapmotionでつまんで投げる以下のページを参考にしました。

Grabbing and Throwing Small Objects, Ragdoll Style
http://blog.leapmotion.com/grabbing-and-throwing-small-objects-ragdoll-style/

RagdollThrower
https://github.com/leapmotion/RagdollThrower

GTX970機だと20体も出すと90fpsは保てなくなりますが、Timewarpまわりがきちんとしているのか、fpsが落ちても酔いを感じるほど画面が乱れるまでにはさらにもう20体、という感じの境界線でした。

2015年12月14日

BLEビーコンでポジトラは可能なのか(未完ごめんなさい)

本エントリはOculus Rift Advent Calendar13日目の記事ですが、ここ最近の一ヶ月を振り返って、睡眠を削ってゲームを優先させた結果、結論としてごめんなさいという状況です。

Gear VRにポジトラが欲しいとは散々みんなが思っていると思いますが、Microsoft Kinnect v2、Google Tango Project、Oculus Rift DK2, HTC Viveの各方式をちょっと調べて乱暴にまとめればわかる通り、「光源とカメラが両方含まれたシステムで、時間情報を用いた厳密な距離測定によるポジショントラッキング」が結局のところ勝利の方程式だということがわかります。赤外線ではないですが、もう少し大きなスケールな例で言うならば、GPSも同じ仕組みです。

他の方式でポジトラのようなことをしようとするとどこかでより賢い補正式や、用途を限定的にする必要があるという、このへんの勘所をムリしてはいけないと常々思っています(まれによく天才と札束が組み合わさって最強に見える話が発生しますが・・・)いくつか事例を挙げてみます。


例1:加速度値の積分で位置を測定する
「姿勢」に関してはなんとかなるのですが、「位置」に関しては誤差が蓄積されていきますので、それを修正する別の何かが必要です。逆にいうとホイホイリセットできれば意外と使えたりします。

例2:光源がシステムに含まれない
ARマーカーはこちらに分類されます。人間が目でやってる距離測定はこちらですが、人間の距離感というのはある程度遠くなって左右の目の視差がなくなると、経験による距離測定をしだします。トラックみたいに大きな車両だと車間距離を勘違いしやすい、みたいな話とか、野球では球の鉛直方向の落下速度で軌跡を推測するそうですが、そのへんめっちゃ人間頭いいなー、というつらさがあります。

例3:時刻情報ではなく波のパワーで距離を測定する
今回やろうとしているBLEビーコンでのボジトラはこいつにあたります。耳で音を聞いて距離を測定する話に近いと言えば近いのですが、iBeacon等も含むBLEビーコンのAdvertiseはBLEの規格上20ms間隔の50Hzが限度です。RSSIとやらがもう二桁ぐらい精度よく取れればなんちゃってでも楽しめたのかもしれませんが、誤差も振動も大きく、厳しい話です。

ではそんな中でBLEビーコンでポジトラの勝率をあげるために、いくつかの前提条件を検討していきましょう。

案1:受信機を複数にする
人間の耳みたいに、BLEのAdvertiseを受けられるCentralな板を複数つけたら勝率があがるかもしれません。ただし、これはGear VRでは物理的には採用しづらいですね。面倒なのでやめときます。

案2:時間をかける
サンプリング周波数が足りないのであれば、足りるまで位置特定まで時間をかければいいのです。その場に10秒ぐらい立っていてくれれば10cm程度のオーダで位置測位ができます!いやいや、VRなポジトラ用途ではさすがに現実味がありません。受信誤差吸収のための移動平均はもちろんかけますが、秒オーダでもさすがに話になりません・・・。

案3:発信機を複数にする
これは実際やったことがあります。2x2x2(8個)の立方体な感じでビーコンをせいぜい1m間隔で置くという力技です。VR的な使い方を考えると前方3つ(正面と左右)あればなんとかなるんじゃないかなと思っています。

案4:受信機の向きを固定したり、障害物が入らないようにする
これがGear VRで少し有利な点です。電波ですから金属でガンガン反射するので、スマホでこの手のことをやると、端末の向きが意外と影響します。BLEの2.4GHzなマイクロ波は水に吸収されやすいので、身体やスマホの位置がガンガン影響します。どういう持ち方でどの向きで使われるか特定できるGearVR(特に前方にビーコンを配置した際)なら勝率が上がるのでは!ということです。

Appleが「iBeaconは距離測定に使うなよ使うなよ」ってつよく言っている理由がわかってきましたでしょうか。だんだんOculusの話ではなくてBLE位置測位の愚痴の話になってきましたが気のせいです。

・・・というわけでUnityでAdvertise取って計算させたぐらいまでしかできていないのでもう少し形にしたらリベンジさせていただきますごめんなさい!orz

2015年6月 1日

OcuBen #02 に参加して思ったことメモ

Oculus Rift勉強会 #02 【初心者歓迎】
https://ocuben.doorkeeper.jp/events/24708

・本当にVRについて勉強したい人が何百人も居るのか。
・みんな開発者やコンテンツ提供者というわけではなかったけど居た。
・Android開発経験者は結構居たけどGear VR持ってる人もそんなに多くなかったしGear VRで開発したことがある人は多くなかった。
・プログラミングしなくても開発ができるようになったのではなくて、誰もが楽しめるぐらいプログラミングの裾野が広がった。
・Cardboard・Gear VR向け、UnityでのAndroidアプリ開発環境にAndroid Studioは必須ではない。
・GalaxyのadbのためのUSB DriverのためにKiesは必須ではない。
・天球動画の再生環境としてGear VRがRift DK2を概ね凌駕するというのには同意。
・ま、まだ仲良くしといてあげるけどVR国がおっきくなったらあなた達みたいなリア充とは仲良くするつもりはないんだからねっ>実写動画

P.S.
きゅーこんさん歌うまいのでみんなカラオケに連れて行こう(次はファミコンバーでリア充と対決しましょう

2015年4月18日

【スマホVR】Unity 5 PersonalとCardboard SDKで嫁をAndroidに召喚する【MMD】

(2016.06.18注記)
MMD4Mecanim_Beta_20150821でも設定を変更すると動作する模様です。

Google VR SDK for UnityでMMDモデルを眺めるアプリ作成とそのやり方の話。
http://tecofalltolt.hatenablog.jp/entry/2016/06/16/215546
>Delayed Awake Frameの値を0にしてください。それ以外ではAndroid端末上でモーションが再生できません。

また、Android SDKのコマンドラインツール最新(?)installer_r24.4.1-windows.exeのインストール後のSDK Maganerによるパッケージ選択に、少々罠があるので、回避方法は以下の通りです。

以下、古いですが本編(そのうちGoogle VRになりましたし刷新します)

----

vr-ss-04.png

スマホ向け双眼3D VRゴーグル、Google Cardboard(タオバイザー/ハコスコ DX等のCardboard互換ゴーグル含む)向けにUnityで3D VRアプリを作るマニュアルを、Android SDKインストールからがっつりフルで書いてみました。Unity 5 Personalの登場で開発環境が無料で済むようになりましたので、よかったら皆様もお手持ちのスマホに嫁を召喚してみませんか。

vr-mokuji.png

◯目次

0. はじめに
1. Android開発環境の構築(JDK)
2. Android開発環境の構築(Android SDK)
3. Unity5のインストールとプロジェクトの作成
4. Cardboard SDKの導入
5. MMD4Mecanimの導入

続きを読む "【スマホVR】Unity 5 PersonalとCardboard SDKで嫁をAndroidに召喚する【MMD】"

2014年10月17日

日本Androidの会 VR部 #JAGVR 設立

日本Androidの会 VR部を設立してみました。
VRとかARとかなんたらRとか好きな人とか、流行りものとか2.5次元とかなんか面白そうなものが気になる人とか、お気軽に参加して一緒に遊んでもらえると喜びます。

MLはGoogle Groupで。
https://groups.google.com/forum/?hl=ja#!forum/jag-vr

ハッシュタグは #JAGVR で。

「VRで何かしよう」と思ったのはCardBoardやOculus Rift(DK2)が大変楽しいと感じたのですが、タオバイザーのクラウドファウンディングとかを見ててもコンテンツが足りないな、と思ったので。

「VR部」を作ろうと思ったのはきんねこさんが言ってて面白そうと思ったので。
FakeRiftとtaovisorをやってみてわかったこと
http://www.slideshare.net/kinneko/fakerifttaovisor

「部長」になってしまったのはきんねこさんが決めたので。

副部長はきんねこ(@kinneko)さんとがく(@tao_gaku)さんです。

さしあたってCardBoard/タオバイザー勉強会(ハッカソン)と、#ABC2014W 出展(展示+ハンズオンあたり)かな、と思っています。発表枠は運よくいただけてもとっちらかりそうですよねぇ...僕は別にコンテンツを何も持っていませんし(汗)まぁ2か月ぐらいゆっくり...いそいで考えます。