トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

Nrealいろいろ【Live2D、カラーチャート、QRコード読み込み、スマホ画面】

 前回の続きでいろいろ細かいことやってみる

bibinbaleo.hatenablog.com

 Live2D

表示OK

f:id:bibinbaleo:20200812153308p:plain

カラーチャート

このカラーチャートを表示する

f:id:bibinbaleo:20200812153017p:plain

WEBカラーチャート HTML・CSSで使える色の見本一覧 - PEKO STEP

こんな感じ!

f:id:bibinbaleo:20200812153305p:plain

明度低い下のほうがなぜか明度低く見えない。

明度0は完全に透けているけど、明度10%は明るい。不思議~

他の3Dモデルとかもえらくはっきり見えると思ったら、Holo2とかとは違って特殊な表示のされ方なのかな?

 

Hololensだとどうだっけって思ったけど、写真がひどくて参考にならない・・・

https://cdn-ak.f.st-hatena.com/images/fotolife/b/bibinbaleo/20200422/20200422104838.png

bibinbaleo.hatenablog.com

QRコード情報読み込み

QRコードの文字情報をカメラから読み込んで、textでその情報を表示する。

こちらの記事を参考にした。

baba-s.hatenablog.com

QRコード読み込み処理をするために、ZXingのzipをダウンロードしてその中のUnity>dllをUnityプロジェクトに入れる

https://github.com/micjahn/ZXing.Net/releases

カメラ映像取得

最初、映像取得をサンプルのままのWebCamTextureを使ったんだけど、取得した映像をRawImageに表示するのはEditor(PCのカメラ)では動いたけどNrealだとダメだった。

Nrealの「rgb-camera」というページとサンプルシーンを参考にして独自にNrealGlassの映像を取得できる

https://developer.nreal.ai/develop/unity/rgb-camera

Nrealのカメラ取得スクリプトはCameraCaptureController

完成

動いた!

f:id:bibinbaleo:20200812164519p:plain

すごい分かりにくいけど、左上にカメラ映像がなぜかさかさまで表示されて、QRコード読み込んだら、urlがテキストで表示される。

以下スクリプト

using NRKernal;
using NRKernal.Record;
using UnityEngine;
using UnityEngine.Android;
using UnityEngine.UI;
using ZXing;

public sealed class QRCodeReader : MonoBehaviour
{

    public Text m_text;
    public RawImage m_rawImage;
    private NRRGBCamTexture RGBCamTexture { get; set; }

    private void Start()
    {
        RGBCamTexture = new NRRGBCamTexture();
        m_rawImage.texture = RGBCamTexture.GetTexture();
        RGBCamTexture.Play();
    }

    private void Update()
    {
        m_text.text = Read(m_rawImage.texture as Texture2D);
    }

    private static string Read(Texture2D texture)
    {
        var reader = new BarcodeReader();
        var rawRGB = texture.GetPixels32();
        var width = texture.width;
        var height = texture.height;
        var result = reader.Decode(rawRGB, width, height);

        return result != null ? result.Text : string.Empty;
    }
}

 

 

カメラ映像取得とQRコード読み込みの間で、Textureをtexture2Dに変換する必要があったけど、簡単にできる

m_rawImage.texture as Texture2D

answers.unity.com

スマホ画面で文字入力できるのか

スマホコントローラーを使う場合、画面にUIを置けるけど、そこでInputFieldを置いたら文字入力ができるのか。

Input-VirtualControllerシーンをコピーして、キャンバスにInputField追加

f:id:bibinbaleo:20200813131629p:plain

入力した文字を空間のtextに表示するようにした(QRコードと同様)

f:id:bibinbaleo:20200813152023p:plain

エディタ

エディタで実行しても、文字入力反応しない。

ボタンも反応するときとしない時がある

結果

そもそもUIが反応しない.