エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【VRChat】韓国の人でアニメ見て日本語勉強した人いるっぽい【271日目】

VRChatはじめました

巷で話題のVRChatをやってみました。

これは、その時に起こったことを書いて、
VRChatと、海外の方に興味持ってくれたらなって感じの記事です。

VRChatって?

自分が3Dキャラクターになって、3D空間歩き回って、
いろんな人(同じプレイヤー)とお話するPCゲームです。

VR環境整えた人がだいたいやる、すっごいコンテンツです。 VRにおけるTwitterfacebookレベルの有名度合いです。

海外の人いっぱいな環境です。

初挑戦、こんな心で行きました

『私、一応ちょびっと英語喋れるし、いけるやろ!わくわく』

そして行きました。

韓国の方に囲まれました

やばい、英語しゃべるぜって心、完全に打ち砕かれた。

なんでって、

『みんな日本語喋れる』

日本のアニメみて勉強してるらしい

あのね、『あなた本当は日本人では!?』ってレベルで日本語しゃべる人2人いた。

他の人も、たどたどしくても、こっちの言葉ほぼ理解できるの。全員。
しかもね、その人ら『今日互いがはじめまして』っていう。
うん、たまたま集まったの。日本語できる人が、たくさん。

聞いてみたら、日本のアニメ見て、日本語勉強するために、VRChatしてるんだって。

その女性は、ナルトやヒーローアカデミア見てたよ!って言ってたよ。

結局どうしたか

私が韓国語を教えてもらう流れになりました\(^o^)/

『こんにちは』『私は日本人です』

の2つを教えてもらいました。

「韓国の人、これを韓国語で言ってくれると、すっごく嬉しいの」

って教えてもらいました。発音難しい・・・w

こんにちは

注)私が聞き取ったのを書いています

『アニョハセヨー』

よく聞くやつですね。ちなみに、親しい友人相手の場合は

『アニョー』

だそうです。『Hi』くらいの感覚なのかな。

私は日本人です

私は『だーぬん』 日本人『いるぼんにん』 です『いむにだ』

ぬのところは、(にとぬの間)みたいな発音みたい。

これが言えると、嬉しいっぽいのでめっちゃ何度も教えてもらった。

発音難しい・・・発音あんまりよくないけど、ちゃんと分かるレベルになった・・・はず!

VRChatおすすめ

こんな異文化交流が、あっという間に体験できました。

留学生と英語で交流はよくやってたので、日本語の方に合わせられたのは予想外でした。

でも面白かったです。

VR機器を持っていなくてもできるので、Steamに登録してる方はぜひ体験してみては!!!

興味持ったら、私に声かけてもらえれば、また詳しいお話しますー!
では!

【JavaScript】対象のクラスを持つ要素を子要素ごと消す【270日目】

htmlで邪魔な要素がある

<div class="gomi">
    <p>ごみー</p>
</div>
<div class="ringo">
    <p>りんご</p>
</div>

この時、gomiって書かれてるクラスの要素を消して、こうしたい

<div class="ringo">
    <p>りんご</p>
</div>

jquery使ってこうする

$(".gomi").remove();

これで消せる

Laravelでも使える、リポジトリパターンのメモ書き【269日目】

注意

メモ書き。

いつか記事にまとめたい

要素

1.Model 2.Repository 3.Service 4.Controller

Model

フィールド値や、リレーション、テーブルに関わる定数を保存

Repository

クエリ系。

テーブル結合とか、limitとかのクエリに関わる関数をまとめて、
returnでCollectionを返す。

Collectionがほしければ、Repositoryのインスタンスを通してね!

Service

ロジック。

Collectionほしいだけなら、Repositoryの関数を使ってreturnするだけ。

ただ、Collectionの加工や、DBとは別の通信(メールとか)はここ。

Controller

Serviceをインスタンス化して、呼び出したりして、Viewにポーイとかする感じ。

感想

めっちゃシンプル面白い。

ただ、Serviceめっちゃ大きくなりそう。

VirtualCastでツール作る方法を考えてみる【268日目】

注意

メモ書きです。

VirtualCastで外部からアイテムを送る方法

現状、config.jsonというファイルを作って、そこにVRMのモデル(自分用)と、
画像の表示を、URLを記述することで送り込むことしかできない。

URLだけ固定されているが、そこから送り込まれる画像に対しては固定されていない。

だから、画像に関してはPHPとかバックエンドで画像を変更して送ってやれば、
送られる静的画像は一緒だから、同一URLで異なったデータを送ることができる・・・

ただ、現状たぶんGETでしか情報送れないし、パラをつけようにも、動的にURLを変更できない・・・

とりあえずGASでなにかするとか作れるか・・・?

他の方法

放送主は、デスクトップを操作することができる。

なので、ブラウザで操作すると、画像を変えられるようなページを用意すれば、
ブラウザで画像を操作ということはできるかも。

ただ、そこそこ面倒・・・

その他

qiita.com

この記事の5番のURL変更が面倒だから、自動変換するページくらいは作ってもいいかも。

ただ、やるなら下の人のjson作成ツールに混ぜ込みたい感。

参考。今ツール作ってる人

らーめんのツール置き場

【PHP】cloneを使う時って?オブジェクトはそのままコピーできない?【267日目】

オブジェクトのコピーはできない?

$item = new Item();
$item->value = 1;

// コピー?
$item2 = $item;

$item2->value = 2;

この時、$itemと$item2の値はどうなるでしょう?

実は両方一緒

// 2
$item->value;
// 2
$item2->value;

あれ?なんで?

インスタンスの変数のコピーは、実際は参照を渡しているだけ

// コピー?
$item2 = $item;

ここが問題。

この$itemの中には、インスタンスの『参照』を持っている。

つまり、 new Item();の保存先。実際の値は違いますが、
0x4842ffaaみたいに、住所が保存されています。

だから、住所をコピーしたところで、住所の先の家が変わるわけではないので、
$itemと$item2の中身は実質一緒ってことになります。

だから、 $item2->value = 2;で、$itemも$item2も両方書き換わったわけですね。

じゃあどうするの?

$item2 = clone $item;

これでOK。 clone $itemで、同じ内容で、新しいオブジェクトを作ってくれる。
その参照先を$item2に保存するので、$itemと$item2は異なる値になる。

こういう時に、cloneを使うんですね。

参照先

PHP: オブジェクトのクローン作成 - Manual

【デザパタ自作】イミュータブルパターン(インスタンス内包対応)【266日目】

前の記事

willow710kut.hatenablog.com

作ったプログラム

github.com

この記事は?

イミュータブルパターンの概要を聞いて、自作しようってお話。

前回からの内容

setする時に、新しくインスタンスを返すのはいいけど、
インスタンス(a1)の中にインスタンスの参照(b)を持ってたら、
新しく作ったインスタンス(a2)の中のインスタンスの参照は(b)のままじゃない?

やったこと

immutable-advanceディレクトリ参照。

インスタンスの参照を受け取ったら、cloneしてから保存する。

    public function __construct($str, $num, $object)
    {
        $this->str = $str;
        $this->num = $num;
        $this->object = clone $object;
    }

これ、第三引数しかcloneしてなくない?

はい、そのとおりですううう

一旦、理解のために最低限のものを作った感じです。他は、数値や文字列なのでcloneしてないです。

でも、これですべてのインスタンスが、内包しているインスタンスに対して、別なインスタンスを持つように作れました。

参考記事

PHP: オブジェクトのクローン作成 - Manual

次回やること

イテレーターパターンやります!チョー有名なやつだね。

さて、まだコード一切書いてないので、これから試行錯誤していきます・・・!

while (hasNext) {
    $it->next();
}

で動かせるコードを頑張って書きます。

Chromeでリンクをクリック後のconsole.logを見る方法【265日目】

開発者がよく使う検証について。

Chromeを右クリックすると出てくる『検証』機能。

HTMLの構造や、ネットワークの通信、Javascriptの挙動とか調べるのに便利、
エンジニアには重宝されている機能ですが。

そのconsoleにJavascriptの結果などを出力してデバッグしようとしたときに、
リンクをクリック時に発生するプログラムは、
console.logをしてもデータが見れない!!!

どうしよう?

preserve logを押して、リンク飛んでもconsole残す

f:id:willow710kut:20180705214325p:plain

検証のconsoleを開き、歯車マークをクリック。

すると、preserve logというチェック項目があるのでクリック。

これによって、リンク先に飛んでも直前に見ていたページのconsoleが残ります。

これで、リンク飛ぶ瞬間の一瞬のconsoleを読むとかいう無茶なことしなくて良くなりますね!

【簡単Vtuber】Virtual Castで3D生放送のやりかた【264日目】

こんな感じに生放送できました

f:id:willow710kut:20180704234108p:plain

ちなみに、このあと、色んな人が放送に来ました

『この仮想空間の中にアバターで』

なかなかカオスで面白かったですよ。

なにが必要?

  1. 15万円くらいのハイスペックPC
  2. 5万円くらいの、Oculus RiftとかViveとかのPCにつなぐHMD(ヘッドマウントディスプレイ)
  3. 無料で配布されてるVirtual Cast

・・・1,2がクリアできれば簡単!ほんと!!!
私はボーナス使った(((

では、少しずつ手順を書きましょう。
ちなみに、0~4は他のVRアプリでも使う手順なので、
すでに終わってる方はすっ飛ばしてください。

0.Oculus RiftやViveの初期設定

そもそも、HMDが使えないといけないので、その初期設定。
ここはものによって違うので省略。

1.Steamのダウンロード

Steamをダウンロードしてきましょう。

2.Steamの登録

そこで、画面に従って登録をしましょう。

3.【重要】PCの再起動

ここで重要なのが、PCの再起動をしましょう。

Steam側に、今使っているHMDを認識させる必要があります。

4.SteamVRのダウンロード

その後、Steamを起動すると、SteamVR(無料)のダウンロードを促してきます。

おとなしくダウンロードしましょう。

5.VirtualCastのダウンロード

ここでようやくVirtualCastの出番です。

公式サイトからダウンロード。そして起動してみましょう。

この時なかなか起動しない人は、HMDをかぶる等で、SteamVRを起動させましょう。

6.放送の開始

f:id:willow710kut:20180704235032p:plain

起動するとこんな画面が出ます。

ニコニコで生放送できる方はニコニコ生放送を。
有料会員じゃない人は、Youtubeでチャンネルを作って、生放送できるようにしてみましょう。

この時、youtubeのURLには、『放送を見るときのページ』を書きましょう。
『放送のデータを送るURL』ではありません。

7.放送ツールを用意しよう

この時点で、画像のようなVR空間にいけます。

この画面をキャプチャして、放送をする感じです。なので、放送用のツールを用意します。
私は以下のOBSStudioという無料ツールを使いました。

obsproject.com

8.放送ツールを使って、画面をキャプチャして放送します。

放送ツールを使って、画面をキャプチャして放送します!

ね、簡単でしょ?

・・・あれ?結構手順あった・・・

実際は簡単

結構細かく説明しましたが、実際やってみると簡単です。

今回説明しなかったところとかも説明今度してみようかな?

では、良いばーちゃるらいふを!