ゲーム開発チーム「丸ダイス」の開発ブログです! 公式サイトはこちら

【Steam】ユーザーがローカルファイルを追加、編集、削除すると、アップデートでどうなるか検証しました

Steamで配信したゲームのローカルファイルにユーザーが加えた変更は、その後ゲームがアップデートがされるとどうなるのか検証してみました!

ユーザーがローカルファイルを・・・

追加した場合

アップデートでの変更 どうなるか?
偶然にも同名ファイルが追加された 開発側のファイルに上書きされる
それ以外 追加されたまま

削除した場合

アップデートでの変更 どうなるか?
対象ファイルが更新された 復活する
対象ファイルが削除された 未検証(多分削除されたまま)
対象ファイルに更新なし 削除されたまま

編集した場合

アップデートでの変更 どうなるか?
対象ファイルが更新された 開発側のファイルに上書きされる
対象ファイルが削除された 削除される
対象ファイルに更新なし 編集が維持される

まとめ

アップデートで変更があるファイルは開発側のファイルが優先されますが、それ以外はユーザー側の変更が維持されるようです。

開発中のゲームで指定したローカルフォルダ内に使いたいVRMファイルを入れて、デフォルトアバターも同梱するという設計を考えていましたが、問題なさそうです!

余談ですが、セーブデータのようなユーザー側で開発側と同名別内容になりやすいファイルはうっかり上書きしないように注意が必要ですね。

検証条件

開発側として: 通常通り、SteamworksSdkを使ってビルドをアップロードして、ブラウザからブランチビルドをアップデート配信しました。

ユーザー側として: 一般ユーザーと同様に、Steamクライアントでゲームをインストールしたローカルファイルを操作しました。

ファイルの内容: hogeとかfugaとか書かれたシンプルなテキストファイルで試しました。

OS: Windows10

東京ゲームダンジョン5 展示振り返り

丸ダイスです! 5/4に東京ゲームダンジョン5が開催され、去年の3に引き続き丸ダイスは「マッスルニンジャVR」を展示しました!

去年に続き大変盛況で、クリア出来なくても目新しいVR体験を楽しんでくれたお客さんが多かったです。

忘れないうちに振り返りを書いてたら、これ隠さなくてもいいなと思ったのでそのまま公開します!

なので割と開発目線の記事です!ご容赦!

チュートリアルを追加した

去年からの変更として、ガイダンスなしでもプレイできるようにゲーム内でチュートリアルを整備しました(もちろんSteamリリースを見据えて)。

結果、説明なしでほとんどの方が基本プレイを始められる様子を確認でき、手応えを感じられました。

一方、道の脇に置かれるとチュートリアル動画に気付かないという問題がありました。

これはシンプルに、絶対に視界に入る道の中央に置けば済む話です。

→要タスク化。

Meta Quest2が充電切れをした

12:00から一般入場がスタートしあまり途切れることなくプレイを続け、15:40頃にQuest 2の充電が空になりプレイ不能になってしまいました。

1時間で19%まで充電出来たので16:40頃、展示時間残り20分だけど再開しました。

去年はそういう記憶はないので、理由は不明です。

まぁ、どのみち空腹+アテンドで喋り疲れてたのでちょうど良い休憩になりました。

1時間くらいですが、休憩も出来て気になった展示をプレイする時間が取れました。

展示をワンオペした

去年は知人1人に手伝ってもらったのですが、今年は完全ワンオペ。

ゲームパッドやキーボードのゲームはちゃんと作れば開発者が離席しても試遊展示が可能ですが、体感型VRゲームは不可能です。

  • ヘッドセットの付け方が分からない人が大勢いる
  • 全身で遊ぶのでプレイ中のお客さんと周囲の安全監視が必要
  • Meta Questは、ルームスペースがズレる、放置でスリープすることがあり、お客さんが対処できない
  • Meta Questは簡単に持ち出せる割にそこそこ高価で盗難が怖い
  • (終わった後の片付け方まで自動で案内するビルドにする必要があり、大変)

理由はこんなところですね。

意外となんとかなってしまいましたが、知り合いが挨拶に来てもゆっくり話せませんし、前述通りご飯も食べられません・・。

教訓:やはり展示スタッフは2人は欲しいです。

搬入搬出をワンオペした

  • 背負子(13kg):デスクトップPCに布をかけて縛り付け
  • スーツケース(23kg):PCモニター2台、Quest2一式、動画用iPad、ほか
  • ショルダーバッグ:貴重品 去年とほぼ同じこの荷物で単独搬入搬出しました。宅配は使っていません。

自宅から最寄り駅でタクシーやバスを使ったり各停に乗って座ったりしたら楽になりました。夏じゃなくて春でしたし・・。

普通のゲーム展示と比べるとかなりの荷物ですが、運べない重量ではないです。

ぼく自身がマッスルニンジャなので(震え声)。

一点、今回の重要な学びは「混んだ電車内はしゃがんで背負子を降ろすスペースがないので、背負子は駅のホームで降ろしておいて両手に持って入ること」。山手線とか。

HMDのヘッドストラップを買い忘れた・・

Meta Quest 2 Eliteストラップ | VRヘッドストラップ | Meta Quest

後ろをカチカチっと回すと着脱が簡単にできるこういうやつがあります。

標準のバンドはお客さんごとの着脱が結構大変で、存在は去年知ってたのですがボーっと生きてたら普通に買い忘れました…。

UnityのVR開発SDKについて

これは

  • OpenXR Plugin
  • Steam VR Plugin

大きくこの2つに分かれて、本作は比較検討した上で後者を使っています。

主に作りやすさと安定性で決めたのですが、結果的にMeta Questを使って起動するには

Meta Quest上で Quest Link(=Meta QuestのPCVR接続機能)を起動 → Quest Link上で Steam VRを起動 → ゲームを起動

と、起動手順が多い上にQuestのスタンドアロンアプリには出来ないゲームになってしまいそうです。

一方、本作と近いジャンルの体感型VRゲームをすぐ近くで展示していた Shibuya Emergent Gamesさんの

この作品。

こちらはMeta Questのスタンドアロンアプリにもなっているし、PCVRとして遊ぶときもQuest Linkのみで起動出来て快適でした。

OpenXR Pluginで作られているそうで、こちらはそういう柔軟なビルドが可能とのことでした。Valveも関わった上でのVR開発の共通基盤という触れ込みですしね。

流石に今からは変えませんが、またVRを作るならこちらもありかもしれません。

ほか、

Hurricane VR - Physics Interaction Toolkit | 物理エンジン | Unity Asset Store Hurricane VRという面白そうなVR物理ツールキットも教えてもらえました。

大変参考になりました。

その他、良かったところ

  • アバターについて、昨年は仕込んでおいたものを使いましたが今年は自由なVRMモデルが使えるようにパワーアップしています!ずんだもんとか反応がよかったですね。
  • ゲーム中にポーズメニューが使えるので、プレイ中にサッとタイトルへ戻るのが楽になりました

その他、問題があったところ

  • 誤操作防止のためにタイトルのボタンは一歩前に出ないと届かない位置にしていたら、ステージ開始後も前に進んだ位置のまま遊ばれてしまった→ホームポジションに対するボタンの位置はたったまま押しやすい位置に統一すべきですね。

特にオチはないですが、ゲームダンジョンの展示は盛況でしたという報告でした!

【Unity Cinemachine】Z Dampingでプレビュー通りにTracked Dolly Bodyが動かなかった

結論だけ

Virtual Camera Bodyの Z Dampingが0になっていないと、実行時のみカメラ位置が遅れます!

これを0にすればOK!

詳しく

カメラを含めたカットシーン演出ではTimeline+Cinemachineが便利です。 Cinemachine、Timelineって何?→ゴメン、ググって!

こんな感じで、Tracked Dolly Body と Dolly CartをTimelineで一緒にアニメーションさせることで、カメラ位置と注視位置を両方動かすカメラが作れます。

ところが、

www.youtube.com

実行前にTimelineをプレビュー再生するとこうなのに

www.youtube.com

プレイを押してゲームを再生させると、このようにカメラが右に振れてしまいます。

シーンを見てみると、プレビューに比べてカメラ位置が遅れていることが分かり、最初に書いた通り Z Dampingを0にすると直りました! 何もいじってないのでデフォルトでこうなっている模様。カメラが激しく動きすぎないようにするための機能っぽいですが、カットシーンでは不要なので要注意ですね!

【Unity】Unhandled exception. System.BadImageFormatException: Could not load file or assembly ILPostProcessorRunner.exe の直し方

Editorで開発中、突然「実行前にコンパイルエラーを直す必要があります」と言われ、Editor実行ができなくなった。 コンソールログを見ると以下のエラーが赤アイコンでたくさん並んでいた。

Unhandled exception. System.BadImageFormatException: Could not load file or assembly 'C:/Program Files/Unity/Hub/Editor/2021.3.14f1/Editor/Data/Tools/ILPostProcessorRunner/ILPostProcessorRunner.exe'. Format of the executable (.exe) or library (.dll) is invalid.
File name: 'C:/Program Files/Unity/Hub/Editor/2021.3.14f1/Editor/Data/Tools/ILPostProcessorRunner/ILPostProcessorRunner.exe'
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly)
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
   at Program.Main(String[] args)

結論

UnityHubから該当のUnity2021.3.14f1を再インストールすることで直った。

修正までの経緯

・起きる直前の作業は、コードを変更してCtrl+Rでスクリプトをロード

・普通のMonobehaviourコードで、特別なコードは書いていなかった。

・手元の変更がない他のプロジェクトを開いたところ、やはり同じエラーでEditor実行が出来なかった

・PCを再起動したが、治らなかった

・エラー内にあるILPostProcessorRunner.exeのフォルダを見に行ったところ、ファイルサイズが0KBになっており、更新日時がこの時点の1時間ほど前になっていた。

・UnityHubからUnityEditorをアンインストールして、再度インストールした

・無事に正常にEditor実行できるようになった

・再度ILPostProcessorRunner.exeを見たところ、46KBだった。

推測

意図しない何らかのプロセスがILPostProcessorRunner.exeを破損させた(例えばアンチウィルスソフトなど)

直前の作業や手元の変更は関係がないと思われる。

【Unity】VRゲームでCameraを重ねた固定位置UIは基本作れない

SteamVR Pluginに関する技術メモです!

前提

時間制限のような固定位置でのUI要素を作りたい!

  • SteamVR PluginでのVR開発
  • Unity2021.3.14f1
  • Meta Quest 2 (Quest Linkを使用)
  • Windows10

分かったこと

結論から言うと、ヘッドセットに描画出来るカメラは1つだけです。

普通のゲームと同じ要領で、Depthを上げたUI用カメラをCanvasの中に入れて通常のカメラの描画結果の上に重ねて・・という方法は、おそらく不可能です。

動作検証の詳細

画像の通りプレビューではUIが表示されていますが、実行するとヘッドセットでは消えてしまいました。 機能している1人称カメラを試しに消したところ、UI用カメラの結果だけが描画されるのでなく、何も描画されない結果になりました。

いろいろ試したところ、UI用カメラに以下の条件が満たされているとUI用カメラのみがヘッドセットで描画されました。

  • Projection: PerspectiveはOK。OrthographicはNG
  • ClearFlags: Sky boxはOK。Depth OnlyはNG。(おそらくSkybox or Solid Color)
  • Depth: -1~1はOK。2はNG(おそらく2以上がNG)
  • Target Display: 1はOK。2はNG
  • Target Eye: BothがOK。NoneはNG (これは当然)

これらOK条件を全て満たしている場合のみ、Cameraがヘッドセットに描画されました。

そのようなカメラが複数ある場合は、Depthが高いものが優先されるようです。 条件を見れば分かる通り、そもそも複数のカメラで重ねて描画する設定が選択出来ません。

理由は不明ですが、ひとまずUIも含めて1カメラでシーン内に作っていくしかなさそうです。

推測

SteamVR PluginがUnityのカメラと深く結びついていて、マルチカメラが想定されていないまたは意図して制限しているのかもしれません。

一般的にいってカメラが複数あるとゲームのフレームレートは下がりますし、高FPSが必要とされるVRでは頑張って1カメラで作りなさいということなのかもしれませんね。

【おしながき】ゲームマーケット2022秋

さかだちの街の開発が追い込みな丸ダイスです!

なんと、サークル丸ダイスとして初めてゲームマーケットに出ます!

スペースは

10/30(日)日-ア06

です!

1.「ウレスジアラスジ 〜 天才小説家に転生した私が考えた絶対売れるタイトルを発表します 〜」3000円

gamemarket.jp

それっぽいワードを組み合わせて、最強のクソ長あらすじタイトルを作るゲームです。

カオスすぎる面白タイトルが爆笑を誘う・・はずが、どう組み合わせても意外とありそうになってしまい微妙な失笑に包まれると話題のネタ系ボドゲです。

新作、初頒布ですよ! ほかのどこでも買えません!

以上です! では会場でお会いしましょう!

【おしながき】コミックマーケット100

こんにちは! 丸ダイスです!

場所は

8/13(土)1日目 西し-19a

です!

1.「さかだちの街」(C100体験版)100円

youtu.be

さかだちをして視点をひっくり返すことでぶら下がってることになっちゃう

製作中のさかだちパズルアクションです!

インディーゲームコネクト2022、東京ゲームダンジョンで展示した内容と大体同じで、序盤のワールドを体験出来るものです!

ダウンロードURLのついてポストカードを頒布します!

ほか既作

他では手に入らないディスク版ですが、今月中に販売されるSteam版、Switch版の翻訳やコントローラー対応はないです!

ファングッズだと思って頂ければ。


「さかだちの街」の完成版も翻訳済みSteam版が初出の可能性があり、「コミケでパッケージ版を初出」も段々過去のものになっていくのかもな・・

という思い。 冬コミも出るかどうか・・ちょっと考え中です。