20200811のUnityに関する記事は2件です。

VRハードのメーカのチョイまとめ。

ディスクレーマー

持っているパソコンスペック:Ryzen5 3600、Nvidia Geforce 2070、16GBのRAMです。
なんかめっちゃ強いパソコンではないです。やや普通。

俺の持っているのVRセットはオキュラスクエストです。 6万円の128gbのバージョンです。

言いたいのは、ちょっとオキュラスの派です。ご注意を。

VRハードの現在ステータス

現在のVR世界はちょっと欠片されています。

VR問題は、各メーカーは別々のソフトのショップを立っています。
例えば、俺の持っているものはオキュラスクエストですね。オキュラスを起動すると、すぐにストアページに入りますとゲームを買えますね。
Oculusのパソコンとテザリング専用のRiftSもありますね。
問題点① オキュラスクエストのストアとオキュラスリフトのストアは離れています。クエストのゲームを作ったら、リフトストアに売りたいなら、リフトバージョンも別につからなきゃ!
問題点② その上に、もしゲームはクエストとリフトにもあれば、もしクロスプラットフォーム買いが不可だったら、同じゲームを二回を買わなきゃいけないです!
注意点!!現在、オキュラスクエストだけがPCで離れて遊べます。他のシステムは、PCを繋いで、PCのグラフィックスボードの力でレンダリングして遊べます。(PCと繋がりはテザリングと呼ばれていますね。)とりあえずPC98からアップグレードしたくないがVRエロを見たいのお友達、Oculus Questはおすすめです。

オキュラス以外、他VRのメーカーもいます。

メインクラス(人気&新ハードはほぼ出ている)

まあこっちで開発を始まったら、いけると思います。でもかならずハードとストアの突破することをしっかり考えてください。そのストアと物流の関して別の記事に書きます。

WMRクラス

Windows Mixed Realityは正直いうと、あんまり人気がない。ハードはほぼないし、新しいハードは少なめ・・
ちょっとこっちに始まったら危険だ。

例えハード:

すべてのWMRはMicrosoft Storeで買えます。

目玉品

なんかビジネス用のARハードです。ものすごく高いですが、ちょっとおもろかもしれません。

特別クラス: PlayStation VR

PSVRはもしかして一番売っているVRハードですが、俺たちみたいなド貧乏のインディー開発者なら、PSVRに入るのは難しいかもしれません。
DevKitが持ってないなら、開発ができません。 本間ソニーに連絡いただいたら、DevKitをもらえるはずです。
こういうものもありますので、ご意識をもってください。

VRじゃないクラス

  • Google Cardboardみたいなゴーグルにスマホを入れられるのマジックレンズみたいなもの。ユースケースは一つだけ:VRのエロビデオを見ることです。いつでもVRの話をやったら、「あたいもVRやったよ、あのスマホを入れたやつ!!」ってちっとむかつく。あれはVRではないよ。ふざけるな。

とりあえずこれで全大きいのメーカなどを紹介しました。

次の記事のテーマは:

  • 俺のUnityの環境構築セットアップ
  • Sidequestとハウツーユース
  • VRゲームの物流(マジで開発したら、誰も遊べなかったらめっちゃもったいないじゃねーか)

よろcくお願いします

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Unity】WebGLビルドで「<N> FS.syncfs operations in flight at once, probably just doing extra work」警告が出て処理が止まった時に考えられる事

UnityでWebGL書き出ししたプロジェクトが実行途中で止まる事案が発生しました。
Chrome、Firefoxのデベロッパーツールのコンソールに以下のWarningが出力されたところで処理が中断していました。

warning: 2 FS.syncfs operations in flight at once, probably just doing extra work

本記事はこの警告の対処法備忘録です。

ファイルシステム使用で処理が止まる

warning: FS.syncfs operations in flight at once, probably just doing extra work
だいぶ前のフォーラムですが、FPSは下がるが無害という情報が見つかりましたが、僕の環境では処理が止まってしまいました。もしかしたら、先の警告が直接の原因ではないかも知れません。

System.IO - DirectoryInfo not working in WebGL
またWebGLビルドではSyste.IOでファイルシステムにアクセスができないというとで、心当たりのあるコードを探ることにしました。

以下のようなローカルのJSONファイルをロードしてデシリアライズする処理を書いていた場合、先の警告が出力されて処理が止まります。

SampleLocalSave.cs
public T LoadLocalData(string path) where T : class
{
    try
    {
        using (var sw = new StreamReader(path))
        {
            var json = sw.ReadToEnd();
            return JsonUtility.FromJson<T>(json);
        }
    }
    catch (System.Exception e)
    {
        Debug.LogError($"Error: {path} | {e.Message}");
    }
    return null;
}

WebGLでファイルシステムを使わないように切り分ける

SampleLocalSave.cs
public T LoadLocalData(string path) where T : class
{
#if UNITY_WEBGL
    // WebGL用の代替処理
    return null;
#else
    try
    {
        using (var sw = new StreamReader(path))
        {
            var json = sw.ReadToEnd();
            return JsonUtility.FromJson<T>(json);
        }
    }
    catch (System.Exception e)
    {
        Debug.LogError($"Error: {path} | {e.Message}");
    }
    return null;
#endif
}

上記のようにWebGLビルド時はファイルシステムを使わないようにする事で一時的ですが回避する事ができ、WebGL書き出しのアプリが動くようになりました。
※代替処理は後で考えます。

最後に

Unity1週間ゲームジャム1に向けてWebGLビルド検証をしていた矢先のトラブルでした。結構時間を使ってしまいましたが、開始初日で起きた事が幸いでした。

扱った事のない技術の場合は、まず最初に仕様を把握して納品するための環境を整えておく事が大事だなと思いました。納品環境さえ整えば、残り時間はフルでモノづくりに集中できます。

環境

  • Unity2020.1.0f1

参考


  1. 期間2020年08月10日(月) 00:00 〜 2020年08月16日(日) 20:00 

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む