xR Deveropers Japan Blog

xRTechが好き・興味がある方のコミュニティです。勉強会やスラックなどでの情報共有を行っています。興味のある方、お気軽にご参加ください^^プログラミングなど未経験の入門希望者も歓迎しています。

チュートリアル:モバイル+AR実装入門(Vuforia編)(2018年10月動作確認)

f:id:xrdevja:20181205211240j:plain

チュートリアル概要

ARの先駆的かつ、iOSAndroid両方で対応可能なVuforiaというツールを活用した簡単なアプリを作ってみるチュートリアルです。ARの基礎用語と基礎的な実装方法を理解し、コーディングができるようになります。

できるもの

特定の画像を検知すると、3Dのグラフィックがスマホから出現するアプリ。

必要なもの

チュートリアル本編

xrdevjaのメンバーmawaの記事になります。 k-mawa.hateblo.jp

Unity:ローカル開発中と本番デバイスで割り当てボタン等を別々に設定したまま開発できる#defineディレクティブ

f:id:xrdevja:20181203144719p:plain

ユニティエディターで実装検証しながら作っていくことが多いと思います。そのとき、本番は特定のコントローラーだけど、開発中は十字キーとかスペースキーで代用したいという場合は、この#ではじまるif文が便利です。

利用例

一目瞭然です、StartやUpdateの部分を、#ifと```#endif````で挟めば、ローカル開発中と本番デバイスで割り当てボタンを別々に設定したまま開発できます。

    void Update()
    {
#if UNITY_EDITOR
        Debug.Log("Work in Unity Editor");        
#endif

    }
}

参考資料

docs.unity3d.com

Unity:エラー解決報告:MissingComponentException: There is no 'Rigidbody' attached to...

f:id:xrdevja:20181203144719p:plain

以下のようなエラーについての解決法報告です。

エラー内容

コンソールのエラー文面

MissingComponentException: There is no 'Rigidbody' attached to the "(何らかのヒエラルキー上のオブジェクト名)" game object, but a script is trying to access it.
You probably need to add a Rigidbody to the game object "(何らかのヒエラルキー上のオブジェクト名)". Or your script needs to check if the component is attached before using it.
(以下略)

解決策

書いてあるとおりなのですが、必要なコンポーネントが足りないので追加すると直ります。この例では、スクリプトにRigidbodyを扱うコードが書いてあるのに、ゲームオブジェクトにRigidbodyコンポーネントが付与されていないのです。Rigidbodyを追加するとエラーは直りました。

VR入門:"6dof"とはなにか。VR機器の3軸、6軸について。対応機種HMD情報まとめ

こんにちは。mawaと申します。
早くも12月で平成最後の月ですね。

6dofとは

最近VR機器では6dofかどうかというのも話題になっています。

6 degree of Freedom の略です。
6DoF - Wikipedia

会話中だと、「6軸」で関係者には伝わります。また、VR機器で「3軸」対応のVR機器がある状況も押さえるとよいです。

図解でわかりやすいツイートがありましたので、ご紹介します。

一目瞭然ですね!

現状で流通している主なHMDの分類

参考になさってください。(主だったもので、全部は網羅していないです。時間のあるときに追記するかもです。)

3軸

HMD名称 価格 備考
Oculus Go 2万円台 開発コスト安く あつかいやすい とりあえずVR開発してみたい場合にオススメ

6軸

HMD名称 価格 備考
WindowsMR対応HMD Acer,Lenovoのもの等は3万円程度 とりあえず6軸VR開発したい場合にコスト面の手軽さからオススメ。SteamVR対応開発も可能。要注意点として、コントローラーがBlueTooth、電池各二本ずつ必要で消費も早め。
Oculus Rift 5万円(4万5000円での販売セール確認) コントローラーに手の形を認識するハンドトラッキング機能あり。後ろを振り返ったりするとトラッキング外れ起きやすい。(センサー位置が前面2個のため。追加可能。)
HTC Vive 7万円程度 本格的にVR開発したい場合にオススメ
HTC Vive Pro スターターキット13万円程度/フルセット17万円程度 本格的にVR開発したい場合にオススメ。スターターキットはコントローラーとベースステーションがバージョン古い分数万円安くなっているというもの。フルセットのほうが後々のことを考えるとオススメ度は高い。

VR開発を始めるのにOculusGoはオススメの選択肢のひとつ(2018.12.01時点)

Oculus Go, VR (並行輸入品)

Oculus Go, VR (並行輸入品)

対象読者

主にVRアプリを開発してみたいなと思っている入門者の方

VR開発の選択肢はたくさんあって…

こんにちは。xR Developers Japanのmawaと申します。

VR開発と言っても、今やたくさんのガジェットが流通しています。ので、初めて開発しようと思ったときに選択肢が多すぎて選びづらい状態かもしれません。

そのために入門しやすいパターンを提示する記事を作ってみました!

Oculus Go は手軽に始められるVR機器の一つなのでオススメ

とりあえず私としては、現時点では、ひとつのやりやすい選択肢としてはOculus GoでVR開発はコスト面、開発しやすさからおすすめしたいと思います。そこを起点にまた色々な選択肢も検討すると検討も進めやすいかもしれないからです。(他のガジェットおすすめ記事寄稿されたい方、大歓迎です^^ )

まず、必要なものからご紹介します。

Oculus GoでのVRアプリ開発に必要なもの

  • Oculus Go本体 3万円くらい(セールによってやすかったりします。一番廉価版のモデルの場合)

  • PC。WindowsMacいずれか好みのもの。

PCについては、メモリができれば16GB以上(8GBでも行けるかもしれない)で、できればGPUもいいものがついているもの。となってくると、Windowsのほうがコストが安くなります。

要するに、VRは3Dゲーム、空間にレンズで中にいるように感じられるようなアプリをつくることになるので、性能としては、3Dゲームを作って動かすことができる能力が十分にあるPCなら何でも良いのです。

Macだと、良い性能のものは、Windows機より割高ですが、iPhone用のアプリも作ってみたいなどの希望用途によってはMac購入でも良いかと思います。

Windows機だと上記のようなスペックを満たすものは主に「ゲーミングPC」と言われる種類のPCがあてはまります。店頭でゲーミングPCのデモ展示を見れる場合には3D映像がサクサク動くスペックがどの程度のものかチェックもできるので、展示、あるいは同等のレビュー動画などを一度見てみるのもおすすめです。

例えばヒューレット・パッカードならOMENというブランドがメジャーです。

DellだとALIEN WAREというブランドで展開されています。

このあたりはメジャーブランドから、ちょっとマニアックなものまで、色々見てみるのがいいと思います。

開発はざっくりどういう風にするのか

これは、PCで開発を始めます。そのときは主にUnityというソフト等で開発します。

PCでソフトができあがったら、USBをつないでOculusGo本体にソフトデータを転送して起動します。

すると、OculusGoでVRが楽しめるという流れです。

これは基本的に他のVRの開発で流れは同じようになります。iPhoneAndroid携帯のARやHoloLensなどのMR開発も同じような流れで開発します。なので、後々応用が効きやすいのとコスト面から、ファーストステップでOculusGoをオススメしておきます^^

ではでは

Unity基礎講座:SerializeFieldとは

f:id:xrdevja:20181201010038p:plain

SerializeFieldとは?

コード例をネットや書籍で見ると、 多々出てくるのがこのSerializeFieldです。下記のような形です。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bullet : MonoBehaviour {

    [SerializeField] float speed = 2f; //これ

    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {
        
    }
}

これは、要するに、変数の値をいちいちVisual Studioなどのコード編集ソフトを開かなくても、UnityEditor上で数値をいじれるようにできますよ という機能です。

例えば四角で囲った部分のような感じで、UnityEditor上でいじれるので、後々微調整に便利なのです。 f:id:xrdevja:20181201011033p:plain

ではでは

Unity基礎講座:基本的な用語を覚える:Unity Editor

f:id:xrdevja:20181201010038p:plain

基本用語を覚えると、資料を読むのがはかどるかも

Unityには独自の基本用語が色々あります。
基本なので、知っている前提で話が進む資料もたくさんあると思います。そのときのための基本をさらっておくための資料その1です。

Unity Editor

読み:ゆにてぃ・えでぃたー。よく使うのは「UnityEditor上では動作確認済みだが、iOSアプリでは動作確認できていないです」のような感じです。

これ↓のことです。 f:id:xrdevja:20181201005329p:plain

はい、要するにUnityを立ち上げたら出てくる編集画面(よくエンジニアリング業界では「コンソール」や「インターフェース」という言い方が多いかも…しれません。)のことです。UnityEditorで動かすというと、この編集画面の再生ボタンみたいなスイッチを押して動かすという意味になります。

こんな感じです。