ブックマーク / tech.mirrativ.stream (8)

  • AddressableによりWebGLゲームのクラッシュ率が改善した話 - Mirrativ Tech Blog

    こんにちは、ミラティブ菅谷です。MirrativのWebGL製ライブゲームにて、アセットのロード方法をインスペクタでの直接参照からAddressable Asset System(以下Addressable)に変更したことで、クラッシュ率が大幅に改善し、クラッシュせずにプレイが終了した「正常プレイ率」は98%まで改善しました。記事では、その具体的な手順と効果について紹介します。 課題背景 MirrativのライブゲームはWebGLで動いていますが、特にモバイルのWebGLではパフォーマンスに気をつける必要があります。今回改善を行ったプロジェクトではもともとAddressableを使用していませんでした。プロジェクトの初期リリース時点では大きな問題もなく運用できていましたが、アセットやリソースを追加していくにつれてクラッシュが多く見られるようになりました。ただし、WebGLではクラッシュし

    AddressableによりWebGLゲームのクラッシュ率が改善した話 - Mirrativ Tech Blog
    yarumato
    yarumato 2024/06/13
    “Unity製WebGLゲームにて、アセットのロード方法をインスペクタでの直接参照からAddressable Asset Systemに変更すると、クラッシュ低減。UnityのProfilerで確認するとインスペクタ参照データが未使用含めすべてメモリにロード”
  • iOSの音声読み上げ時のメモリ消費量について - Mirrativ Tech Blog

    こんにちはミラティブ2年目突入の福山です。 今回は、ユーザーが追加でインストール可能な拡張版の読み上げ音声がiOS 16で多くのメモリを消費するということがわかったので、ライブ配信用のアプリ拡張内で対策を行いました。 メモリ使用量50MB制限 MirrativのiOSアプリは、AVSpeechSynthesizerを使用してライブ配信時のコメントを読み上げる機能を提供しています。この機能は配信用のアプリ拡張であるBroadcast Upload Extension内で動作し、そのメモリ制限は50MBとなっています。もしもこの制限を少しでも超えると、アプリはクラッシュし、ライブ配信は終了してしまいます。したがって、メモリ使用量が増加する可能性のある要素に対しては無視するわけにはいきません。 画像1. Broadcast Upload Extensionのメモリ使用量 拡張版の音声を使用すると

    iOSの音声読み上げ時のメモリ消費量について - Mirrativ Tech Blog
    yarumato
    yarumato 2023/05/25
    “iOS 16で多くのメモリを消費するようになった iOS version Kyoko通常 Otoya通常 Kyoko拡張 Otoya拡張 iOS 15.7.1 6.6MB 6.2MB 6.8MB 6.5MB iOS 16.1.1 6.7MB 6.8MB 23.8MB 21.6MB iOS 16.5.0 14.7MB 14.9MB 32.1MB 29.9MB 表1. 読み上げ開始時に増えたメモリ使用量”
  • イヤホン配信を支える音のプログラミング〜Accelerate編〜 - Mirrativ Tech Blog

    こんにちは。shogo4405です。エントリーは、iOSエンジニア向けにイヤホン配信を支える音のプログラミング入門 - Mirrativ Tech BlogのiOS実装を紹介したいとおもいます。 稿では、音声信号処理の実装手法としてAppleが提供するAccelerateフレームワークの利用方法を解説しています。音声の信号処理は、AccelerateのvDSPの関連の関数を利用します。 はじめに Accelerateを導入した背景は、for文での実装では、Mirrativで扱うライブ配信の処理速度に合わず体験的に良くありませんでした。そこで、Accelerateを導入することで処理速度の向上に寄与し満足できる体験になったため採用にいたりました。*1 サンプルデータ せっかくなので自分で音声データを作ってみましょう。sin波によるド・レ・ミ・ファ・ソ・ラ・シ・ドのラ(440hz)の音デー

    イヤホン配信を支える音のプログラミング〜Accelerate編〜 - Mirrativ Tech Blog
    yarumato
    yarumato 2022/06/22
    “iOS実装 ある音源とある音源を合成したい 音量を大きく/小さくしたい”
  • Unityの描画パイプラインをURPに移行しました - Mirrativ Tech Blog

    こんにちは、ミラティブUnityエンジニアの牧野です。 ミラティブアプリの3Dアバター(エモモ)の描画にはUnityを利用しており、その描画パイプラインをURPに移行した内容を紹介していきます。 はじめに URP (Universal Render Pipeline) とは以下のような特徴を持った、描画パイプラインの公式テンプレートです。 モバイル端末や家庭用ゲーム機、PCなど幅広いプラットフォームに最適化されている ShaderGraphやPost-processingなど、アーティスト向けのワークフローを提供している learning.unity3d.jp 移行前はビルトインレンダーパイプラインでしたが、以下のような理由でURPに移行ことにしました。 Unity体のバージョンと独立して管理できるため、体更新によって見た目が影響を受けるのを抑えられる 内部実装が確認でき、必要に応じて

    Unityの描画パイプラインをURPに移行しました - Mirrativ Tech Blog
    yarumato
    yarumato 2022/04/11
    “スマホアプリの3Dアバターの描画にUnityを利用。移行前はビルトインレンダーパイプライン、以下の理由でURPに移行。描画関連のCPU負荷軽減に”
  • イヤホン配信を支える音のプログラミング入門 - Mirrativ Tech Blog

    こんにちわ。shogo4405です。エントリーは普段UI開発を行なっているクライアントエンジニア向けに、Mirrativのイヤホン配信を支えている音のプログラムの基礎を紹介していきたいといます。 音のプログラミングの概要を掴んでもらい、より詳しい部分については文献を調べるための参考になれば幸いです。 はじめに イヤホン配信の概要になります。Mirrativの配信はゲーム音源をマイクからの集音に頼っています。ユーザーが配信を行う際に、イヤホンを装着するとゲーム音源が配信にのらず視聴側としては物足りない配信になります。 これを解決する手段として、OS内部で再生中のゲーム音源をキャプチャーした音源。マイクから集音した音源。これらの音源を合成する方法があります。この手段をとることにより、イヤホンしながらでもゲーム音声を視聴者に届けることができるようになります。サービス上では、イヤホン配信と呼称し

    イヤホン配信を支える音のプログラミング入門 - Mirrativ Tech Blog
    yarumato
    yarumato 2021/12/09
    “ゲーム音源をキャプチャーした音源と、マイクから集音した音源を、合成することで、イヤホンしながらでもゲーム音声を視聴者に届けるイヤホン配信ができる。Android10から提供されているAPIを利用”
  • ゲームエンジニアから見たミラティブ - Mirrativ Tech Blog

    はじめに こんにちは、Unityエンジニアのおはぎ @ohayo_ohayo_ です。 前職ではスマホゲームの開発をしており、今年の5月にジョインして約半年が経ちました。 現在はMirrativ内でエモモというアバター部分の開発をしています。 スマホゲーム開発とは結構違うなあと思ったので、 その辺をカジュアルに書こうという試みです。 プロダクト 大前提としてMirrativはゲーム配信アプリであり、ゲームではありません。 Unityを使っている部分は主にエモモの制御部分であり、一つのシーンで完結しています。 そのシーンに様々な機能を追加していくため、大きな一つのシーンとなります。 機能としては着せ替え、アニメーション、Cinemachineを使った演出が主であり、 それぞれはゲーム開発でも使われることがある技術です。 体力や攻撃力などのパラメータがないため、 パラメータのほとんどが見た目に

    ゲームエンジニアから見たミラティブ - Mirrativ Tech Blog
    yarumato
    yarumato 2021/11/02
    “Mirrativはゲーム配信アプリ。Unityを使ってアバター部分の開発。3Dキャラを着せ替えるゲームに近い。Unityをライブラリとしてネイティブアプリに乗せる”
  • 1ms 以下のリアルタイムオブジェクト検出/画像処理を目指して Goの配信サーバサイドで通知ぼかしを実装してみたこと - Mirrativ Tech Blog

    こんにちは ハタ です。 今回は以前iOSのクライアントサイドで実装していた通知ぼかし機能をサーバサイド(配信サーバ)上に再実装した事を書きたいなと思います 今回はかなり内容を絞りに絞ったのですが、長くなってしまいました、、 目次機能があったのでつけてみました、読み飛ばして読みやすくなった(?)かもしれません 目次 目次 通知ぼかし機能とは サーバサイド通知ぼかし プロトタイプの実装 苦労の始まり その1 画像処理速度 苦労の始まり その2 データ量 さらなる計算量の削減を求めて さらなる最適化へ Halide の世界へ 簡単な halide の紹介 苦労の始まり その3 いざ リリース リリースその後 We are hiring! 通知ぼかし機能とは 通知ぼかし機能は、ミラティブ上での配信中に写り込んでしまったiOSの通知ダイアログをダイアログの中身を見えないようにぼかし処理をしてあげる

    1ms 以下のリアルタイムオブジェクト検出/画像処理を目指して Goの配信サーバサイドで通知ぼかしを実装してみたこと - Mirrativ Tech Blog
    yarumato
    yarumato 2021/09/10
    “通知ぼかしとは、配信中に写り込んだiOSの通知ダイアログの中身を見えないようにぼかし処理機能。クライアントで実装するとスマホ負荷大きく配信が異常終了するので機能削除。サーバ側で再実装。Goより早いhalideへ”
  • 【Unity】MirrativのEmbedding Unityを更新した話: 実践 Unity as a Library - Mirrativ Tech Blog

    こんにちは皆様いかがお過ごしでしょうか、10ヶ月ぶりくらいのポストになります、よこてです。今日は「Mirrativ の Unity は進化してるんだぞ」という記事を書いていきます。 tech.mirrativ.stream Mirrativ は Swift/Kotlin によるネイティブアプリですが、3D/アバター部分は Unity で実現しています。いわゆる embedding unity で、 Unity 2018.3 からは Unity as a Library として公式サポートされています。前回記事で触れたように、Unity をネイティブアプリに組み込むこと自体は公式サポート以前にもできて、ミラティブでは Unity 2018.2(2018年8月頃)から使っています。 Mirrativ では今 Unity 2019.4 LTS を使っていて、8月から Mirrativ の機能とし

    【Unity】MirrativのEmbedding Unityを更新した話: 実践 Unity as a Library - Mirrativ Tech Blog
    yarumato
    yarumato 2020/10/20
    “Swift/Kotlinによるネイティブアプリ。3D/アバター部分はUnityで実現。Unity をネイティブアプリに組み込むのはUnity as a LibraryとしてUnity 2018.3から公式サポート。制約:単純にビルド時間が伸びる。ネイティブ/Unity間の通信”
  • 1