にゃーんになりたい。

Pepperと仲良くなりたい。

Windows10 + VSCode + TeXLive

TeX Live のインストール

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

 

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

現状 2022 で 4 GB ちょい

 

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

install-tl-windows.bat で右クリック、管理者として実行

 

TeXworks 入れたい人はチェックを入れる、あとは流れに任せる

 

Perl のインストール

strawberryperl.com

 

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

Visual Studio Code のインストール

code.visualstudio.com

Download for Windows からダウンロード

コンピュータに影響が~系の警告が出るかもしれないが通さないとインストールが中止されるから通す

インストーラを開いて流れに任せる

.latexmkrc の作成

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

名前を .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;

解説はこちらを読んで

 

LaTeX Workshop のインストール

VSCode 左側の Extensions を開いて latex で検索

LaTeX Workshop をインストール

 

setting.json の編集

VSCode左下の歯車マークから settings を開いて

タブ右上のファイルマークをクリック

JSON を編集して Ctrl + S


{
    // ---------- Language ----------

    "[tex]": {
        // スニペット補完中にも補完を使えるようにする
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        // インデント幅を2にする
        "editor.tabSize": 2
    },

    "[latex]": {
        // スニペット補完中にも補完を使えるようにする
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        // インデント幅を2にする
        "editor.tabSize": 2
    },

    "[bibtex]": {
        // インデント幅を2にする
        "editor.tabSize": 2
    },


    // ---------- LaTeX Workshop ----------

    // 使用パッケージのコマンドや環境の補完を有効にする
    "latex-workshop.intellisense.package.enabled": true,

    // 生成ファイルを削除するときに対象とするファイル
    // デフォルト値に "*.synctex.gz" を追加
    "latex-workshop.latex.clean.fileTypes": [
        "*.aux",
        "*.bbl",
        "*.blg",
        "*.idx",
        "*.ind",
        "*.lof",
        "*.lot",
        "*.out",
        "*.toc",
        "*.acn",
        "*.acr",
        "*.alg",
        "*.glg",
        "*.glo",
        "*.gls",
        "*.ist",
        "*.fls",
        "*.log",
        "*.fdb_latexmk",
        "*.snm",
        "*.nav",
        "*.dvi",
        "*.synctex.gz"
    ],

    // 生成ファイルを "out" ディレクトリに吐き出す
    "latex-workshop.latex.outDir": "out",

    // ビルドのレシピ
    "latex-workshop.latex.recipes": [
        {
            "name": "latexmk",
            "tools": [
                "latexmk"
            ]
        },
    ],

    // ビルドのレシピに使われるパーツ
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-silent",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
        },
    ],
}    

参考サイト

qiita.com

 

使い方

文書を書いて Ctrl + S

 

Ctrl + Alt + V もしくは View LaTeX PDF をクリックで横にプレビューが出る 

PDF ビューワー上で Ctrl を押しながらクリックすると対応するソースコードに飛ぶ

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.
    とか言ってくるけどスクリプト削除してもっかいイチからやりなおせば直る……かも?