忍者ブログ

レバノン13日共同

超不定期日記。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

VR映画コンテンツ用にバックエンドを作った

今年の8月に伊豆映画祭にて、土肥劇場で上映されるVR映画コンテンツに少し関わった。

https://izu-film-festival.themedia.jp/pages/1057540/page_201706110336

このコンテンツ、映像だけだと面白くないので、ToneDisplay(知り合いのVR向けUXソリューション)を組み合わせる事にした。
ToneDisplayはVRコンテンツに合わせて風圧や振動を発生・制御するソリューションだ。

ToneDisplay自体は、3DのVRゲームでも、360動画でも両方OK。
360動画の場合は、Google Spreadsheetsにシーケンスを書いておいて、それをアプリがロードして使う。
いづれの場合も、コンテンツに応じてMQTTで各デバイスに制御を送るイメージ。


これ、今は1ユーザーのみ想定で、かつネット必須だった。
今回、土肥という場所、映画祭というシチュエーションなどにより、既存のToneDisplayに対して以下の点が要望としてあった。

- ネットワーク接続は不安定なので、ローカルネットワークのみで動作する
- 複数人に対応するため、複数台での再生を可能にする
- オペレーションの簡素化のため、再生/停止は一斉にやりたい


これを実現すべく、大雑把にいうと以下のことをやった

1.ローカルにRaspberry Piで作ったサーバを設置し、MQTTのブローカーやら制御やらは全部こいつに任せる
2.プレイヤーアプリでシーケンスをロードしてMQTTに送出していたが、これを一箇所にまとめる
3.プレイヤーの再生停止制御をMQTTで行う
4.これらをスマホからリモコン的に制御できるようにする

システムイメージはこんな感じ。


僕の担当は1,2,3だった。あとハード的なインフラ。


で、これを実現するために、Node.jsでサーバアプリと、VueでWebアプリとを作った。


ソースはここに

https://github.com/TakuroFukamizu/mnk-server

正直、これだけだとシステム動かないので単なるログとして見て欲しい。
(READMEが無かったり、掘り下げると色々突っ込みどころが多いが、徹夜で仕上げてテストしてそのままの状態なんだ。整理したかったが、その後も忙しくて。)


ただ、中身は結構凝ってる。

ポイントは、集中管理するコンソールはスマホだけど、信号の送出処理などは全部サーバ側のデーモンに任せてるの点や、各種チェックなどの作り込み。

一度渡してしまうと、後の運営はノンエンジニアに委ねるので、可能な限り縮退しても動き続けるように頑張ってる。

ハッカソン的に数日で作ったけど、その割にはちゃんと動き続けるはず。


P.S.
そろそろES7時代のvueの正しい書き方を知りたい
PR

カレンダー

03 2024/04 05
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

最新コメント

[02/09 TimothyKl]
[08/15 xbhusrgdxp]
[08/14 abhbrwmqui]

ブログ内検索

カウンター

アクセス解析

PR