2019年9月24日

REALITY Avatar1周年で何かする #Avatar1周年

今から1年ぐらい前の2018年9月28日、REALITY Avatarという、3Dアバターライブ配信アプリのTestFlight版のクローズドベータが開始されました。
REALITY/REALITY Avatarの正式リリース日というと諸説あるのですが、概ね関係各位の共通認識としてREALITY Avatarの誕生日は9月28日ということになっています。
そんなわけで2019年9月28日(土)は、せっかく休日ということもあって、いくらかぶっ続けで配信をしようかなと思っています。

以下、アナウンスツイート用文言

#REALITYAvatar1歳 ということで
2019.09.28(土)に、以下の2部構成で
長めの配信をしようと思っています。
2部ではコラボ凸待ち+マシュマロ食べをしようと思っており、
疑問質問なんでもマシュマロにいただけますでしょうか。

1部 16:00- 「REALITY Avatarおたおめ」
- 1年のアプデを覚えてる限り振り返ります
-- 12か月分アプデ何があったかリストを準備中です
- 全機能アプデはもちろん、ギフト・アバターアイテム
・ライブゲームとフェスまでは網羅しようと思っています

2部 20:00- 「いつものREALITYの話(多め)」
- コラボ凸待ち+マシュマロ枠です
- あまり引き出しにも自信がないため、以下のテンプレに沿って
各々短めでお願いしたいと思っています。
-- 1. お名前をどうぞ
-- 2. REALITYを始めたきっかけ
-- 3. 好きなアバターアイテム
-- 4. 好きなギフト
-- 5. REALITYかようてん宛に何かあればひとこと
- 凸者がいなければ適当にマシュマロを食べたり、
コメントを拾っていこうと思っています

↓↓↓疑問・質問・言いたいことがあれば以下のマシュマロにお願いします
https://marshmallow-qa.com/youten_redo?utm_medium=url_text&utm_source=promotion

2019年8月 4日

ドラゴンクエスト ユア・ストーリーを後で語るための要素リスト

よくある感じの話ではないですがネタバレを含みますご注意を。


↓↓↓ネタバレ注意↓↓↓

続きを読む "ドラゴンクエスト ユア・ストーリーを後で語るための要素リスト"

2019年5月26日

REALITY配信をPCでキャプチャしてOBS経由でYouTubeライブする方法

reality-obs.png

REALITY配信をPCでキャプチャして、ゲーム画面に重ねてYouTubeライブするというのを、試そうと思って忘れてたのをやりました。(とくに最近できるようになったわけではありません。)
具体的には以下のYouTube配信の様になります。

それでは、具体的な手順と補足です。OBSや各ツールの使い方については詳しく書かないので適当にググってください。Twitterで聞いてもらっても答えられるかもしれません。

◯配信中の画面キャプチャはAndroidの方が楽です

Androidでやってます。Snapdragon835以降など、比較的新しめの機種の際には、配信設定からフレーム数を「高(30fps)」にしておくとキャラがなめらかに動くのでオススメです。
iPhoneでは「REALITYの配信中の画面をキャプチャする」のが大変困難です。遅延ガン無視で、視聴アプリやWeb視聴ルートか(これはアーカイブ目的などであれば価値があると思います)、アバターだけを生かす目的で「配信しないでホーム画面をキャプチャする」のどちらかでしかできないと思われます。

◯Android→PCはVysor

Chromeアプリである、Androidリモートデバッグ画面キャプチャアプリであるVysorを使っています。

Vysor
https://chrome.google.com/webstore/detail/vysor/gidgenkbbabolejbgbpnhbimgjbffefm

僕は開発目的でVysorはProを買ってしまっているので、無料版だと画質や広告が挟まるのが煩わしいかもしれません。ApowerMirrorという別アプリもあるのでそちらの方が良いかもしれません。

ApowerMirror
https://www.apowersoft.jp/phone-mirror

どちらのアプリもAndroidのデバッグ用の仕組みであるadb(Android Debug Bridge)を使っているので、USBデバッグをONにする必要があります。
無線でも可能ですがUSBケーブル直結の方が色々安定しますので有線で。

◯Vysor→OBSは画面(デスクトップ)キャプチャ

ウィンドウキャプチャだとうまくいかなかったので画面キャプチャにクロマキーフィルタを設定しています。
デフォルト設定だとコメントが見えづらくなってしまうので、類似性あたりの数値をいじってみてください。
また、それでもコメントのサイズが小さく見辛かったので力技で2つ画面キャプチャして、コメントエリアを大きめに貼っています。

◯OBS→YouTubeについては略

◯SFC→PC

スーファミのアナログキャプチャだとどうも入力遅延が厳しかったので、HDMI出力つきの互換機とHDMIキャプチャを買いました。

SFC互換機、USBでのHDMIキャプチャともに、カートリッジタイトルや機器の相性はそれなりにありそうなので「どれがオススメ!」というのはここでは述べないでおきます。

ただし、色々なレビューを見回っている限り、昔は2,3万円かけないとまともなあたりが引けなかったHDMIキャプチャの分野ですが、どうも最近は1万円ぐらいでもなんとかなる模様です。グッドラック。

2019年2月20日

REALITYメモ:2019-07-21更新

REALITYメモ:2019-07-21 もうすぐ一周年(?)なので更新。

同じ質問をされた際に毎回ニュアンスが変わってしまってもよくないので、精度を高める目的でメモを書いておきます。
(リアルタイムに口頭で考えながら喋ってると、表現として違う感じになってしまう揺れはありうると思うので。)

公式見解という体ではないので実際のサービスがどうなるのかは少し違ったり、変わってしまうことはあると思いますが、中の人として少なくとも自分はこうやっています・こう考えています、という内容です。

【FAQ(内容が古くなったら順次見直します)】
Q. 手足もトラッキングしたい
A.
・機械学習系など、いくらかできる子が世間ではいたりするので、順番に試したい
・マシンパワーの観点でさらにデバイスをいじめることになってしまいがちだが、「いろいろ未来のことをチャレンジするチーム」みたいなのがあって、やるとかやらないとかそういう話が一応ある
・ジェスチャ操作からの固定モーション再生とか、タッチ座標に対するIKで手が追従していくとかの方が使いやすく先にできるのでは、みたいなことを思っている

Q. ボイチェンしたい
・低遅延・高品質を狙うとマシンパワーの観点でいろいろ大変、ローカルは単純なプライバシー保護エフェクト級なら、みたいな気配
・「転声こえうらない(β)」がリリースされました、こちらはGREE VR Studio Labチームですが、もちろん将来的にはREALITYでネットワーク上でやれればいいね、という話はしている
・あとはオンラインソリューションは負荷観点では現実味があるがBGM等課題はある、無理にできていないことを「誰でも美少女声!」みたいにゴリ押しするのはよくないと個人では思っている
・既存のソリューションをお使いいただければわかる通り中の人の相性と努力が必要なあたりも決して低くない山
・そもそもステレオとかUSB Audioとか音まわりについてイマイチな点をなんとかしたい

Q. アバターパーツ◯◯ほしい
A.
・企画やアート側に対してお伝えはできるが、単純なアセットボリュームについては(僕に期待をもって)聞かれても(力になれなさそう観点で)ちょっと申し訳なく思っていたりする
・僕個人としては特殊なコスプレ服よりは着れる人の多そうな、スタイリッシュな私服の充足をがんばってほしいと思っている
・着せ替えシステムの3Dパーツは、ふつうに3Dモデリングをするよりシステマティックな観点で違うところを気にしないといけないため、なんだかんだ言ってそのあたりでアートチームはめっさ苦労しており、エンジニアとしてはもう少しどうにかしないといけなかったりする
・エンジニアとして便利にしてる速度より新たな仕組みのパーツが増える速度の方がはやくてやっぱりワタワタしている。なおクローゼットまわりやパーツの選択の安定性については完全に僕がぽんこつなせいなので申し訳ない、どうにかがんばる。

Q. コラボしたい
A.
・音声コラボ機能のBetaとしてAndroid限定でホストになれる形で先にリリースした、iOSは鋭意開発中なのでもう少しおまちください
・力技で繋いでるアーキテクチャ上の問題もあり、ネットワークの不安定な3人以上では厳しいケースがあるなど今後まだまだブラッシュアップさせていく必要はあるはず

Q. アーカイブしたい
A.
・「あまり優先度が上げられてなくてごめんなさい」話その1。
・FES2の際にWeb URL込みのshareとブラウザ画面でのチャット重畳表示を実装に対応して、個人でアレコレする分には少々やりやすくなったせいか、若干声が小さくなった印象はある(あきらめられてしまったか)

Q. 画質・音質・ギガ消費
A.
・「あまり優先度が(略」話その2。
・HLS遅延については、「公式:歌が途中できれたりしないように、遅延してでも配信が安定すべき」と「視聴:ユーザネットワーク環境差はしょうがないとして、コミュニケーションがしやすいように、低遅延であるべき」で、そもそも傾向が違ったのもあったりして順番にチャレンジ中。こっそりマシになったりするかも。
・根本的なギガ消費をどうにかする音声+モーション配信(IRIAMやナカノヒトライブはこちら)ももちろんやるべき選択肢にはあがっている。(が、最近コラボやゲーム配信が機能として増えたので複雑度が増している)

Q. iPad(略
A.
・ 「あまり優先度が(略」話その3。
・僕はiPad Proの新しい子がせっかくTrueDepth搭載なのでそちらを優先したいと思っているが、需要に対する考えがそれぞれ人によって違う気配
・ReplayKitの切り取り範囲がもっと融通が効けば問題ないのに・・・とAppleのせいにして逃げ切りたいと思っている

Q. 配信・アバター機能の安定性が悪い
・iOSの「マイクが正常に動作していません(略」については、内部的にはマイクキャプチャも画面キャプチャも両方止まっていて、単に音声に異常があった際の検出の方が先に出ている。「再起動をすると直る」ケースと、「数分間待つと直る」ケースがあって、どちらかを区別する方法がないため、結果「さしあたり再起動してみてその後ダメだったら数分待つ」が現状ユーザが可能な対応になってしまっている。特定のiOSバージョン"以降"で確率が跳ね上がるのを確認できてるのでiOSのアプデにより修正されたりしないか期待しているが、そもそもキャプチャの仕方を根本から変えないと解決しない気配があってあまりきちんと対応が進められてなくて大変申し訳ない。「アプリ再起動しても直らない」時点でOS側が流石にアレやろ、と言いたいけど言ってもとくに何かが改善するわけではない。つらい。ReplayKit(v1, アプリ内キャプチャ)はマジオススメしない。
・Androidで特定機種で「真っ黒画しか送れない」現象があって、これはハードウェアエンコードがなぜかコケる機種があることがわかっていて、エラー発生時にソフトウェアエンコードに切り替える処理を入れることで回避できるケースがある。これもOSの標準APIがすっこけるのはカンベンして欲しいが、「動画のエンコード」処理としてディスプレイ解像度(画面録画)かカメラ解像度(ビデオ撮影)以外の改造度で元気に動くことをテストしているのが稀というのも気持ちはわかる。気持ちはわかるがやっぱりカンベンしてほしい。

【登場人物】

<ようてん>
このメモを書いたひと。主にREALITYの3Dキャラクター組み立て部分を担当しているソフトウェアエンジニア。最近は1年前に勢いで自分で埋めた地雷をよく踏んでいる。
<DJ RIO>
社長。チャックをしめられるのでセーフなのかは若干疑わしいと思っているし、水着は完全にずるい。
<いそまな>
いそら真実。まみではなくてまなみ。ほぼ毎日顔をあわせる本当に同僚なのだが、職種を明かしてないので業務上のネタが喋れない。「いそまなに逆らったらまずいですか?」と聞くとたぶん社員の9割からYESが帰ってくると思う。
<S>
同期入社の頼れるエンジニア。主な守備範囲はiOSマンだけどだいたいなんでもできる。まれによく酒で記憶をなくしていたが最近落ち着いた。
<F>
AvatarのAndroid対応でfirebase ML Kitなどをまとめて倒しきったり、AssetBundleがなぜか動くようになってたりする実績のあるつよつよエンジニア。働き方のフリーダム度に定評があり、時々火を吹いて下々の人を怖がらせて帰っていくので僕はドラゴンと呼んでいる。
<A>
Unity 3Dまわりやってみたいですマンとして増えた若者。ギフトとライブまわりを全部おしつけた。信頼のおけるミク廃。
<A>
アバターとかライブ・ギフトとかAvatarアプリ側が主な守備範囲のプランナー。僕以上のREALITYヘビーユーザで頼もしい。はじめはもっといい人だと思っていたが性格が豪胆でずる賢いことが分かっている。
<K>
いそまなのプロデューサーだったが、いそまなはだいぶ(勝手に)飛び立って最近はプロデュースはとくにしていないようにみえる。元々視聴専用アプリとしてのREALITYと公式配信側を見ていたが、アプリ側の仕事に戻ってきたプランナー。苦労体質のためいつも大変そうにしている。
<Saka-niki>
KMNZ他のプロデューサー。この並びではTwitterアカウントもあって露出も多く、たまにREALITYで配信もしているので詳細はそちらを参照。
<N>
マグロナちゃんの借金取り。VTuberの生放送を24時間追いかけている。忙しくなってだいぶ諦めた僕とは違うできる美少女。

【REALITY/WFLE用語】
<視聴アプリ/配信アプリ>
REALITYでは視聴専用のREALITYというアプリと、Avatarで配信が可能なREALITY Avatarという2つのアプリに別れていたが、REALITYアプリに統合されてくっついた。
<公式配信/一般(アバター)配信>
REALITYでは公式配信者が行う配信を公式配信、REALITY Avatarアプリを使った配信を一般配信、またはアバター配信と呼んでいたが、"一般"という単語もわけがわからないし今はREALITYアプリの通常の配信があって、それとは別に公式配信枠があるという形に落ち着いた。
ギフトのお知らせなど、歴史的にどっちがどっちを差してるのかややこしいのは残っている。
<EN>
エンジニアのこと。ようてんはプラットフォーム事業部というところに所属しているエンジニアで、他職種としてプランナー(企画)とかアートとかがいる。
公式配信を運用しているスタジオやプロダクションサイドとか、RK Musicなどをドライブしているとこなどいろんな人がいっぱいわいわいしている。

2018年11月26日

某wantedly補足

wantedly.jpg

REALITY AvatarのエンジニアがVTuberになって"伝説の7時間配信"をした理由を聞いてみた。 | Wright Flyer Studios
https://www.wantedly.com/companies/wrightflyer/post_articles/147498

掲載されてしまいました。
正月に帰省する際のネタとして両親に見せてこようかと思っています。

続きを読む "某wantedly補足"

2018年11月25日

REALITY Avatarよもやま 2018年秋号

avatar-201811.jpg
最近は褐色金髪です。

Avatarの放送などで答えたりしている話を非公式なアレですがまとめておきます。

○ロードマップの話

実のところ、公的に出ているのは「iOS非X系とAndroid対応」、「アバターバリエーション拡充の中で男性アバター対応」ぐらいですかね・・・?
おそらくみんなが欲しいと思っている機能は自分たちも欲しいと思っており、「完全に盲点だった今から検討します!」みたいなのはあまりないんじゃないかな、という認識ですが、配信なりTwitterなり、社長のマシュマロとか正式なCS問い合わせとか、各ルートで挙げていただけるとたすかります。


○視聴/配信と一般/公式の話

少々わかりづらいのですが、視聴専用のREALITY無印を「視聴アプリ」、ライブ配信ができるREALITY Avatarを「配信アプリ」と内部では呼んでいます。
アプリのUIにわかりやすく出てくるわけではないので内部用語みたいになってしまっていますが・・・

また、スタジオからの配信を「公式配信」、REALITY Avatarでの配信を「一般配信」と呼んでおり、"公式"・"一般"と単に表現された際にはこちらのことを差します。

また、この2種類の配信の関係について、「一般配信者は腕が縛られてるけどランクアップすると公式配信者になって解放されます!」というネタをお見かけしますが、秘密の昇格条件があったりはするわけではありません><

たしかにトラッキングシステムとしては公式枠のスタジオの方が上位で豪華ではあるのですが(指を含む全身トラッキング、複数人数同時など)、仕組みの違う2種類の配信があります、というのが現時点では正しい表現かな、と思っています。

もちろん、一般配信者の方が人気VTuberになって公式配信枠に登場!という日がくるのは楽しみにしています。
もうちょっとサービス・システム面で機能を揃えるのが先だとは思います。

それと、僕はAvatar側の3Dまわり担当なのもあって「公式配信者を一般配信枠に連れてこれると面白いのでは?」「そもそも(先日の件のように)公式配信ユーザが視聴者として一般枠に登場するきちんとしたルートがあると良いのでは?」みたいなことは考えています。


○対応機種の話

今のところ「iPhone X以外とAndroid対応を年内目標」でがんばっている、というステータスのまま変更はありません。現状「β版」と呼んでいる理由でもありますが、最優先の項目です。

どういった機種までサポートするかについては、やはり上位機種にある程度絞ることになってしまいそうです。
「リアルタイムでトラッキングする+3Dでキャラクターを動かす+ライブでストリーム配信する+ギフト他」という処理は決して軽くなく、古い機種では性能が出ない→発熱が激しくなる→CPUクロックが下がる→よけいに性能が出ない、というサーマルスロッティングからの悪循環も起きやすくなってしまいます。
あとは機種差がそもそもありますので、同じSoCでも同じ安定性が出るかというと・・・(Androidではおなじみの話です)

また、他機種でのトラッキングはiPhone X向けのそれとは違う感じになります。画面外に行ってしまったギフトを画面中央に顔で戻す芸みたいなのはおそらく他機種では流石にムリじゃないですかね・・・><いやアレどうやってるのみんな


○時間帯の話

18-25時限定は近いうちに解放する計画になっています。
個人的には「25時になったぞ寝るか」という生活サイクルが崩れてしまうとちゃんと朝起きれるだろうか?という点がいまから心配です。


○アバターのバリエーションの話

クローゼットのカテゴリがチマチマと増えていきます。小さめの装着品、壁紙あたりの軽めのやつから、少しの大きめのアップデートとしてはボトムス・シューズと男性アバター対応が鋭意製作中です。

ボトムス・シューズ追加の全身対応時にはカメラ制限の刷新があること、男性アバター対応はそもそもボリュームが大きいのが懸念事項です。


○季節モノの話

今現在は「秋ギフト」の季節となっておりますが、それ以外の季節モノについても順次計画されています。
Appleのクリスマス休暇がめっちゃ影響するのですが無事リリースできることを祈っていてください。


○中断系の話

UIがストリームに映り込んでしまうことに対して、先に「少しお待ちください画面」を出せるようにしたら良いのでは?という話があります。
iOSとAndroidでキャプチャまわりの動きが違うのを整理する必要があるのですが、ブロック機能やログ機能、特別な設定については別UIにできたら便利かも、と考えています。

あと音声ミュートはボタン位置さえ考えれば単品でできるような気がするので別にちょっと考えようかと思っています。


○Twitter連携まわりがややこしくてシェアまわりのUXがイマイチ

REALITY視聴アプリとREALITY Avatar配信アプリが別れていることも原因の一つではあるのですが、「ログインアカウント」と「公開アカウント」の概念がややこしいこと、番組のシェアまわりのUXが良いとは言えない状態です。

いまのところ「ちょっと試しでつかってみて、もしそれが公開できなさそうなTwitterアカウントだった際には、公開可能なアカウントを別に用意してください!」になってしまっておりますが、もう少しどうにかしたいです(運用回避きびしい)

# TwitterのAPI制限がなければもう少し自動化が容易なのですが・・・


○アーカイブがほしい

すいませんご要望があるのは重々承知しておりますorz

そもそもiPhone X版での録画機能の実装の都合で録画と配信がAvatarでは現状一緒に動かないこと、公式配信(あちらはときどきアーカイブが公開されるように、番組毎でポリシーが違います)と一般配信で話が違うこと、やるなら公開非公開設定や閲覧のUIなどつくるべき項目が多いことなど課題が結構あってきっちり考えないと、という認識です。

一般配信では動画にコメントが一応映り込んではいますが、チャット欄をアーカイブ再生時にオーバレイ表示する必要があるので、先にWebブラウザから非ログインで見られる画面にチャットがちゃんとくっつけるあたりから着手したいところです。


○コラボ

すでに端末複数台や、別サービスを駆使して行われているコラボを、正式機能としてできるようにしたいという話です。
ものすごく豪華なヤツからミニマムのヤツまで松竹梅ならべて「これならできる」「これはさすがに現実味がない」を複数わいわいしておりますので、気長にお待ちいただけると幸いです。


○全身トラッキング

めっちゃ要望されていますが、「技術的観点での実現性がまだ見えていない」ことと、「今よりスマホを酷使できる余裕はあまりない」の両方の観点で結構険しい山です。

ボイチェンも同じような位置付けですが、一朝一夕には難しく、いくつか研究として試行していった上で、スマホのスペックアップにあわせて差し込めたらいいなと思っています。

ただ、SHOWROOM Vやカスタムキャストのようなコマンド・ジェスチャによる「固定モーションの再生」やパペ文字のような「タッチ位置に基づくIK」であれば作り込めばできるかな、とは思っています。


○その他

・視聴アプリのiPhone版で音声がバックグラウンド多重化しちゃうやつは認識はしてるのですが再現手順が特定できておらず、対応中ですすいません。
・プロフィール表示機能に伴う自由なコンテンツの表示、NGワードフィルタのまだまだ鍛えてなさっぷり、通報・ブロック・BAN基準まわりの話、著作権的観点での怪しい行為、(お知らせでは何回かお出しさせていだいている)チートやスクリプトまわりについて、色々「性善説と性悪説アレコレ」みたいな話がご想像の通りあるのですが、どうかみなさまたのしくなかよく使っていただけると助かります。
・僕は「中の人であることを隠さない」スタンスでやっていますが、そうでないメンバも各配信に当然めっちゃおります。(社長とかいそまなとか別枠な感じのメンツもいます)。みんなVのものが大好きマンです。バレバレムーブを見つけた際にはそっとしといていただけると助かります:)
・ASMRとかVT-4のキーワードに関連する「外部マイク入力まわり」がイマイチなのはだいたい僕が犯人ですごめんなさい、iOSのメディアまわりつよつよマンに頼りつつなんとかしたいと思います。

2018年10月14日

技術書典5 サークルレポ

gi5.jpg

技術書典5、おつかれさまでした。当サークルのスペースに遊びにきていただいた方、購入いただいた方、ありがとうございました。

ありまして、「今回は原稿落とすかなー」とか考えたこともあったのですが、なんとかなりました。

2,3,4に続いて5もサークル参加して、「VRコンテンツのつくりかた4」というARKit Face Tracking本を頒布しました。

○当日の話

・B5オフセット表紙フルカラーのP.24 新刊1種、500円で頒布。旧刊なし。
・持ち込み96 - 手元2残し = 頒布94(完売)
・かんたん後払い利用者は19名、前回に引き続き便利に利用させていただきました。

今回からUDXからサンシャインに変わったのですが、島中は平和でした。通路が広くなったのでだいぶ人間らしさが増しましたね。(「あ」はつらそうでしたが・・・)
それと、XRジャンルにちょっと出展が増えた気がするのがよかったです。

写真の通り、デモをずっと展示していたのですが、トラッキングされてるのが自分の顔だと気づかない人が結構多くて、展示内容そのもののわかりづらさ(さりげなさ)もあるけど、机の上に置いてあって覗き込まないと動かないという、角度がちょっと厳しかったように思えました。これはスマホスタンドに加えて三脚もっていけば解決した話かも。

○本の中身の話

申し込んだ際にはVTuber話の続きとか、Mirage SoloとかOcuGoとか、半年分色々あったことを書こうと思ったのですが、時流もあってiPhone Xに振ってみました。

話としては実のところ、@noshipu氏のメモとか

Unity ARKit PluginのFace Trackingを使ってみる - のしメモ アプリ開発ブログ
http://www.noshimemo.com/entry/2017/12/01/000000

某友人F氏こと@ikko氏のこのツイートとか

あたりで「That's all」の話ではあるのですが、この半年で「BlendShapeの揃った3Dモデル事情」というのもずいぶん変わったので、改めてまとめてみました。

本の中身に直接関係なくて、ポエム成分が上がってしまうのでとくにとりあげなかったのですが、「スマホでもなんとかできる範囲が広がっている」ことと、「ライセンスドなモーションデータがなくともコンテンツが作れる」という2点が主張したかったポイントになります。キャプチャしたモーションデータを独立して扱って、VRまで持っていけなかった残念、みたいな話です。


○PDFとリポジトリ公開の話

恒例の話になってきたので色々迷ったりしなくなってきました。
今回もPDFとRe:VIEWソースコード一式、アプリソースコード一式を以下のパスで公開しています。
当日いらっしゃらなかったとか、売り切れて買えなかったとか、買わなかったけど読んでみたいという方はぜひどうぞ。

技術書典5で頒布した「VRコンテンツのつくりかた4」のRe:VIEWプロジェクト一式 #技術書典
https://github.com/youten/howto-create-vr-contents4

iPhone X Face Tracking Character Avatar App with UniVRM
https://github.com/youten/YXAvatar

2018年9月28日

REALITY Avatarを支える技術と支えきれていない僕の手の話

未来の話については「関係各位の発表をお待ちください!」ではあるのですが、現時点でのお話についてはだいじょうぶやろ、ということで、主に技術的な観点において先に見解(?)をエモちらかしておこうと思います。

○iPhone X限定

順番と、「ターゲットが増えると手間が増える」という、単純な開発コストパフォーマンスの問題です、申し訳ありません。

Vision frameworkで目処がたてば非XのiPhoneへの対応が一番容易だろうという気配で、次いで4:3問題を解決すればiPadかなという感じです。
Androidはフェイシャルキャプチャの話もありますが(ML Kitの顔内ランドマーク認識を期待しています)、画面・マイクキャプチャとストリーミング部分の話も機種バリエーションもあるので色々がんばらないと、という状況です。


○画面・マイクキャプチャ

キャプチャはReplayKit、ストリーミング部はHaishinKit.swiftです。

ライブ配信を行うとすぐ気づくと思いますが、配信する画にUIが乗ってしまう点について、RenderTextureからネイティブで・・・あたりを一応おいかけたのですが、(主に僕の技術力が無いせいで)パフォーマンス観点で大丈夫そうなやり方が見つからず、ひとまずiOSネイティブ側に全部を任せる方式に倒しました。
レンダリングパイプラインとかネイティブの描画まわりのポインタの扱いについて、完全に理解してから再戦したいと思います(フラグ)。

ReplayKitはiOSのバージョンが上がるたびにちょいちょいと別物になってるので全容が掴みづらかったりしますが、なんとなくで使う分には楽しい子だと思います。
なんとなくじゃなく使う際には融通が効かないし、権限確認まわりが通常のカメラ/マイクと全く関係ないし、Swiftだとerror code隠れてますし、まだ飼い慣らせておりません。最終的には「お世話になったな、さらば!」と言いたいのですが。

HaishinKit.swiftは、「そもそも昨今のストリーミング配信ってどういうものなの?」を理解するのに最高でした。nginx-rtmp-moduleでさっくりとRTMP-HLSサーバが立つので、こちらと組み合わせて色々遊んでみるのはオススメできます。
とはいえ、色々な歴史のあるRTMPまわりについてはまだよく理解できないところもあり、おかしな使い方していたらこっそり教えていただけると嬉しいです・・・


○ARKit Facial Trackingと脅威のパフォーマンスの話

今の所iPhone XのA11パワーに頼りきっている本アプリですが、そのiPhone Xをもってしても、「ARKit Facial TrackingのアライグマのデモがXcode測定でCPUを80%もっていく」という数字を叩き出した際には、これはさすがにダメかと思いました。

・Xcodeのパフォーマンス表示はあくまでCPU、ネイティブを繋いでiPhoneのハードウェアに処理を追い出せると、処理を追加してもあまり負荷としては上がらない
・アライグマ(sloth)は16万ポリゴンな上に顔の表面だけではなく、モデル全体がBlendShape対象という、あまりつくりのよくないモデル。
・それでもシステム60fpsは色々無理があって断念しました。30fpsに設定しています。

ARKit Facial Trackingそのものについてはどこか別のところでお出しできればと思っています。


○Unity?

Unityです。

スタジオサイドはUnrealなのでこちらもUnrealでやりたかったのですが、以下のような感じで、端的にはUnreal力もC++力も足りずにギブアップしました。

・Unrealは「自前でUE C++だったりNative C++だったりロジックを内包する」のは十分に対応していると言えるのですが、「外部のライブラリ」を繋ぐのには(とくにAndroid/iOSのモバイルにおいて)十分にサポートされているとは思えませんでした。
・UnrealはSwiftをサポートしていません。ビルドシステムがモバイルの動的ライブラリに対応していない、という認識ですが正直この見解に自信がありません。将来しれっとSwiftサポートが入ったらそれはそれでいいことだと思います。
・Xcodeプロジェクトを出力するので最悪、独立して編集後にxcodebuildコマンドが有効なUnityと比較して、clangでゴリゴリとcppやmm(Objective-C++)をコンパイル後、リンクして署名まわりのXcode側のビルドシステムを使う感じのため、通常のiOSアプリとはかなり違うXcode力を要求されます。どちらかというとクロスコンパイルな組み込み屋の感覚に近いかな・・・と思いつつ、ビルドシステムをドッカンドッカン壊しながら繋ぎましたが、「これをUnrealがメジャーアップするたびに追従するのか?」と考えた際に登れる山に思えませんでした。
・余談ですが、Androidは「Javaコードをxmlに書いてエントリポイントのActivityに文字列マージなinjectする」という「マジで?」というようなIFで、これはこれでつよつよだったりします。

色々他の話もありましたが、プロジェクトとしては結論としてUnityに振りました。


○差分アップデートの話

いわゆるAssetBundleの話です。α版を利用された方はすぐ気づいたかもしれませんが、現状差分ダウンロードに対応しておらず、絶賛バトル中です。

通常のゲームとアセットの概念もアプデ方針も違いますし、「そもそも主機能であるライブ配信でギガをもりもりと消費する」本アプリについて、何が正解なのかハッキリしていません。「今ライブ配信をしたい!」という人が、利用予定のない新衣装のダウンロードに「○○MBダウンロードを行っています(○○分おまちください)」というのもナンセンスです。

アレコレを無視すればいくらでも無限に欲しくなるパーツカスタマイズのバリエーションですが、ユーザの通信帯域もデバイスの空きストレージも無限にあるわけではないということで、日々わいわいしております。

# それと、ipaの表示サイズと実際のダウンロードサイズと、インストール後のストレージサイズ、どういう計算になってるのかよくわかりませんね?BITCODEってこういう動きするものでしたっけ???


○モデルとカスタマイズの話

Unityでバラバラのパーツを組み立てて動かす際には「共通骨構造を決めておいて、SkinnedMeshRendererがもっているbone配列の情報を差し替える」が基本方針となります。

edo氏とちえぽむ氏の以下のエントリが参考になります(ぶっちゃけ作った後にやっと話が分かるようになりました)

SkinnedMeshとBoneWeightについてメモ - e.blog http://edom18.hateblo.jp/entry/2017/06/09/080802
ボーンの差し替えによる着せ替え - chienote https://chiepomme.gitbook.io/chienote/animation/dressing-up-by-bone-replacing

Unityとか、そもそもの3DCGのweightまわりに詳しい諸兄であれば常識なのかもしれませんが、僕はサンプルを引き継いだ際に「SkinnedMeshRenderer管理下になっているはずのbone配列をいったん外に取り出して元に戻す」というのがなかなか理解できず、「よくわからないけど動いている」状態が長く続きました。

パーツ管理システムは今後運用にずっしり響いてくるため、エディタ/アセットビルド/ランタイムまわりは綺麗に作り直したかったりします...


○「誰でもVTuberになれる」という話

謳い文句としてこうは言ってるのですが、僕個人は別にみんながVTuberにはならないでいいと思っています。
「バーチャルですごす人」みたいな意味のちょうどいい単語がないので、代理として「VTuber」という単語をお借りしている認識です。

リアルアバターよりSNSのプロフィールアイコンが本人を示す世界があるように、自由にアバターを選ぶことができて、コミュニティ毎に好きな自分で生きていける世界がつくれたら楽しいな、と思っています。

2018年9月22日

iPhoneで外部マイクを使う方法

iphone-external-mic.jpg

REALITY Avatarの話に関連して、iPhoneで外部マイクを使う方法を調べています。
Lightningコネクタやオーディオまわりに詳しくなかったせいか、順調に安物買いの銭失いに成功してしまっておりますので、その知見についてまとめておきます。

○結論

マイク、録音目的の際にはおとなしくMFi品を買いましょう。
DAC(Lightining→アナログ)変換は安物でも動いてることが多いですが、ADC(アナログ→Lightning)の勝率が悪いです。

○充電不要の場合

Lightning→アナログ(4極)変換アダプタが付属しているはずなのでそれを使いましょう。
僕は間違って(?)エレコムのを買ってしまいましたが、そもそもApple公式の変換アダプタがiPhone X本体に付属していましたorz
これで概ねのケースでは十分な気がします。

iPhone付属のイヤホンマイクはさすがにマイクとして使うには音が小さすぎに思えました。(録音用に使うなら音漏れは関係ないからいいのでは、と思ったのに・・・)

以前買ったボイチェンも元気に動きました。(妙なエコーも多いですし音の立ち上がりをポロポロ落としますし、「プライバシー目的のため音声を変えて・・・」ぐらいの目的であれば使えるおもちゃな感じのボイチェンですが)

○充電しながら使いたい場合

MFi品であるbelkinのを買いましょう。

800円-1000円ぐらいのを2つ買いましたが、2つとも「マイクは動かない」「充電は問題ないものの、通信が怪しい」というものでした。
belkinのはXcodeから問題なくiPhoneが認識できたので良さそうです。

○アナログ(4極)の分割は比較的お安いので問題ない

アナログ(4極)をヘッドホン/マイクに分割するケーブルは安いので問題なく動く模様です。
AndroidやLightning前のiPhoneもこちらですし、情報が多いのと勝率が悪くない気がします。

こちらと適当なコンデンサマイクで動いてますが、少しレベルが足りない気がします。ちゃんとミキサーとかコンプとかかけられるのが理想なんだろうな、とは思います。

上記のピンマイクは無指向性なのですが、以下の指向性マイクの方がやっぱりまわりの音を拾わなくてよい気配があります。(さらにレベルが下がってしまうのでコンプの欲しさは上がってしまいますが・・・)

○「Lightning-USB OTG」+「USBオーディオインタフェース」はちょっと相性がありそう

手元に転がってたUSBオーディオインタフェースと1500円ぐらいの安物では「ピー」という謎のノイズが出ていました。認識や充電まわりは大丈夫そうです。

AG03などのUSBオーディオインタフェースをすでに持っている際にはこちらのルートになる模様です。
「Apple公式のカメラアダプタを買え」という話も見ましたし、若干相性がありそうです。

○Roland GO:MIXERはダイナミックマイクが必要

サイズもコンパクトでミキサー能力も高いGO:MIXERですが、ダイナミックマイクしか繋げないこと、給電ルートが無いのでiPhoneXを「充電しながら」といった使い方ができません。
楽器とかBGMとか混ぜたい人には良さそうですが、単に外部マイクを使いたい際には若干遠回りなルートに思えています。

「Lightning分岐 - GO:MIXER - FBQ100 - VT-3」みたいなのができるかどうかはまた後ほど試してみたいと思います。

GO:MIXER Proになると電池給電ができることと、ダイナミックマイク限定でなくなったりしますので、ケーブルだの機材だの手元にある人はこちらの選択も良さそうです。
GO:MIXER/GO:MIXER ProについてはiPhoneやiPad単体で音をいれて、動画を撮って、編集までやってしまおう、のようなケースにはとても良いソリューションに見えます。


○さいごに

イヤホン・ヘッドホンまわり比べると需要が需要なのか、安価な代替品ではうまくいかない印象です。ダイナミックマイクとかケーブルとかLightning直結マイクとかVT-3とか色々勢いでポチってしまったため、また何かわかれば更新しようと思います。

2018年8月26日

2ヶ月で書こうと思ってたらもう3ヶ月になりそう

続きを読む "2ヶ月で書こうと思ってたらもう3ヶ月になりそう"

2018年7月25日

「最強の規約テンプレ育成コスト」はどうにか払わないで済ませたい

そもそもずっと思っていること:「規約を違反した人を裁判など(ソーシャルな私刑も含むかも)で訴えたい」という強い意志がない限り、規約を整備する意味はないのではないでしょうか?

整備コストを「誰かが苦労したテンプレ」で削減できたとしても、その運用に必要なコストは想定されていますか?それは妥当ですか?

◯僕個人が考える推奨方針

1. 購入・ダウンロード(利用規約の同意という契約締結の)前に規約は全て確認できるべき
2.「規約」と「想定」は別に書くべき
 「こう使ってほしい」とか「◯◯で◯◯向けのつもり」とか
3.「法律上守るべきこと」はわざわざ規約に書くのは我慢すべき
 「なりすましの禁止」「著作権は放棄していません」とか
 CCライセンスそのもの親切な説明など、お願いとかコメントとか別項にするのが良いと思っています。
4.「人によって解釈が揺れること」は規約に書かないようにすべき
 「公序良俗に反する」とかとっても難しいのでできれば我慢した方が良いと思っています。
 エログロ、部分利用、技術の高い低い、etc.
5.「部分的に許可」「部分的に禁止」を謳う際にはめっちゃがんばるべき

個人的には、厳密にはCCとしてアレなのかもしれないけど、配布主の意図は分かるという観点で「クエリちゃんからのお願い」が好きです。

◯具体ポイント

A."再配布"
無償配布の際にはCC, CreativeCommons系の何かをつけるのがコストが低いです。
有償配布の際には「再利用できる形での・・・」といった素材系サイトの規約を記載しておくのがよくありますが、「払いたい人は払ってください」式でCC系をつけてしまうのも運用コストが低くて良いのでは・・・?と思っています。
「VRChatで許容される行為」を記載して、「それ以外禁止」にするのはそれなりのコストで済みそうです。

B."営利活動"
限定したい人は相当条件を厳密に定義してがんばる必要があり、できたら制限やめませんか・・・?
一部禁止も、完全禁止も、相当がんばって書かないと解釈が曖昧になりやすく、厳しい項目です

・例「営利活動を禁止する」
→「非営利」=「お金を一切受け取らない」という意味ではない(cf. 「同人」「頒布」)

・例「報酬を得てはいけない」
→広告収入を得ているサービス、それこそTwitterとかYouTubeとか、バナー広告が挟まるサービスに使えなくなってしまう。
 まれにがんばって「本人が直接得ているわけじゃなければいいよ」系の規約を揃えているのを見た覚えはあります。

C.利用用途の制限
こちらも何がOKで何がNGなのか「誰にも勘違いされないように」記載する必要があり、かなり困難です。

・例「VRChatでの利用に限る」
→「録画して誰かに動画ファイルを渡したらそれは限っているの?そうでもないの?」「YouTubeライブは?」
→「Unityでローカルで遊ぶのもダメ?」「それはVRC SDKでセットアップ作業中のスクショと区別がつくの?」

P.S.
二次創作はまた別の話ですからね!一緒にしちゃダメですよ!

2018年7月22日

VTuberワークショップで アバターシステムUnity講座らしきものをしてきました #vtuberjustdoit

【緊急開催】アナタもなろう! 今日から始めるVTuberワークショップ #01(PANORA×デジタルハリウッド大学大学院) | Peatix
https://vtuberjustdoit.peatix.com/

上記イベントにて、「【その2】Unityで始めてみよう!キャラをVRで動かすはじめの一歩」というワークショップの講師(?)をしてきました。主催側機材・環境のギリギリまでの調達に加え、@nowspring, @_karukaru_, @inuchin, @ayr_suzuの4名のTAとしての協力がなかったらもっと大変なことになっていたと思います。参加者の方々含めご協力ありがとうございました。

○資料の話

かなりわかりづらく申し訳なかったのですが、ワークショップ内で利用したものは以下の通りで、全て公開情報です。

1. ワークショップ資料+α(PDF)
https://www.dropbox.com/s/7hsj8tnm4kl9gdz/whyvtuber.pdf?dl=0

2. ワークショップ補足資料(過去作成した同人誌のPDF)
https://github.com/youten/howto-create-vr-contents3

3. YVTuber 40e287dd7b681de21b114687deb5af86bdda2f4d
https://github.com/youten/YVTuber

4. UniVRM v0.40
https://github.com/dwango/UniVRM/releases

5. ニコニ立体
「ニコニ立体ちゃん」 / ニコニ立体 さんの作品 - ニコニ立体
http://3d.nicovideo.jp/works/td14712

続きを読む "VTuberワークショップで アバターシステムUnity講座らしきものをしてきました #vtuberjustdoit"

VTuberに使われていそうなアバターシステム一覧(2019.02)

利用方法が公になっているアバターシステムを登場順に並べてみました。
どの時点を「登場」とするのか難しいものがありますがそのあたりは許容ねがいます。

続きを読む "VTuberに使われていそうなアバターシステム一覧(2019.02)"

2018年7月 9日

入社していくらか経ったけど変わりはないというか慣れてきたというか

一ヶ月経ちました。

続きを読む "入社していくらか経ったけど変わりはないというか慣れてきたというか"

2018年6月17日

入社して2週間経ったけど予想(覚悟)してたとおりプロダクトに1行足りとも貢献できていない話

あとで見返したら役に立つだろうと、何かを書いておこうと思ったので、何かを書いておきます。

総括的には「まぁそういうものだよねふふふ」ぐらいの感覚です。

続きを読む "入社して2週間経ったけど予想(覚悟)してたとおりプロダクトに1行足りとも貢献できていない話"

Archives(記事一覧はこちら)