にゃーんになりたい。

Pepperと仲良くなりたい。

ThetaV + OculusRift でストリーミング & コントローラーの座標取得

↓のアップデート版

ThetaV + Unity + OculusRift でストリーミング - にゃーんになりたい。

環境 Windows10

Unity2019.2.10f1 + UnityHub

UnityHub で新規作成

Oculus で遊ぶので Asset Store から Oculus Integration を Upgrage & Import

f:id:wanttobenya-n:20200124154404p:plain

ポップアップの Import ボタンを押す。

f:id:wanttobenya-n:20200124154415p:plain  

左上の File -> Build Settings を開いて左下の Player Settings

XR Settings の Virtual Reality Supported のチェックを入れる

Virtual Reality SDKs の一番上を Oculus に

f:id:wanttobenya-n:20200124154553p:plain

コントローラーが手の形で VR に出したい

左下、Project タブの Assets に Oculus が増えているはずなので

Assets -> Oculus -> SampleFramework -> Usage から CustomHands をダブルクリック

f:id:wanttobenya-n:20200124154854p:plain

左上 Hierarchy タブの Static -> Ground はいらないので削除

f:id:wanttobenya-n:20200124155120p:plain  

No hack, no work • UnityとOculusで360度パノラマ全天周動画を見る方法【無料編】

から Sphere100.fbx をダウンロード

下部の Assets のところに D & D してから Hierarchy に D & D

右側 Inspector タブから Scale を 100 x 100 x 100 に変更

f:id:wanttobenya-n:20200124155842p:plain

Assets -> Create -> C# Script から新規スクリプトを作成、タイトルを WebCamDrawer に変更

f:id:wanttobenya-n:20200124160255p:plain 

ダブルクリックすると Visual Studio が起動

ThetaV からのストリーミング映像を球面内部に流し込むために

【THETA V】ライブストリーミングの映像をUnityで表示 - Qiita

から WebCamDrawer.cs の内容をコピー

 f:id:wanttobenya-n:20200124160255p:plain

保存したら Visual Studio を閉じて、いまつくった .cs ファイルを Hierarchy の Sphere100 にアタッチ (D & D)

Inspector タブで見ると Web Cam Drawer が増えている

f:id:wanttobenya-n:20200124160650p:plain

コントローラーの座標を取得する C# スクリプトをかく

さっきと同じ要領で新規スクリプトを作成、とりあえず左手をつくるのでファイル名は ControllerLeft に変更

 Visual Studio を起動させて

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.VR;
using System.IO;

public class ControllerLeft : MonoBehaviour
{
    private float timetext;

    void Start()
    {
        //timetext = 0;
    }

    public OVRInput.Controller controller; // the controller to instantiate the object at

    void Update()
    {
        transform.localPosition = OVRInput.GetLocalControllerPosition(controller);
        transform.localRotation = OVRInput.GetLocalControllerRotation(controller);
        //Debug.Log(transform.localPosition);
        StreamWriter sw = new StreamWriter("./LogDataLeft.csv", true); //true=追記 false=上書き
        timetext += Time.deltaTime;
        sw.WriteLine(string.Format("{0},{1},{2},{3}", timetext.ToString(), transform.localPosition.x, transform.localPosition.y, transform.localPosition.z));
        sw.Flush();
        sw.Close();
    }
}

で LogDataLeft.csv に時間(ms)とxyz座標を出力

同様に ControllerRight.cs を作って

public class ControllerRight : MonoBehaviour

StreamWriter sw = new StreamWriter("./LogDataRight.csv", true); //true=追記 false=上書き

だけ書き換え

.cs ファイルを利用するために Hierarchy タブの Create -> Create Empty から GameObject 作成、名前はてきとう

GameObject にさっきつくった ControllerLeft と ControllerRight をアタッチ

Inspector タブで見ると Controller でプルダウンがあるので、それぞれ L Touch, R Touch にする

f:id:wanttobenya-n:20200124162253p:plain

これで Theta V のストリーミングを起動してから Unity 中央の再生ボタンを押すとストリーミングしながら動かしたコントローラーの座標が csv に出力される

ThetaV + Unity + OculusRift で動画を見る

 環境

Windows10

Unity 2019.2.10f1

 

Edit -> Project Settings から Player

XR Settings の Virtual Reality Supported にチェック

Oculus をいちばん上にする

 

No hack, no work • UnityとOculusで360度パノラマ全天周動画を見る方法【無料編】

から Sphere100.fbx をダウンロード

 

Project -> Create から Assetsで右クリック 

Import New Asset から Sphere100.fbx を Import

 

Sphere100 を Hierarchy に D&D

Inspector からサイズを 100 x 100 x 100 に変更

 

Assets で右クリック

Create -> Material

Inspector から Shader を Unit/Texture に

Hierarchy の Sphere100 の D&D

 

Inspector の一番したにある Add Component をクリック

Video Player を入れる

 

THETA V でとった動画を

theta360.com

からダウンロードした RICOH THETA アプリで開く (D&D ではない) と

Oculus で使えるかたちに変換される。時間がかかる。

 

Assets で右クリックして

Import New Asset から変換した動画を Import

 

動画を Hierarchy の Sphere100 に D&D すると

Sphere100 の Inspector -> Video Player -> Video Clip に追加される 

Audio Output Mode が Direct になっているのを確認

 

Oculus をかぶって再生。

 

(ちなみに Unity 2017.4.1f1 でやったら映像だけで音声が出ないですね……)

ThetaV + Unity + OculusRift でストリーミング

 環境

Windows 10

Unity 2017.4.1f1

 

Edit -> Project Settings -> Player

Virtual Reality  Supported にチェック  (黄緑枠)

Virtual Reality SDKs のいちばん上を Oculus にf:id:wanttobenya-n:20191024160818p:plain

No hack, no work • UnityとOculusで360度パノラマ全天周動画を見る方法【無料編】

から Sphere100.fbx をダウンロード。

 

 

Project -> Create から Assetsで右クリック

Import New Asset から Sphere100.fbx を Import. (青枠)

 

Sphere100 を Hierarchy (ピンク枠) に D&D

Inspector からサイズを 100 x 100 x 100 に変更

 

Assets (黄枠) で右クリック

Create -> C# Script

ファイル名を WebCamDrawer にしてダブルクリック

qiita.com

の WebCamDrawer.cs の内容をコピペして保存。

つくった .cs ファイルを Hierarchy (ピンク枠) にある Sphere100 のところに D&D 

 

 THETA V を streaming モードにして Oculus をかぶって再生。

 

 

Windows10 + Atom + LaTeX

 

TeX Live のインストール

http://www.tug.org/texlive/acquire-iso.html

 

download from a nearby CTAN mirror -> texlive-20XX-20XXXXXX.iso

現状 2019 で 3 GB ちょいくらい。

 

ダウンロードしたら右クリックでマウント。

install-tl-windows.bat をダブルクリック。

 

TeXworks フロントエンドを導入のチェックを外す以外は流れに任せる。

Perl のインストール

strawberryperl.com

 

64 bit, 32 bit で合ってるほうのをインストール。

 

Atom のインストール

atom.io

 

ダウンロードしてインストール。

 

Install a Package でパッケージを入れていく。

SyncTeX を使うつもり。

 

latex

Settings から

TeX Path に C:\texlive\20XX\bin\win32

Engine は platex

Enable SyncTeX, Enable Extended Build Mode にチェック。

Output Format は pdf

PDF Producer は dvipdfmx

Move Result to Source Directory, Build on Save, Open Result after Successful Build, Open Result in Background にチェック。

Opener は automatic

Pdf View Split Direction は right

それ以外は Default 

 

ホームディレクトリに空白のファイルを作成。

名前を .latexmkrc. に変更すると .latexmkrc のファイルができる。

適当にエディタで開いてコード貼り付け。

 

#!/usr/bin/env perl

$latex            = 'platex -synctex=1 -halt-on-error';
$latex_silent     = 'platex -synctex=1 -halt-on-error -interaction=batchmode';
$bibtex           = 'pbibtex %O %B';
$dvipdf           = 'dvipdfmx %O -o %D %S';
$makeindex        = 'mendex %O -o %D %S';
$max_repeat       = 5;
$pdf_mode   = 3;
$pvc_view_file_via_temporary = 0;

解説はこちらを読んで。

 

language-latex

しんたっくすはいらいとのやつ。

 

latexer

おーとこんぷりーとのやつ。

 

pdf-view

Settings から 

Pane to use when opening new TeX files を left 

SyncTeX Reverse sync behaviour を Click に

Path to synctex binary を C:\texlive\20XX\bin\win32\synctex.exe に。

 

Ctrl + S でコンパイルまでやってくれる。はぴはぴ。

 

分割ファイルでmainをコンパイル

main.tex に input で分割ファイルを入れたいときは

% !TEX root = main.tex

 を分割ファイルの一番最初に書く。

gnuplot + latex + データ

すぐ忘れそう。

適当なデータを hoge.dat に

hoge.sh に

#!/bin/sh
gnuplot << EOF
set term epslatex color size 4,3 10
set output 'hoge.eps'
set xlabel '\$\\alpha\$'
set ylabel '\$b\$'
unset key
plot 'hoge.dat' u (\$1):(\$2) w l
EOF

ターミナルで

sh hoge.sh 

をすれば hoge.eps と hoge.tex ができる。

LaTeX に .eps と .tex を持っていく。

\usepackage[dvipdfmx]{graphicx}

\begin{figure}
\begin{center}
\input{hoge}
\caption{hoge}
\end{center}
\end{figure}

f:id:wanttobenya-n:20190701190126p:plain

Unity のマテリアルをスクリプトで切り替える

Unity のマテリアルをキーボードで切り替えたいなーってスクリプトを書く。

OS: Windows10  Unity: 2017.1.0f3

C#ではじめるUnityプログラミング入門 - libro

とかで基礎。

qiita.com

スクリプトをオブジェクトに張り付ける方法をお勉強。

teratail.com

に書いてあるベストアンサーのを基本的には利用してスクリプトを書く。


変更点

  • スクリプトのファイル名を Test にしたので、5行目を public class Test : MonoBehaviour{  に書き換え
    (ファイル名の1文字目は大文字じゃないとだめ)

  • 1行目の using UnityEngine; は3行目と被ってるので削除。

  • 5種類のマテリアルを使いたかったので20行目を if (i == 5) { に書き換え

  • 日本語のコメントアウト部分は削除


Test.cs

using System.Collections; 
using UnityEngine; 
public class Test : MonoBehaviour{ 
    public Material[] _material;
    private int i; 
    // Use this for initialization 
    void Start () { 
        i = 0; 
    } 
    // Update is called once per frame 
    void Update () { 
        if (Input.GetKeyUp(KeyCode.Space)) { 
            i++; 
            if (i == 5) { 
                i = 0; 
            } 
            this.GetComponent<Renderer>().sharedMaterial=_material[i]; 
        }  
    } 
}

注意

  • エディタは Visual Studio ではなく Monodevelop を使用(日本語環境はまずそう)
    (Edit → Preferences → External Tools あたりでプルダウンして変更。VSC オプション警告は無視。)

  • ときどき
    No MonoBehaviour scripts in the file ,or their names do not match the file name.
    とか言ってくるけどスクリプト削除してもっかいイチからやりなおせば直る……かも?

 

現在のプロジェクトを送信できません。

ファイル名に日本語が入っていたときにハマったエラー。

 

現在のプロジェクトを送信できません。

インストール中にエラーが発生しました:パッケージのインストールに失敗しました:boost::filesystem::path codecvt to wstring: error 

f:id:wanttobenya-n:20170726110422p:plain

一度ハマると今まで動いてた別のプロジェクトでも動かなくなる。。。

 

環境は変わらず

Windows7

NAOqi 2.5.5 

Choregraphe 2.5.5

 

とりあえず見なかったことにしたいので

ロボアプリ一覧からインストールしたプロジェクトは削除

Choregraphe 現在のプロジェクトを送信できません | SoftBank Robotics Community

を読んで一時ファイルを削除

faq.mb.softbank.jp

を眺めて長押し再起動

 

これで今まで動いてたプロジェクトはたぶん動くようになります。

 

プロジェクト内に日本語の含まれたファイルがないか確認 (画像ファイルとか)。

.pml のあるディレクトリのパスに日本語がないか確認,ディレクトリ内に日本語ファイルがあれば削除。

 

で,再生するとうまくいくんじゃないかな……。

 

ASCII コード以外はだめらしいので。

developer.softbankrobotics.com

 

qiita.com

をみると .m4a もだめらしいです。