先日、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をインストール
上記のリンクから、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年完成目標でまだまだ作りかけですが、体験版をご用意する予定なので、是非遊びに来てください!前売り券発売中です!