こんにちは、バックエンドエンジニアの平松です。今回は Mirrativ でのアバター(エモモ)を活用した機能開発事例を紹介します。 Mirrativ のエモモ Mirrativ にはエモモと呼ばれるUnityで動く独自の3Dアバター機能が存在します。 エモモはユーザが自身の好みに合わせて自由にカスタマイズ可能なアバターであり、 Mirrativ では定期的に開催しているイベントに合わせて様々なパーツや衣装などのカスタマイズ用のアイテムを多数リリースしています。 カスタマイズ用のアイテムの追加のみではなく、エモモを活用した様々な機能の開発・リリースも行っています。 本記事ではこれまで開発してきた機能について紹介していきたいと思います。 なお、エモモがどのようにして動いているのかの詳細については今回は割愛しますので、興味のある方はこちらの記事をご覧ください。 tech.mirrativ.str
Yahoo Japanの「新型コロナワクチン情報まとめ」を見ていたら、次の画像があった。 アストラゼネカの行に「有効性 〜76%」とあり(赤枠)、私はここが気になってしまった。 (出典:https://news.yahoo.co.jp/pages/20210122、閲覧:2021-07-02) これを見た人は、普通は「最大で76%」と解釈するだろう。日本語で「〜」は「数字の範囲」を示すのが一般的である。例えば共同通信社の『記者ハンドブック』でもその意味で使っている。範囲の右側だけに数字があるので「最大」という解釈になる。最大なのだから、有効性は10%かもしれないし60%かもしれない。 しかし日本語の「〜」によく似た英語の「~」(チルダ)には別の意味がある。「約」や「およそ」である。この意味を掲載している辞書は実は少ないのだが、たとえばMerriam-Websterの「tilde」には2bに
こんにちは。エンジニアのshogo4405です。ゲーム開発会社様より、iOSで画面収録またはミラティブで配信をすると、SEは鳴るが、BGMが消える場合がある。技術的な仕様について教えてくださいと連絡をいただく場合があります。 本エントリーでは、ミラティブの配信中にゲームのBGMが鳴らない現象について、ゲームアプリ側での回避方法の例をご紹介したいと思います。 はじめに ミラティブのライブ配信は、iOS11で導入されたReplayKitのAPIを利用して実現しています。iOS標準機能として画面収録と呼ばれています。画面収録の利用方法は、次の通りです。 [設定.app] → [コントロールセンター] → [コントロールを追加] → [画面収録]を追加する[画像1] コントロールセンターを開き、新規登場した ◉ マークを長押しする。[画像2] [写真] を選び。収録を開始する。 画面収録開始後に時
Go Conferenceは半年に1回行われるプログラミング言語Goに関するカンファレンスです。米内氏は、Goを使用するときにセキュリティを高める仕組み作りについて発表しました。 日々コードを書く中で起こり得るインセキュアなコード 米内貴志氏:米内です。今日は「Goをセキュアに書き進めるための『ガードレール』を整備しよう」という題で、組織としてGoを使うときにセキュリティを底上げするための仕組み作りについて話をしようと思います。よろしくお願いします。 まず簡単に自己紹介をさせてください。私は米内貴志と申します。株式会社Flatt Securityでセキュリティプロダクトの開発、今は特にeラーニング事業の開発をしています。社内でもけっこうGoを使っています。 もともとWebブラウザーとセキュリティが好きで、最近『Webブラウザセキュリティ』という本をラムダノートさんから出版しました。気になる
はじめに マイクロアドでインフラエンジニアをしている柏木です。 マイクロアドでは広告配信に高速なKVSであるRedisを使用しています。 Redisはシングルスレッドでの高速性、安定性を売りにしていました。しかし6.0でマルチスレッド機能であるThreded I/Oが追加されました。 広告配信で多用している、Redisを高速化できるのであれば積極的に導入したいので検証を行いました。 はじめに Threded I/Oとは シングルスレッドでのRedisの処理 マルチスレッドでのRedisの処理 io-threads io-threads-do-reads + io-threads 検証環境 OSの追加設定 今回の検証結果 前提条件 指標の取得方法について loopbackアドレスを利用した検証 実行CPUの指定 Redisの起動コマンド Redisのconfigについて 暖機運転 検証1:I
GitHubによるDockerコンテナレジストリ「GitHub Packages Container registry」が正式サービスに GitHubは、Dockerイメージの共有や公開ができるリポジトリサービス「GitHub Packages Container registry」が正式サービスとなったことを発表しました。 Container registry for GitHub Packages is now generally available! Check out how it can improve your development experience.https://t.co/qCe9DteR6d — GitHub (@github) June 21, 2021 GitHub Container Registryは、GitHubでソフトウェアパッケージを扱う機能である「G
こんにちは、Mirrativ iOS エンジニアのちぎらです。クラッシュが発生して、その原因が分からないととてもかなしい気持ちになります。このブログでも以前から触れているように、Mirrativ のクライアントアプリではエモモなどの表示に Unity を使用しています。今回は、Unity の Framework とその内部で発生したクラッシュ解析の取り組みについて紹介をしたいと思います。 隠されたクラッシュ情報 Mirrativ iOS アプリではクラッシュ情報の解析と集計に Firebase Crashlytics を使用しています。Bitcode を有効にしている場合、App Store Connect からダウンロードした dSYM ファイルを Firebase Crashlytics にアップロードすることによってクラッシュ情報の詳細が見えるようになります。しかし、dSYM ファイ
これは何 僕は開発作業をしているとき、PRをあげるまでの開発途中はwipコミットに変更を記録していき、最後にコミットを仕上げていくような作業をよくします。 初めからコミットを綺麗に書きながら開発ができれば良いのですが、 にあるようなコミットログを仕上げていこうと思うとどうしても最後にコミットログを整理したくなります。 この記事はこのようにgitを使うと綺麗なコミットログを作れるよ、というTipsです。 具体的にこういうコミットを作ると良いよ、みたいな話はこの記事ではしません。 僕はこのような工程でPRを出す前にコミットログを作っています。 git rebase -iで作業中のコミットを全て一つのコミットにsquashする git reset HEAD~で一度コミットを取り消す git add -pで作りたいコミットごとに変更をstageにあげていく コミットを作成する git rebase
(このnoteはstand.fm engineeringマガジンの記事です) stand.fm エンジニアの和田(@takahi5)です。 今回はReact Nativeアプリののパフォーマンス改善について書きたいと思います。主にレンダリング周りの改善です。 アプリを開発していてユーザーや社内のメンバーから「アプリが重い!」と言われたことはないでしょうか?僕はよくあります笑 今回はstand.fmのライブ配信機能で実施したパフォーマンス改善について、ボトルネックの特定からその改善まで、実例に触れながらご紹介したいと思います。 アプリが重い!?ただこの「アプリが重い!」にもいろいろパターンがあります。 - ボタンをタップしたときの反応が遅い - アニメーションがカクカクする - ローディングがなかなか終わらない - 起動に時間がかかるなどなど、一言で「重い」と言っても、詳しく聞いてみると色々
完全に『マトリックス』。衛星データからバーチャル空間に「世界」を自動生成するAIができた2021.06.03 16:0041,896 岡本玄介 ネオやモーフィアスのいた仮想空間が、マジで現実のものに。 日本の株式会社スペースデータが、人工衛星で撮影した膨大な地上観測データをAIに学習させ、3DCG技術でバーチャル世界に地球を複製するアルゴリズムを開発しています。 このAIは、地上の静止画像と標高データから、構造物を自動で検出・分類・構造化し、石や鉄や植物、それにガラスなどの材質も自動で再現することが可能という凄いもの。しかも! 誰でも無料で使えるよう配布されるのだそうです。 衛星データからバーチャル空間に世界を自動生成するAIを作ってみた(動画は東京の一部地域の再現)。これからAIに全世界の3Dモデルを作らせて、誰でも無料で使えるように配布していく。非営利での研究になるけど、マトリックスや
この記事は、著者の許可を得て配信しています。 Why programmers don’t write documentation 最近ではずっとコードのドキュメンテーションに関連した記事を書いていたので、当然、私のMediumのおすすめ記事には「開発者がドキュメントを書かない本当の理由」という記事が表示されるようになりました。この記事では、ドキュメントを書くための優れたツールがないことが、ソフトウェアエンジニアが自分の作業や判断をドキュメンテーションする意欲を失わせる最大の原因について書いています。 私は普段、特定の記事を批判したりはしませんが、この記事には怒りを覚えました。このライターは図解ツールについていくつかメリットに関して述べてはいますが、全体的に誤解を招くような内容になっており、この重要な問題をより分かりにくくさせています。2つの図解ツールを比較して、どちらも不十分なツールである
はじめに VPoP として弊社の製品全体を統括しております、岩田です。 弊社では以前から、自社製品が使用する通信方式の下回りとして QUIC を使用することができないか 、継続的に調査や検討を行ってきました。QUIC が HTTP/3 をメインターゲットとして最低限の仕様策定を進める方向になって以降、QUIC 検討に対する社内の熱量も多少減退してはいたものの、昨年の WebTransport 周辺の動きを受けて、再度勢いを取り戻しつつあります。 QUIC DATAGRAM は、QUIC を HTTP 向けの ベターTCP としてだけではなく、UDPベース であることを生かしたユースケースで利用できるようにするための追加仕様で、UDP Like な通信を導入することで QUIC の用途を映像伝送やゲームなどのリアルタイム通信に拡張しようとするもの です。QUIC DATAGRAM 自体は、提
Mirrativ Androidエンジニアのmorizoooです。今回はAndroidアプリをFluxにリアーキテクチャした話をします。 背景 Mirrativは2015年春頃に開発が始まり、もうすぐリリースから6周年を迎えようとしています。以前はアーキテクチャについてのルールが決まっておらず、個々人が思うがままコードを書いており、開発しているメンバーでさえ処理の流れが追えなくなっているような状況でした。そこで、まずは既存のコードの改善を行いました。詳しくは以下の記事をご覧ください。 tech.mirrativ.stream 既存コードを改善した後に、開発の指針としてFluxアーキテクチャを選定しました。 Fluxを選定した理由 状態がどこで更新されているのか分からなくなるという一番の課題が、Flux の導入によって解消できそうだった iOSはFluxで実装していくという話が出ており知見を
実は、上記ラッパーライブラリ自体は半年ほど前にできていたのですが、記事にする前に、 実際にそれなりの規模のゲームを作ってみて、「実用的にどうなのよ?」ということを確かめたかったです。 上記ゲームはSteamでの評判もよく、ぜひ遊んでみて欲しいのですが、システム的には「マップを歩きまわる」「会話する」「アイテムを集める」などといったそれなりの規模の機能が備わっております。 今回Phavuerを使ってそれくらいの規模のゲームを作ることできた、という点で、ライブラリとしては重要な実績になったかなと思っています。 ゲームについてもGithubでオープンソースで公開中です。 なぜVueでラッピングしたのか できるだけ皆さんにも共感を得られるように紹介していきたいと思います。 人気ゲームフレームワーク Phaser3 とは? Phaser3はJavaScriptベースのゲーム開発用フレームワークです。
こんにちは、Unityエンジニアの菅谷です。今回はMirrativのアバター(エモモ)の着せ替えについて解説します。Mirrativはゲーム配信のサービスではありますが、大きな特徴としてエモモがあります。エモモは2018年にリリースされ、ライブ配信のお供としてエモモが使われるようになりました。ユーザーは衣装やアクセサリーなどのエモモアイテムを組み合わせてエモモを着飾ることができます。エモモアイテムは主にイベントで追加されており、今では5000種類以上あります。 エモモの着せ替え エモモアイテムには以下の種類があります。 体型 体格や身長 顔のパーツ 髪型や目、口など 化粧や装飾 アイシャドウやフェイスペイントなど 服装 服や靴など アクセサリーや置物 カテゴリーは全部で30種類以上あり、肌や目などのエモモアイテムは色が変えられます。ユーザーはエモモアイテムを組み合わせたり、色を変えたりして
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く