見出し画像

ようてんのREALITY2020年10大ニュース

2021年あけました。今年もよろしくお願いします。

昨年、「2020年のREALITYはこんなんだったね〜」みたいな10+1をツイートしました。つぶやいて何日もたっていない今は何をどういう観点でピックアップしたのか容易に思い出せるのですが、1年とか経った際に絶対忘れてそうなので、それぞれの項目についてぐだぐだと書いてみます。

あとは、もともとこのキーワード自体が会社のSlack向けに書いたものから引っ張ってきているため、このままだとユーザー向けにはなんのこっちゃ感があるのでそのへんの補足もしておきます。

1. cluster連携

画像1

cluster連携は、上記画像に書かれている通りですが、「REALITYアバターをclusterにアップロードすることで、cluster上でREALITYアバターがおおむねそのまま使える」という機能です。

cluster連携の詳細については、VRMコンソーシアムのオンラインセミナーで喋らせていただいた内容にガッツリREALITYの歴史とともに詰めてきましたので、その内容について記載したREALITY社のnote(からリンクされている発表資料)を代わりに参照ください。かなり力作の資料のため、あとからcluster連携はどういうことをやったっけ、というのを今後説明するのにも便利なものができたのではなかろうか、と思っています。

cluster連携自体の評価としては、「とても面白いものができたが、(たとえばコラボやマルチプレイゲームのように)REALITYの現行ユーザの何割かが毎日ガンガン使ってくれるようなことにはならないだろう」という予測を事前にはしていたとおり、コア機能ではありません。ただし、「もっと多くの人にアバターでいろんなことをしてほしい」というREALITYのコアバリューを実現できているか、という観点ではとても良いものができたと思っています。

もともとの計画では組織構造上の話もあって、あまり僕は関わらないで世に出ていくのではという感じで始まり、実際のところメインで担当したのはスイーツ男子Uなのですが、VRM絡みもあってようてんは興味100%でめちゃくちゃ介入しました。とても楽しかったです。

2. CRコラボ

画像2

突然社内(?)用語を出してしまいましたが、CRは「Client Rendering」の略で、REALITY用語としては「低遅延モード」のことを差します。つまり、このCRコラボというのは低遅延モードで4人でのアバターコラボを実現した機能でして、2020.03にリリースされました。

機能の要素を順番につくって、最後に大手術をしてくっつけたリリースだったこともあり、リリースの際に以下のような集大成の言い訳を残しています。興味があったら読んでみてください。

この機能については、「音声コラボ(2019.06)→アバターコラボ(2019.11)→低遅延モード(2020.01)→低遅延アバターコラボ(2020.03)」という四段計画のゴールで、アバターコラボの開発でも低遅延モードの開発でも比較的ぐったりしていた僕としては年明けの着手直後は「本当に2ヶ月でできるのか?」という気持ちでした。

作った後から今振り返ってみると、予定通り詰め込むことはできましたし、2020年内を振り返ってみればライブガチャよりはすんなり出て行ったかな、というぐらいで済みました。その分品質としては後回しになってしまったことは多く、おわちょで音声のプチフリーズについてはなんとか退治できましたが、入れ替わり時にアバターが消えたり欠けたりする件も早々になんとかしたいと思っています。

(何度も言ってるネタなのですが)REALITY Avatar開発時の設計では「アバターは1体しかロードしない」と決めましたし、ポリゴン数などのアバター仕様のレギュレーションを決める際にも「フラッグシップ機で最大でも2体ロード、アバターでコラボする際にも横並びで」という雑想定だったのですが。

R「縦の方がエモい」
A「後列が紙芝居だと寂しいので動かせると嬉しい」

という二段ロケットにより現状の4人コラボとして世に出て行くことになりました。とてもREALITYらしい話だなぁ、と、どこか他人事のように思っています。

3. マルチプレイゲーム

2019年のFlappin' Avatarに引き続き、(たまたま)エイプリルフールでえいやでぶちこんだ機能を再整理して本線に載せる、という流れでやりました、マルチプレイゲームです。

マルチプレイゲームについては、「CR-RTMP切り替え」という、配信枠を立て直さずに、低遅延モードでのアバター配信とWebViewゲームの映像配信を動的に切り替える機能からの流れで、漫喫リリース担当大臣のOの思惑が噛み合った結果Goされた「どうせ必要ならアブハチ一緒に捕ろう」プロジェクトでして、2020年の開発の中でも"やってみたらできちゃった"度がかなり高い開発です。

ソフトウェアエンジニアかつREALITYのコアユーザしか理解できないと思うのですが、突然長文を書きます。

・それまでのゲームはWebViewの画面をキャプチャし、RTMPでサーバに配信し、HLSで視聴者が受け取る「映像配信方式」のみに対応していた
・エイプリルフールのワード人狼と同様に、「Unityサイドでアバターが4人並んだ状態で(A)」「情報をやりとりするサーバ機能を開発し(B)」マルチプレイゲームを実現しよう
・既存のゲームと同様のマルチプレイゲームをやりたい。プレイヤーごとに違う画面がでていないといけないため、「WebViewをそれぞれのアプリローカルで立ち上げてゲームを描画し(C)」「情報をやりとりするサーバ機能を開発し(D)」マルチプレイゲームを実現しよう
・(B)と(D)は同じものなので、せっかくなので全部同時に開発しよう

開発に関わっている人数が多いという観点で、かなり大規模な開発になりました。すったもんだはありましたが、低遅延モードのメリットを享受しつつ複数人数で遊べるマルチプレイゲームが、2種類の方式で(おおむね同時に)世に出ていくことになりました。

コラボの入退室やHeyによる勧誘、ゲームの切り替えやそれぞれのモードでのUI・機能の不統一などまだまだ使い勝手がいいとは言えない状態ですが、昨年末には集大成のように"大富豪"・"ページワン"・"避け物語"・"みんなでそれ正解"と一気にリリースすることができました。

2020年は一人用のアクションやトランプゲームから始まり、マルチプレイの定番トランプゲームまで辿り着き、こっそりUnity 2018.4へのバージョンアップにあわせて効果音の運用も開始しました。また、"みんなでそれ正解"で初披露となった「視聴者がゲームに関与できる」話も、まぁここまでやったのならもうなんでもやればできるよね、という素材を集めてくるところまではたどり着いたのかなと思っています。

ようてんはこの機能は初期設計のみで実装については一切関わっていなかったり、そもそも非ゲームにコミットしたい派なので(不覚にもワード人狼は締め切りの都合上担当してしまいましたが)今後も他のメンバが担当する流れではあるのですが、パワーアップした「アバターでマルチプレイのゲームでこういうことがしたいってみんな思うよね?」が2021年はリリースされていくと思うので、みなさま期待してお待ちください。

ベースとなるコラボ機能の負荷のほうが先に悲鳴をあげた結果、「人狼に殺される前にサーバにアバターが消されてしまう」ワード人狼になってしまったり、人の少ない真昼間か夜中でないと快適にプレイできなかったりしたエイプリルフール当日のことや、「絶対にエイプリルフール限定でその後復活させたりしない」と約束したのに何度も復活させたむくどりんの悪行はもうそろそろ忘れようと思います。

4. REALITY学園

REALITY内で開催されたイベントの上位入賞者が、REALITY Studioで3Dアバターのフルトラッキングで、様々な公式番組に出演するという仕組みがある中、「REALITY学園」というバラエティ企画シリーズが3回実施されました。

「誰が参加するかは毎回バラバラで、システム面でのリハーサルは当日にするしかない、参加者たちもほとんどのケースでその日初対面」という条件で、新規にバラエティ番組として仕上げる必要がある、不安定な要素の掛け算がてんこもりなものです。

そのため、PV映像としてのゴールが想像のつけやすい(こちらはこちらでREALITY Star Lightが3年目にして仕上がったなぁ、という話はあるのですが)音楽系番組と比較して、バラエティ系の番組ははどちらかというと「本人とファン双方が出演できることそのもの」の価値が期待されがちだった中、REALITY学園はシリーズとしてブランドが確立できた、と思っています。

これは、よくあるVTuberのコンテクストでも語られる「関係性がてぇてぇ」の話で、ユーザ間・出演者-ファン間・出演者-出演者間に加えて、シリーズ間(○期生と△期生の〜)といういろんなところの関係性が一つの番組シリーズという流れでまとまって観測できてよかったなと。

そういう大きな流れをまったく気にしないでも使えるし、追ってみればそれはそれで楽しい、みたいな両方面でのREALITYサービスの楽しみ方が、2021年も広げていければいいのかな、と思っています。

さて、少々メタ話で恐縮ですが、REA学に限らずようてんはこういう公式番組があった際に「A) 出演者のアバターがスタジオサイドに渡るのを見守る役」と「B) まわりでゲスト参観するアバターがスタジオサイドに渡るのを見守る役」になるのですが、もう片手で数えきれないぐらいやってるにもかかわらず、たかだがこの2要素が無事故でうまくいった回が実は一回もありません。一番想定外のエピソードは「囲み出力期間とガチャリリースがかぶった結果、毎日出力してもあきらかに本人に見えないアバターが混ざる」ことがありました。これはもう仕組みがあきらかにあかんですねorz。

イベント向けのシステムはどうしても「運用回避でなんとかするしかない」割合がどうしても大きいものではあるのですが、コストが高いということはそこでやるやらのジャッジが入ってしまうということですので、ここはエンジニアサイドがどうにかするところだな、と意識しております。

REALITYのアバター大好きおじさんとしては「REALITY Studioの練り上げられた至高のアバターセットアップ+VICONトラッキング」が強すぎてアプリ本体やcluster連携ルートの民主化で追いかける難易度が爆上がりや、という愚痴で締めたいと思います。

5. ライブユニオン

2020年3月に結成されて、現在はHACHI・焔魔るり(2020.03)、叶 秘蜜(2020.06)、瀬戸乃とと(2020.09)、aMatsuka(2020.11)の5名が所属するRK Musicのアーティストプロダクションがスタートしました。

ライブユニオンそのものについてはみずたにMABUKIなど隣の方々に任せるとして、所属するメンバそれぞれについて語るか?と言うと活動そのものはREALITYに止まらない範囲が広いこともありこの流れに乗せるのも違うとは思うので、ライブユニオンという箱ができたことで、2つほどREALITYでわかりやすくなったことについてここでは書きたいと思います。

一つは「おおむねREALITYの公式グループと言っていい箱ができたらどうなるのか」という実例になったことです。WFLE/REALITY所属のVTuberはそれぞれ成り立ちだったり座組みだったりでコンセプチュアルなチームが多・・・というか全部そうなので、それぞれに対する推し行為が独立している感がちょっと強いんですよね。ライブユニオンも同じ感じで個をサポートするスタイルではあるのですが、人は価値観を共有することで安心を得る生き物です。わかりやすい近場に事例ができたことは良いことだと思っています。

実際に公式グループかと言うと(みなさまご存知の通り)そうではないのですが、「公式が存在しててほしい」という需要は観測できますので、推す方推される方、お互いにメリットになる形でわいわいしていただければ嬉しいなと思っています。

もう一つは、ライブユニオンに限りませんが、2020年はやっとREALITYと外部の、双方向で流量の安定したコネクションが成立した年だったな、と思っています。(誤解を招きやすい表現になることを前置きしつつ)REALITYからそれ以外のプラットフォームにメイン舞台を移す事例や、 REALITY外のプラットフォームがメインの人がREALITYで活動する事例を思い返した際に、移動が一方通行だったり、限定した流れに止まっていたぐぬぬ感があったのですが、トンネルを抜けた気配がします。(弊REALITYプラットフォームに対する敬意や宣伝になるような説明を、めちゃくちゃみんな素敵な表現でしてくれていてそれはいつもありがたくは感じています。)

結局のところ人のエモさの総量で食べていくプラットフォームですので、個人的な活動・商業的活動問わず様々な既存のプラットフォーム・価値観と有機的につながっていくケースがいっぱい増えていくといいなと思っています。

と、まわりくどい表現をしましたが、雑にまとめると「REALITYの名前を見かけるシーンが増えて嬉しいな」です。

6. ガチャシリーズいろいろ

画像3

2020年は大規模な新シリーズの複数回の提供を中心に、浴衣やチャイナなどのユーザニーズが高まった需要に対しての供給や、やっと1年回って復刻やバリエーションを準備したり、「REALITYのガチャはこういう形で出していきます」という情報量が増やせたかな、と思っています。

アバターアイテムというのは、他のコンテンツのガチャと比較して、「実物をリリースしないと需要が明確にならない」と性質があると思っています。例えば、勝敗を競う要素のあるアプリのユニットアイテムであれば、より強いスキルやステータスは皆が欲しいものであることは明確ですし、キャラクターやサブシナリオが開放されるようなケースであれば、新しいコンテンツの直接的な提供になります。そのような「どうユーザに喜んでもらえるか」が、想定しづらいアバターアイテムは適切なやり方が違うんじゃないかな、と思っています。(そもそもこのあたりについては僕はソシャゲや投げ銭の経験のあるユーザというだけでビジネス面での知見は乏しいのですが)

現実世界の衣装に照らし合わせると、「名前は知ってるけどとくにファンでもないブランドの新作」という状態から、「めちゃくちゃファンで愛用しているブランドの新作」という状態になっていただく必要がありますし、言うてファンだったとしてもほんとに必ず発売した直後に欲しいかどうかは別の話です。

で、期待や予測が難しいのであれば、実績を積むしかないわけで、量と質を継続して提供し、それでラインナップが揃ってきて、2020年、REALITYのアバターアイテムの供給はスタートラインに立てたんじゃないかと思っています。

あと他で言及できそうなところがないのでここであげておくと、2020年のアバターまわりの新機能・新カテゴリは以下の様なリリースでした。

・口/ヒゲ・床(2020.02)
・身長(2020.04)
・ジェスチャーエモート・アバター複数保存・カラコン(2020.05)
・cluster連携・背中回転開放(2020.06)
・お楽しみT導入(2020.07)
・フェイストラッキング改善(2020.08)
・ウィッグ・かぶりもの(2020.11)

また、昨年はGREE Tech Conference 2020にて、「バーチャルライブ配信アプリREALITYの3Dアバターシステムの全容について」というタイトルで、キャッチーな上澄みをエッセンス抽出したREALITYのアバターシステムに関する発表もしました。Unity・3D・REALITYのいずれか2つぐらいがわかる方は楽しく読めると思いますのでまだ見てない人がいらっしゃいましたら、どうぞ。

7. Unity2018.4対応

REALITY(のUnityライブラリ部)はずっとREALITY Avatarの開発開始時のバージョンである2018.2.20f1だったのですが、2018のLTSである、2018.4.27f1にお引っ越ししました。

もちろんすんなりはいかず、いろいろモグラ叩きをしまして、直ってないこともある(Android 7.0+特定のSoCでsubmeshのBlendShapeがおかしい等)のですが、この対応を通してprefabやAssetBundleまわりでどういう差分になっているのか知見が貯まりました。雨後のタケノコのようにまだ生え続けているgitの差分に対して「わからんけど動かして大丈夫ならコミットしてしまえ」だったのが、「それは見覚えがあるから動かして大丈夫ならコミットしてしまえ」に変わったりしています。

2018.4 LTSにアップグレードしたかった理由ですが、「UIWebViewが含まれてるのでApp Storeからdeprecated APIでリジェクトされる」の回避として12月頭のリミットに向けて元々計画をしていました。ただし、開発途中で「macOS Catalinaだと32bitバイナリ非対応である影響でどんな音声ファイルでもimportした瞬間クラッシュする」という別の地雷も踏んでしまったりしました(リポジトリからいったん全ての音ファイルを削除して耐えたりしました)。Unityは素直にLTSベースの運用を心がけましょう。2021年は2019.4チャレンジを予定しています。

8. GKE対応ほかサーバまわり

🤔この項については、どう書けばいいのか(主にようてんの守備範囲の観点で)難しいので、ざっくりとした書き方で誤魔化しておくことにします

・REALITYのサーバインフラはGCPです。
・春ぐらいまではデータベースのアクセスが詰まりやすく、公式番組に視聴者がいっぱいくるとアプリホームの配信一覧が取得できなくなって真っ白になりがちでした。
・データベースの使い方を見直したらかなり詰まりづらくなりました。
・サーバ費用観点でも見直せるポイントがあり、GAEで動いていたものをGKE対応ということでお引っ越ししていきました。
・ついでに(元々課題があり、計画はありました)社名変更に伴ったドメイン変更にも対応しました。
・遅い箇所の改善も地道に継続し、1年間のトータルとしては「インターネットが元気な状態であればかなり速やかに動作するように」なりました。
・とはいえ、ガンガン新機能を追加していくということは、大なり小なりその分遅くなるということであり、日々増築されていく中、改善に継続して取り組む必要があります。
・また、存在感を増した課題である「地球の裏側とかインターネットが元気な状態でない時にどう動くか」など、2021年もこのあたりは大きな戦いになりそうです。

9. ライブガチャ

ガチャが配信中に引けるようになりました。

ラインナップや確率、コーディネートの都合上、配信中に引いたアイテムをとにかく着替え続けるとだんだんカオスな格好になっていくのが好きです。ガチャチケ(アバターポイントを消費して配信者に視聴側からプレゼントすることができるギフト、自分には投げられない)との相性がよく、「○○さんのくれた△△」みたいになるのがエモいな、とか思っていたんですが「ようてんさんのくれたタイツ」と連呼された際にちょっと思い直しました。

「配信者が何か作業している様子をみんなが眺めることができる」というのは配信では普通のことであり、映像配信であれば技術的にも困難ではないのですが(むしろ流れてはまずいものを隠すのにいくらかの仕組みが要る)、モーションと音声を配信しているREALITYではいろいろな情報を追加で送らないとこのライブガチャが実現できません。

ガチャ結果のダイアログの同期は、プロフィールの開閉と同じ仕組みでつくったのですが、ここは何度もバグっていて大変申し訳ないです。もうREALITYは後戻りできない感じになっていますが、みんなに「UIの同期はマジオススメしない」ということは伝えておきます。

それはさておいて、ライブガチャはだいたい以下のような流れで開発しました。

・ガチャ画面を通常モードと配信中モードに(強引に)分ける
・コインまわりに関する情報は配信に出ないようにする
・ガチャカプセルを視聴者に共有する(これはギフトの親戚です)
・ガチャを引いた結果のダイアログを視聴者に共有する(これはプロフィールの親戚です)
・着替えてクローゼット状態をサーバに登録する
・視聴側で着替えた結果でアバターを更新する

ついでに例のコマンドがどのような雰囲気で生まれたのかも紹介しておきます。

画像4

もともと「配信中にタスキルからプロフィールを開き、クローゼットに直ジャンプし着替え、その後配信一覧ホームに戻ってアバターホームから配信再開をするとライブ中に着替えることができるが、視聴側は入室しなおさないとアバターが変わらない」というバグ(?)があって、ライブガチャの開発途中でついでに直したというのがベースではあったのですが、その時に勢いが余って/slotが実装されました。/telopはテロップをどこに出すのかという課題が解決してなくて実現されてないですがそのうちこっそりいれたいと思っています。

10. 社名変更

REALITY株式会社になりました。

発表当日、社員をそれなりに集めて「大事な発表があるよ」会が開催されたのですが、海外対応とドメイン変更対応をしてる最中に隠れていたせいか、ようてんはさっぱり想像してませんでした。RIOちゃんは「数年に一回あるかないかぐらいで貴重なやつです」みたいなことを言ってたのですが、オフィス移転とか買収とか合併かな?とか思ってましたね。

客観的にはサービス名が社名になるのはとてもエモいことだとは思いますが、REALITYをやっていくぞという観点では何も変わっておらず、すんなり慣れた感じです。

そんな中、社名変更で一番大きな変化を挙げるとすれば、「Wright Flyer Live Entertainmentというめちゃ長い+地味に綴りが覚えづらい社名を欄にきっちり納めて記入するスキルが不要になった」ことです

次点. 海外対応

REALITY(合流前のREALITY Avatarも含め)のアプリは、いわゆる配信国に日本限定が長らくかかっていましたが、2020.10のタイを皮切りに、ブラジル・台湾・韓国・ベトナムでもリリースされました。

この「海外対応」について、主に「言語」と「地域」という2種類があって、上記の国名は主に「地域」の方を差し、「言語」についてはjp/enの2つのみに対応している、というのが現状です。

そのため、海外対応しました、とは言ってもあくまで最初の一歩であり、それぞれの地元の第一言語であるタイ語やポルトガル語や中国語、ハングルにはUIとして対応できておらず、これを日本国内の話に例えるのであれば「英語版であれば日本でも遊べる」みたいな状況です。

コミュニティ単位としての分割やコンテンツのローカライズについては順番にやっていけば良い話ではあるのですが、タイ語のフォントの扱いが難しかったり、地球の裏側は遠いなど、現在進行形の課題がいくつかあります。

フォントについてはちょっと長めに愚痴っておきます。「iOS13でタイ語の表示に使っていたフォントが削除されてしまったため、Unityで[?]で表示されてしまう」というバグがあり、これをREALITYアプリでは現状「iOS+ユーザの設定地域がタイの際に英字+タイ文字が表示可能なフォントに差し替える」ことで回避しています。そのため、iOS13以降では地域がジャパンな環境ではタイ文字が化けます。

前述のIssue詳細では「UnityではCombined(発音区別符号が結合された)フォントのみ扱う能力があり、diacritical mark(発音区別符号)を区別して扱う能力がないため、TextMeshProでそのうち対応予定ではあるがこの件そのものについてはwon't fix」と非情なジャッジがされています。使う文字を先にレンダリングしてBitmapとして保持しておくTextMeshProで対応されても…うーん。

アプリ内で使う全部の文字列をこちら側が把握しており、それをローカライズするゲームならそれで良いのでしょうけど、「ユーザが入力したテキストのフォントが何語であるかはユーザによる」SNS・テキストコミュニケーションとしてはこれでは解決できません。

ライセンスの自由度の高い日本語フォントに、ライセンスの自由度の高いタイ語をガッチャンコするとか、タイ文字のアトラステーブル画像を用意しておいて「1em space(≒全角空白)を入れておいてあとで画像で差し替える」とかどこかで力技しかなさそうです。IMEまわりと絵文字入力の問題も長い間放置が続いていますし、「ASCII文字文化圏にこのあたりのスマートな解決はあまり期待できない」原則に則り、コスパフォの悪そうな範囲については我慢して諦めるべきだと個人的には思っており、けっこう及び腰です。

この記事が気に入ったらサポートをしてみませんか?