VR

[Unity] パフォーマンス改善Tips

今回はUnityで処理負荷を軽減させるために効果があった方法をいくつか紹介したいと思います。

続きを読む

AndroidのカメラサポートライブラリのCameraXを使ってみました

Androidのカメラ制御は
カメラが対応している解像度の取得や
プレビュー解像度の設定、画面回転など
いくつか面倒なステップを踏む必要がありますが
それらを吸収してくれる公式ライブラリがCameraXです。

ライブラリの使用方法はGoogleのCameraXのドキュメントに記載されていますが、
実際に動かしてみたコードを以下に記載します。
MainActivityにカメラプレビューを表示するだけの機能を持つアプリです。

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.camera.core.CameraSelector
import androidx.camera.core.Preview
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.camera.view.PreviewView
import androidx.core.content.ContextCompat
import androidx.lifecycle.LifecycleOwner
import com.google.common.util.concurrent.ListenableFuture

class MainActivity : AppCompatActivity() {
    private lateinit var cameraProviderFuture: ListenableFuture<ProcessCameraProvider>
    private lateinit var previewView : PreviewView
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // PreviewView
        previewView = findViewById(R.id.cameraPreview)

        // CameraProvider リクエスト
        cameraProviderFuture = ProcessCameraProvider.getInstance(this)

        // タスクを実行するエグゼキューター
        val executor = ContextCompat.getMainExecutor(this)

        // リスナー用タスク
        val listenerRunnable = Runnable {
            // ListenableFutureからCameraProviderを取得
            val cameraProvider = cameraProviderFuture.get()
            // ライフサイクルにバインド -カメラの指定とプレビューの設定も行う
            bindToLifecycle(cameraProvider)
        }

        // CameraProvider リクエスト のリスナーをセット
        cameraProviderFuture.addListener(listenerRunnable, executor)
    }

    private fun bindToLifecycle(cameraProvider: ProcessCameraProvider)
    {
        // Previewを作成
        val preview : Preview = Preview.Builder().build()
        // 背面カメラを選択
        val cameraSelector : CameraSelector = CameraSelector.Builder()
            .requireLensFacing(CameraSelector.LENS_FACING_BACK)
            .build()
        // Previewとレイアウト上のPreviewViewを接続
        preview.setSurfaceProvider(previewView.surfaceProvider)

        // CameraProvider をライフサイクルにバインド
        val camera = cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview)
    }
}

Kotlinで書いているのもありますが、
ライブラリを使用しない時と比べて、ぐっと必要なコード量が減っています。

画像の撮影や、画像分析もライブラリに含まれているようです。

水曜担当:Tanaka



接続したAndroidの画面をパソコン上に表示するツールscrcpy

Androidにアプリをインストールせずに
パソコン上にAndroidの画面を表示し、操作することができる
scrcpyを紹介します。

続きを読む

ポートフォワーディングを使ってAndroidでlocalhostページを表示する

開発中のページでWebRTCを使ってAndroidのカメラの映像を
Javascriptで取得できるか確認を行いたい時があります。

続きを読む

Unity 2019以降のAndroidビルドの環境設定について

今回はUnity 2019以降でAndroidスマートフォンやAndroidベースのVRヘッドセットのアプリケーションのビルドをおこなうための環境設定の工数が大幅に簡略化されていた件について紹介したいと思います。

続きを読む


アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム