ThetaV + OculusRift でストリーミング & コントローラーの座標取得
↓のアップデート版
ThetaV + Unity + OculusRift でストリーミング - にゃーんになりたい。
環境 Windows10
Unity2019.2.10f1 + UnityHub
UnityHub で新規作成
Oculus で遊ぶので Asset Store から Oculus Integration を Upgrage & Import
ポップアップの Import ボタンを押す。
左上の File -> Build Settings を開いて左下の Player Settings
XR Settings の Virtual Reality Supported のチェックを入れる
Virtual Reality SDKs の一番上を Oculus に
コントローラーが手の形で VR に出したい
左下、Project タブの Assets に Oculus が増えているはずなので
Assets -> Oculus -> SampleFramework -> Usage から CustomHands をダブルクリック
左上 Hierarchy タブの Static -> Ground はいらないので削除
No hack, no work • UnityとOculusで360度パノラマ全天周動画を見る方法【無料編】
から Sphere100.fbx をダウンロード
下部の Assets のところに D & D してから Hierarchy に D & D
右側 Inspector タブから Scale を 100 x 100 x 100 に変更
Assets -> Create -> C# Script から新規スクリプトを作成、タイトルを WebCamDrawer に変更
ダブルクリックすると Visual Studio が起動
ThetaV からのストリーミング映像を球面内部に流し込むために
【THETA V】ライブストリーミングの映像をUnityで表示 - Qiita
から WebCamDrawer.cs の内容をコピー
保存したら Visual Studio を閉じて、いまつくった .cs ファイルを Hierarchy の Sphere100 にアタッチ (D & D)
Inspector タブで見ると Web Cam Drawer が増えている
さっきと同じ要領で新規スクリプトを作成、とりあえず左手をつくるのでファイル名は 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 にする
これで 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 でとった動画を
からダウンロードした 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 に
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 にしてダブルクリック
の 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 のインストール
64 bit, 32 bit で合ってるほうのをインストール。
Atom のインストール
ダウンロードしてインストール。
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 ができる。
\usepackage[dvipdfmx]{graphicx}
で
\begin{figure} \begin{center} \input{hoge} \caption{hoge} \end{center} \end{figure}
Unity のマテリアルをスクリプトで切り替える
Unity のマテリアルをキーボードで切り替えたいなーってスクリプトを書く。
OS: Windows10 Unity: 2017.1.0f3
とかで基礎。
でスクリプトをオブジェクトに張り付ける方法をお勉強。
に書いてあるベストアンサーのを基本的には利用してスクリプトを書く。
変更点
スクリプトのファイル名を 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
一度ハマると今まで動いてた別のプロジェクトでも動かなくなる。。。
環境は変わらず
NAOqi 2.5.5
Choregraphe 2.5.5
とりあえず見なかったことにしたいので
ロボアプリ一覧からインストールしたプロジェクトは削除
Choregraphe 現在のプロジェクトを送信できません | SoftBank Robotics Community
を読んで一時ファイルを削除
を眺めて長押し再起動
これで今まで動いてたプロジェクトはたぶん動くようになります。
プロジェクト内に日本語の含まれたファイルがないか確認 (画像ファイルとか)。
.pml のあるディレクトリのパスに日本語がないか確認,ディレクトリ内に日本語ファイルがあれば削除。
で,再生するとうまくいくんじゃないかな……。
ASCII コード以外はだめらしいので。
developer.softbankrobotics.com
をみると .m4a もだめらしいです。