Steam DeckでUnity製自作ゲームを動かす方法

先日、Steam Deckを入手しました。男の子心をくすぐる良いハードですね!

早速、現在制作中のゲーム「Algolemeth(アルゴレメス)」をSteam Deckで動かしてみたので、今回はUnity製の自作ゲームをSteam Deckで動かす方法を共有します!

なお、今回はProtonによる互換レイヤーでのインストールについて説明し、Linuxビルドについては深く突っ込まない予定です。(不明な点が多いので)

公式情報

https://partner.steamgames.com/doc/steamdeck/loadgames

基本的にはここに書いてある通りにすれば問題ありません。

この記事では、ちょっとした注意点等も含めたUnity向けの導入方法を書きます。

UnityでWindowsビルドを用意する

まず、Unityの方で自作ゲームのWindowsビルドを普通に用意します。

PCのSteamでSteamOS Devkit Clientをインストール

steam://install/943760

上記のリンクから、SteamOS Devkit Clientをインストールします。

このツールを使うと、Steam Deckへデータを送信できます。

Steam DeckとSteamOS Devkit Clientをペアリング

前提条件として、Steam DeckとPCが同一ネットワーク上に存在している必要があります。

1.PC上のSteamからSteamOS Devkit Clientを起動

2.Steam Deckで、Steamボタン押下→システム→開発者モードを有効化 を選択

3.開発者→開発者ホストペアリング→新しいホストをペアリング を選択

4.SteamOS Devkit Client上にsteamdeck (IPアドレス) Register という表示が出たら、Registerを選択

5.Steam Deck側に「ペアリングリクエストをレビューしてください」というウィンドウが出るので、確認 を選択

Steam Devkit Clientがこんな感じの表示になったら接続成功です

ちなみにここの右の方にある Take Screenshot を押すと、Steam Deck上の画面をPCに直接保存できます。便利。

アプリをSteam Deckにアップロードする

1.Steam Devkit Client上の Title Upload を選択

2.ビルドした自作ゲームのアップロード情報を入力

基本的には画像のとおりに、

  • Steam Deck上で表示するゲーム名(適当でOK)
  • ビルド先へのパス
  • 起動したいexeのファイル名
  • Steam Playのチェック(Win向けビルドの場合)

を入力すれば良いと思います。(他は不要なファイルをアップロード時に消す設定など)

入力したら、Upload を選択

特にエラー等でなければ成功です。

上の方にあるSave Configを押すと、現在の設定を保存できます。

Steam Deckで動作確認

Steamボタン→ ライブラリ → 一番上の 非STEAM を選択し、
Devkit Game:(上で設定したゲーム名) を選択

プレイ を選択

起動成功!

おまけ:コントローラ設定

自作ゲームは現状タッチ操作のみに対応しているのですが、標準状態では画面のタッチ操作しか機能しませんでした。

ですが、Steam Deck上のコントローラ設定を変更するだけで、簡易的にトラックパッドやスティック操作によるカーソル操作に対応できました。その方法を説明します。

1.コントローラマークを選択

2.現在のレイアウト の下のボタンを選択

3.Mouse Onlyを選択

これで右スティック、右トラックパッドでのカーソル操作、トラックパッド押し込み、Rトリガーによる決定 が動くようになりました。

ボタンバインドを自分で編集することも出来ます。

真面目に対応しようと思ったらゲーム内できちんと設定する必要があると思いますが、ひとまずはSteam Deck側でレイアウトをいじるというのもアリかもしれません。

おまけ2:Linuxビルドについて

※試した程度なので軽い気持ちで読んでください。Linuxビルドについての知識はあまり無いです。

上記はWindowsビルドをProtonを通してLinuxで動作する形に変換し、起動する方法でしたが、UnityはLinuxビルドも出来ます。

ゲームによっては、Protonを通すより直接Linuxビルドを作ったほうが軽快に動作する可能性もあると思います。

Steam Deck上での起動方法は、基本的にはWindowsビルドと変わりません。

違うのは、Steam Devkit Client上でのStartCommandを”build.x86_64″を指定して、SteamPlayのチェックを外すだけです(付けても動きますが、外さないと意味ない気がする…)

自分の場合これでアプリの起動は問題なくできましたが、なぜかマウスカーソルの可動範囲が狭くなってまともに操作できませんでした。

一応、起動はしたのでご紹介までに。詳しい人色々教えて!

おまけ3:何故かゲーム内UIが英語になる

自分のゲームは、Unity公式のLocalization Packageで多言語対応しているのですが、なぜか標準が日本語で設定しているのに、Steam Deck上で起動すると英語になってしまうという問題が発生しました。

SteamDeck上で言語設定を変えられたら良いのですが、現状その方法が見つからなかったので、自分はアプリ起動時に、Localizationの設定を強制的に日本語に指定することで対処しています。

// SteamDeckでなぜかデフォルト英語になるので最初に設定
LocalizationSettings.SelectedLocale = Locale.CreateLocale("ja");

恐らく、Steamworksに登録してストアページ作ってビルドをアップロードして、という正規の手段では大丈夫なのではないかと思いますが、自分の環境だとこんな感じでした。

何かいい方法があったら誰か教えて!

感想

以上で説明は終了です。自作ゲームが携帯機で動くのって、何か満足感がありますね。

皆さんもぜひ自作ゲームをSteam Deckで動かしてみてください!

宣伝

2023/01/15(日) の東京ゲームダンジョン2に自作ゲームの全自動ダンジョンRPG「Algolemeth(アルゴレメス)」を出展します! 2024年完成目標でまだまだ作りかけですが、体験版をご用意する予定なので、是非遊びに来てください!前売り券発売中です!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする