質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.69%

Unity間でのライブ映像の共有

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 3,486

Unity-Boy

score 10

実現したいこと

Unityでの実現、カメラはTheta SをUSB接続で使用しています。(言語はC#)
WebCamTextureクラスでデバイスからWebカメラからライブストリーミングを取ってくるとします。
このライブストリーミングの映像(画像)の通信を行い、別PCのUnityでこのライブストリーミングを取得&表示する方法はありますか? 

気になること

Texture2DクラスのEncodeToPNGなどをつかってbyte型で通信を行おうとした。WebCamTexture → Texture2Dへの変更仕方がわからなかった。
WebCamTextureクラスでとってこれるものが映像本体ではなく、アドレス情報等だとしたら、一瞬の画像を取得するにはどうすればよいでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • MasahikoHirata

    2016/11/16 20:46

    画像をC#でというのが少しハードルが高い方が多いですね。まずは’一瞬の’画像データを一旦ファイルなどに保管を試されるのが良いのでは?(画像の取得より処理時間が短い)ファイルになれば後はデータのやり取りですから。

    キャンセル

回答 1

checkベストアンサー

0

WebCamTextureからTexture2Dにする方法は以下の通りです。
(メモリの浪費等、ひっかかるポイントが多いのでTexture2Dの作り方は別途詳しく調べることをオススメします)

WebCamTexture wc = new WebCamTexture (160, 120);    //サイズは適宜調整をしてください
wc.play();
Texture2D t = new Texture2D(wc.width, wc.height);
t.SetPixels(wc.GetPixels());
t.Apply();


ただ、取得出来るのは結局映像ではなく画像のデータなので、毎フレーム送信処理が必要になります。

テクスチャ生成だけでも結構負荷が高いはずなので、送信側はTexture2Dを介さずに
WebCamTextureのGetPixels(ピクセルの色配列)をそのまま通信(自力で文字列等にする)
→受信側のPCで(ピクセルの色配列に戻して)Texture2DのSetPixelsを行う
とすると多少はマシになるのではないかと思います。(現実的かは分かりませんが……)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/12/01 17:06

    返信遅くなり申し訳ありません。ご回答ありがとうございます。提示していただいた方法を試させていただきました。しかし、うまく一瞬の画像を取得することはできませんでした。今現在シーン上の球体のマテリアルとして貼りつけようとしていますが、球体の様子は実行前と実行中に変化が見られないという感じでした。何か別の案もしくはこの解決方法がありましたら、ご教示ください。

    キャンセル

  • 2016/12/01 17:25

    たびたびの返信申し訳ありません。いままでUpdata内で実行していましたが、コルーチンで数ms毎の実行に切り替えたら実現することができました。ありがとうございました。

    キャンセル

  • 2016/12/01 17:30

    失礼しました。実はUpdateの綴りが間違ってました...Update内で無事実行できました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.69%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る