• スマホ向けMMDパノラマVRに夢を見て敗れた記録

    2018-03-21 12:07

    1.はじめに

    • 筆者はVRchat未経験.いわゆる界隈の最先端にいる人ではない.周回遅れ組
    • 筆者はVRコンテンツは見るのも作るのも楽しいと思っている.
    • 筆者はVR体験の最大の参入障壁は要求マシンスペックだと思っている.
    • 筆者はVRが普及するときは、スマホで十分なコンテンツが使えるようになった時だと考える.
    • 本文は,現状簡単に個人で作成できるスマホVRコンテンツがいかほどのものか,実験した記録である.


    2.結論

    スマホVRはまだ時代が追い付いてないと感じた.
    スマホVRをVRだと考えられるとVRが嫌いになりそう.(理由は後述

    3.実験方針

    とりあえず実験ターゲットを3Dモデルを使ったVR動画に絞って考える.
    方法論としては3つ考えられる.
    A案 unityにモデルとモーションを読み込んでandroidアプリにする
    →権利関係的に拡散はできない.個人利用限定か
    B案 youtubeにVR動画として投稿する
    →cardboardだけ買ってもらえばみんなで楽しめる.
    C案 高画質VR動画を再生するスマホアプリを導入し,VR動画をDL形式で配布する.
    →権利関係的に配布大丈夫なのか確信が持てない.

    せっかくなのでみんなで楽しみたいので,B案を本命としてA案は予備実験とする.
    C案は疲れたから試してない.誰か知ってたら教えて.

    4.予備実験

    3Dモデルが動く動画をunityで作成しスマホアプリ化してみる
    4.1.手順
    本論でないため詳細な手順略
    4.2.結果
    端末にもよるけど,fpsが10~30ぐらいしか出なくて,もの凄くVR酔いする.
    ローポリ化とかそこら辺の最適化をすればクリアできる課題かもしれないけど,
    簡単に作成できるの領域を超えるから追実験はしない.
    (参考)
    VR酔いとfps(リフレッシュレート)の関連性に関して
    https://vrinside.jp/news/vr-terminologie/


    5.本体実験

    MikuMikuDomeMasterを使ってMMD+MMEでパノラマVR動画を作成する.
    演算能力足りなくてfps下がるなら最初から動画にする作戦.
    5.1.手順
    5.1.1.MMD(http://www.geocities.jp/higuchuu4/)とMME(https://www6.atwiki.jp/vpvpwiki/pages/219.html)を導入する.
    5.1.2.MikuMikuDomeMasterを導入する(https://twitter.com/Caeru_Odin/status/721653643036897280)
    5.1.3.こちらの手順通り動画を出力する.
    (http://greety.sakura.ne.jp/redo/2016/01/mmdm-stereo-equi-movie.html)
    注意点としては,DomeMaster.pmxを読み込んだ瞬間MMDが激重になるので,必要な編集は事前に終わらせておくこと.
    5.1.4.つんでれんこ(https://tdenc.com/TDEnc/download/)でMP4にする.
    5.1.5.360 Videos MetaData(https://support.google.com/youtube/answer/6178631?hl=ja)を使って,パノラマ動画だと認識されるようにする.
    この時,説明文には"[3D Top-bottom] のチェックボックスはオンにしないでください"とあるが,必ずチェックすること.
    5.1.6.Youtubeに投稿する.
    5.1.7.スマホで再生し,画質を最大(1080p60s)にしてcardboardのマークをタップする.

    5.2.結果
    画質悪すぎて楽しめない.
    360度ぐるっと外周分が1080p(1920*1080)となるので,実際スマホに表示されている範囲をせいぜい90度ぐらいだとすると,480*270ぐらいのサイズを全画面に引き延ばした感じになる.
    youtubeで表示できる最大画質は端末自体のディスプレイ解像度に依存する.
    表示範囲だけでHD画質720p(1280*720)を実現しようとした場合,パノラマ動画自体は2,880p(5,120*2,880)ぐらいの画質が必要.
    なお,4Kスマホが2,160p(3,840*2,160).無理げーである.

    (参考)パノラマ動画と画質の考え方
    http://blog.livedoor.jp/rna135711/archives/52014788.html

    6.おわりに

    今回の検証範囲では,スマホVRはまだ時代が追い付いてきてないと感じた.
    マシンスペックが大敵すぎる.
    MMD * スマホだったら比較的手軽かなーと思ったけど世界はそんなに甘くなかった.
    2次創作文化圏外(オリキャラ・オリ曲・オリモーション)でVR動画作れる目途が立ったら,B案にこだわる必要性が消えると思っているので,C案の追加実験するかもしれない.
    ちなみに筆者のPCはoculusの最小スペックぐらいであるが,3分ぐらいの動画出力するのに2時間ぐらいかかった.

    なお,今回の実験範囲外なので書いてないけど,パノラマVR静止画表示するぐらいなら,スマホVRでも遊べなくはないかなーという感じ.

    筆者周回遅れ組なので,最先端では常識かもしれないけど,いろいろ試して楽しかったのでよしとする.


    追記:C案検証したけど,youtubeと同じく端末解像度以上に再生できなかったので,スマホの8割が4Kになるころまで覚えてたら続き実験しますね

  • 広告
  • windows10 64bit/unity2017.03でNovint Falcon使おうとしたら躓いた話

    2018-03-10 23:22

    〇はじめに

    昔遊ばせてもらったmikumiku握手(参考リンク)を昨今のVRブームで思い出したので自分でも作ってみました.

    mikumiku握手で検索するとヒットする情報を参考に,機材を買いそろえたまではいいものの,肝心のNovint falconの導入で躓いたので忘備録を作成するものです。

    〇Novint Falconとは

    2007年にNovint Technologyから販売開始されております,Hapticデバイスです.
    立体操作が可能な3Dマウスとしての特徴と,ロボットアーム的な自力で動く機能を持っており,手触りや手応えをそれとなく感じることができます.
    日本ではamazonで\77,000ぐらいで買えます.
    Amazonリンク
    なお,詳しい経緯は知りませんが,Novint Technology自体は現在稼働していないらしく(倒産?)公式サイトにも「We’ll be back soon!」とだけ表示されております。
    http://www.novint.com/

    〇躓いたポイント(2点)

    1.windows10 64bit環境は,Novint Falconのデフォルトドライバが動作しない.

    会社が死んでいる関係で当然公式から最新のドライバを入手することもできません.これについては,下記のサイトでwindows10 64bit向けのドライバを入手できます.
    Force Dimension(会員登録要)

    導入方法については,CAI3Dのドキュメンテーションの中にありました.
    CAI3D > Documentation > Introduction > Installation > Novint Technologiesにはこうあります.

    ・Uninstall all software provided by Novint. Carefully follow all instructions that may be displayed on the screen during uninstallation.

    ・Download and install the Force Dimension drivers for your Windows architecture (32- or 64-bit) from the Force Dimension website.

    ・Restart your computer.

    ・Connect your Falcon haptic device.
    要約
    1. Novint製のソフトウェア(ドライバと本体付属CDにある体験ソフト類のことと思われる)をアンインストールする.
    2. ForceDimensionからドライバDLしてインストールする.
    3. パソコンを再起動する.
    4. falconをパソコンに繋ぐ.

    解説テキスト類には特に断りがありませんが,windows10にfalconを接続すると,インストールメディア読み込まなくても勝手にNovint製のドライバが入る模様なので,Force Dimension導入前にうっかりPCに接続してしまったら,アンインストール要です.

    導入確認方法ですが,公式の体験ソフト内にあるチュートリアルで動作確認をすることはできません.
    CHAI3DをDLし,examplesから適当なフォルダを選んでビジュアルスタジオで64bit向けビルドをするのが一番手っ取り早いかと思います.

    2.falconとunityの連携に関する記事は全て公式ドライバ準拠で書かれている
    falcon unityで検索すると上位に出てくるのはFalcon Wrapperを使う方法(unity pro専用)と,FalconServerを使う方法がヒットします.
    どちらも公式ドライバを使用する方法なので利用できません.

    そこでForce Dimension(会員登録要)にあるSDKを,unityのネイティブプラグインとして活用します.
    下図のようにAssets/Pluginsに以下のファイルを入れて、SDK添付のドキュメントに従って実装すればOK
    ・dhd64.dll
    ・dhdc.h
    ・dhdms64.lib





    falconの動作をunityで拾うだけのサンプルコード

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using System.Runtime.InteropServices;

    unsafe public class falconDllTest : MonoBehaviour {
    [DllImport ("dhd64.dll")] private static extern int dhdOpen ();
    [DllImport ("dhd64.dll")] private static extern int dhdGetPosition (double *px,double *py,double *pz,sbyte ID=-1);
    [DllImport ("dhd64.dll")] private static extern int dhdClose ();
    double px,py,pz;
    void Start () {
    if (dhdOpen () < 0) {
    Debug.LogWarning ("error:cannot open device");
    }
    }
    void OnApplicationQuit(){
    Application.CancelQuit ();
    dhdClose ();
    Debug.LogWarning("exit");
    Application.Quit ();
    }
    // Update is called once per frame
    void Update () {
    fixed(double* ppx=&px,ppy=&py,ppz=&pz) {
    dhdGetPosition (ppx, ppy, ppz);
    }
    Debug.LogWarning ("x" + (px*100).ToString());
    Debug.LogWarning ("y" + (py*100).ToString());
    Debug.LogWarning ("z" + (pz*100).ToString());

    }
    }

    xが奥行方向,yが左右方向,zが上下方向



    SDK内にはdhdのほかにdrdというライブラリもあり,デバイス自体を機械的に動作させるにはdrdが必要なような印象を当初受けたが,drdは精密な位置動作をするときに使うライブラリらしく,大体どっちの方向に動かすぐらいの操作の場合,dhdSetForceで力を加えるだけでOK.






  • 【技術メモ】UTAUと文字コードとwindows10アップデートについて

    2017-12-24 11:47
    ※注意※ 開発者向け情報です.
    また,将来不具合が出る恐れがあるレベルの話で将来のトラブルを約束するものではありません.

    〇UTAUの文字コードについて

    • ustは[#SETTING]がANSI、それ以外がshift-jisで保存される.
    • ust保存画面の選択肢にあるutf-8を選んだ場合,ustはすべてUTF8で保存され[#SETTING]に"Charset=UTF-8"が追記される.
    • プラグイン起動時の中間ファイルは,ustの文字コードにかかわらず,[#SETTING]がANSI、それ以外がshift-jisで保存される.
    • 日本語環境ではANSI=shift-jisという認識で概ね問題ないので,上記プラグインの仕様で何も問題ないが,ANSIの実文字コードはwindowsの言語環境によって異なる.
      ex)日本語→shift-jis,繁体中国語→big5,簡体中国語→GBKなど)
    • プラグイン用中間ファイルをshift-jis専用にしてると外国環境では動かない場合があるのは上記のとおりだいたいANSIのせい

    〇windows10 のアプデについて

    • redstone4のIPでansiiをutf8に変更できるようになっている
      (いくつかのタレコミ記事,検証ツイートはあるものの公式リリースは発見できず.
      IPに参加していないためあくまで2次情報.気になるならぐぐって)
    • 今のところ今後これが標準となるという情報はなし.

    〇だから何?

    • 既存のshift-jis環境で作成したustの音源パスが文字化けする.
    • ansiがutf8となった環境では,海外UTAU環境と同様,プラグインの[#SETTING]とそれ以外の部分の文字コードが異なる関係でいくつかのUTAUプラグインが動作しなくなる.
    • 界隈アクティブな開発者はこの点留意したら今後慌てなくていいかも(海外対応にもつながる)
    • 過去のサイクル的には2018年春ごろにredstone4が来そうなので,来たら実証実験します.