🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

4433閲覧

Unity Webカメラの解像度を1920*1080にするとカクつく問題について

kaede0306

総合スコア7

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/12/10 08:48

前提・実現したいこと

Unityでカメラアプリを制作しています。
WebCamTextureを使用し、カメラを写しています。
しかし、プロジェクトを再生するとカメラ側のみカクついてしまいます。
原因が分かる方おられましたら、ご教授をお願い致します。

windows10標準搭載のカメラアプリを使用したところ、
解像度1920*1080でもぬるぬる動くことは確認済みです。

該当のソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5using UnityEngine.UI; 6 7public class WebCamera : MonoBehaviour 8{ 9 RawImage rawImage; 10 WebCamTexture webCamTexture; 11 12 // Use this for initialization 13 void Start() 14 { 15 // ウェブカメラの取得 16 WebCamDevice[] device = WebCamTexture.devices; 17 webCamTexture = new WebCamTexture(device[0].name, 1920, 1080, 30); 18 webCamTexture.Play(); 19 20 21 rawImage = GetComponent<RawImage>(); 22 rawImage.texture = webCamTexture; 23 } 24 25 // Update is called once per frame 26 void Update() 27 { 28 29 } 30}

試したこと

・unity側のfpsを30, 60指定
→unity側のfpsは30, 60だが、カメラはカクついたまま
・カメラ本体の設定で、オートフォーカスやホワイトバランスなどの機能をOFF
→変化なし
・解像度を960*540に指定
→それなりに動くようになったが、当然画質が落ちるためNG

補足情報(FW/ツールのバージョンなど)

・windows10
・Unity 2019.2.12
・Visual Studio 2019
・C#

・使用したwebカメラ
・C920N HD PRO ウェブカメラ
https://www.logicool.co.jp/ja-jp/product/hd-pro-webcam-c920n?crid=34
・BRIO ULTRA HD PRO WEBCAM
https://www.logicool.co.jp/ja-jp/product/brio

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pepperleaf

2019/12/12 11:17

PCの構成がありませんが、、 PCのスペックが足りてないだけではありませんか?
kaede0306

2019/12/13 00:38

質問ありがとうございます。 不足情報を追加します。 以下のPCスペックになります。 ・OS:windows 10 ・プロセッサ:Core i7-7700 3.60GHz ・メインメモリ:16GB ・ストレージ:SSD 250GB ・グラフィックボード:NVIDIA GeForce GTX 1060
pepperleaf

2019/12/13 12:21

そこそこって感じですね。ただ、この辺のスペックでの実用解像度はどれくらいか? すみません、ちょっと分からないです。
kaede0306

2019/12/16 00:33

実用解像度と解像度はどう異なるのでしょうか? 設定 > ディスプレイ > 解像度では、1920*1080(推奨)となっております。
pepperleaf

2019/12/16 13:05

推奨解像度以外では、表示がにじむとかの問題はありますが、遅いとかは関係ないと思います。あ、コメントに書いた実用解像度は、カメラをPCに繋ぐ場合のカメラ側の(実用)解像度の意味です。 一般的にはカメラからの転送処理が間に合ってない事が多いのですが、I/Fはどうなってるのでしょう?
YAmaGNZ

2019/12/18 00:22

カメラの詳細な仕様は分かりませんが、1080p30FPSとかってH.264とかでの転送での仕様だったりしませんかね? で、webCamTextureのほうがMJpegでの転送で指定FPSでの描画ができないとか・・・
kaede0306

2019/12/18 02:25 編集

コメントありがとうございます。 可能性としてはありうるかもしれません! ただ私も知識不足なところが多く、不明なのですが、webCamTexture以外の方法は存在するのでしょうか? unityとは関係なく、下記のような記事を見つけました。 こういった内容でしょうか? https://serenegiant.com/blog/?p=2932
YAmaGNZ

2019/12/18 03:12

私も詳しくないので、正直なところ分かりません。 一応動作確認をしてみました。 同一環境がないので、C525(https://www.logicool.co.jp/ja-jp/product/hd-webcam-c525n)で1280x720の入力画像 PCスペック CPU:i7-7700@3.6GHZ、メモリ8G、GPU:GeForceGT730 カメラはUSB3.0ポートに接続 OS:Windows10 Unity:2018.1.6f1 ソースは提示されているものから解像度指定を1280,720に変更しただけで他の処理は一切入っていない状態での実行 で試してみましたが特に画像がカクつくというのは見受けられませんでした。 描画を1920x1080のRawImageに出してみましたが、特に問題はなさそうでした。 とりあえずご参考までに
kaede0306

2019/12/18 06:01

動作確認ありがとうございます。 私もプロジェクトを他のPCで確認したのですが、やはりカメラの画像のみカクついてしまいました、、 ・OS:windows 10 ・プロセッサ:Core i7-7700 3.60GHz ・メインメモリ:8GB ・グラフィックボード無し 以下、制作したプロジェクトデータを共有致します。 https://www.tenpu.me/download/hbajiyhk2vzv8alvqzxf876azw084ugv
YAmaGNZ

2019/12/18 16:03

関係があるか分かりませんが、私の環境の場合、Logicoolのドライバの場合はカメラ接続はできているようなのですが画像が表示されませんでした。 Microsoftの標準ドライバですと画像が表示されましたのでそちらでのテストとなります。
kaede0306

2019/12/19 00:41 編集

ドライバの違いもあるんですね。 以上の可能性を念頭に入れ、再度調査していきます。 お知恵を貸していただきありがとうございました。
guest

回答1

0

ベストアンサー

ざっくりと概算してみました。

USB 3.0: 最大転送速度 5Gbps ==> 500Mbyte/sec.
(理論値/最大)

解像度: 1920x1080 => 約 2M pixel
(1pixel = 3byte として) ==> 6Mbyte

30fps => 180Mbyte/sec.
60fps => 360Mbyte/sec.

USB 3.0の最大転送速度(理論値)が 500Mbyte/sec. からすると、
60fps はほぼ、無理で、 30fpsでも厳しいのでは無いかと思いますが、
どうでしょう。

投稿2019/12/17 12:23

pepperleaf

総合スコア6385

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pepperleaf

2019/12/17 23:14

実際の転送速度は測ってみるしかないですが、理論値の1/10も出ればよいのでは? (推測) と思っています。 あ、圧縮が入れば、条件は緩くなりますが、圧縮率をあげれば、品質は劣化。
kaede0306

2019/12/18 01:12

ご回答ありがとうございます。 カメラの機能的に厳しいかもということですね。 こちらの内容を頭に入れつつ、今後動作の確認を行います。 ただ、UnityからwebCamTextureを使用するとかくかくしますが、 windows標準のカメラアプリを使用するとぬるぬる動作することが引っ掛かるところです、、、。
pepperleaf

2019/12/18 14:04

多分、実装の違いでしょう。 I/Fが同じでも画像の読み込みと、表示が独立に動作する場合と、シーケンシャルに動作する場合でも違います。また、アプリの動作目的にも依存があると思いますが、そこまでは詳しくないので、ご容赦を。
kaede0306

2019/12/19 00:51

現在も解決しておりませんが、これからもいろいろ実験していこうと思います。 お知恵を貸していただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問