画像表示と音声入力(VRでTwitter 進捗記録④)
進捗記録。前回と書いてること一緒だけど、3月後半がやたら仕事立て込んでた。あとハイラル走り回ってたこともあり、進捗は薄い。
画像表示
画像表示テスト。モーダルとかをちゃんと考えたほうがよさそう #VRでTwitter pic.twitter.com/swlNtFjCcx
— 人生 😇 (@toofu__) 2017年3月25日
ツイートに画像がついていた場合、それを表示するようにした。画像をタッチすると大きく表示される。絵師さんが描いた可愛い女の子が目の前に等身大で表示されたりして非常にテンションが上がる。
ただ問題がいくつかあって、
- ひとつのツイートに画像が複数ある場合も一枚しか表示されない。
- 動画であっても静止画で表示される
原因はだいたいわかっていて、TwitterAPIのレスポンスの中でentitiesを使っているのだけど、複数画像や動画を処理したい場合はextended_entitiesを使わなければならないっぽい。そのあたりの仕様がまだ把握しきれてないので、おいおいやっていく。
音声でツイート
GoogleのCloud Speech APIを使ってマイク音声を文字列に変換してそれをTwitterに投げる、ということを試みているけど、文字列への変換がまだうまくいっていない。
Unityでオーディオを扱ったことがないし、そもそもオーディオに関する知識が皆無(サンプル?チャンネルって何?ってレベル)なので、そこから勉強しないといけないので時間がかかっている。
- マイク入力を受け取る
- マイク入力をGoogleAPIに投げられる形式に変換する
- GoogleAPIに投げる
- 変換された文字列を受け取る
という4ステップなんだけど、エラーが起きる。1はうまくいっているので、2か3でミスってるはずだけど、オーディオ詳しくないこともあって原因の切り分けが難しい。調べながらおいおいやっていく。たぶんどこかで諦めてteratailかどこかで誰かに聞く。
タッチのやりかた
いままで見ないようにしていたけど、現在は「ある物体に触れた状態でTouchControllerのボタンを押すと、その物体にアタッチされたアクションを発火する」という仕様でやっていたけど、それだとどうしても「複数の物体に同時に触れた時」に誤作動が起きてしまう。そのためには「TouchControllerのボタンを押したときに触れている物体のうち、一番近い物体にアタッチされているアクションを発火する」という仕様にする必要がある。
まあ世に出す時には絶対にやらなきゃいけない処理なんだけど、めんどくさいので今はいったん放置する。
スケジュール的に
夏までになんらかの形に、と思っていたけど、4月25日締め切りでVRクリエイティブアワードとかいう賞があることを知ってしまったので、そこの個人部門に応募できるように頑張ろうと思っている。受賞できるとは思っていないが、なにかと外的要因を作らないとエタってしまいそうで怖いので。とりあえず手元で動くくらいには形にして、紹介動画をつくる、というところまで今月中に頑張りたい。