🔤
[Unity] Steamのゲーム言語設定について (2024.04)
この記事のゴール
- Steamクライアント上の各ゲームの設定画面で、日本語、英語の選択ができるように
ゲーム言語設定 - ゲーム内に Steamクライアント上で指定した言語を反映できるように
はじめに
当初ストア側で対応言語の設定をしたので対応は完了かと思っていましたが、Steamクライアント上で言語が選択できず、少し迷ってしまいました。
ストアページの管理内の対応言語
当初ストアとアプリの設定は別であるという概念が理解できていなかったのが、大元の原因ですが、その他にも細かいところで詰まったので、次に実装する方が少しでもスムーズに対応できるようにひとつの手順としてまとめました。
対象者
- SteamWorks 登録済みであり、ストア公開済みの方
- Steamworks.NET を導入済みの方
- 多言語対応をする方
環境
- Windows10
- Unity 2022.3.12f1
- Unity公式のLocalizationパッケージ(v1.4.5)導入済み
事前準備
- ストア公開で保留しているものがあれば、公開して問題ない状態にします(手順内でストア内容の公開が必要なため)
対応手順
1. [SteamWorks] デポの言語設定追加
1.1 ゲーム内言語を設定するアプリのデポを開く
SteamWorksのダッシュボード > [ アプリとパッケージ ] タブ > すべてのアプリケーション を開きます
言語を設定したいアプリの [ Steamworks 管理 ] をクリックします
[ SteamPipe▼ ] > デポ をクリックします
1.2 ベース言語の管理で追加したい言語にチェックを入れて [ 保存 ] をします
1.3 言語設定を公開します
ストア公開しないと、Steamクライアントで言語変更ができないので、公開を行います。
- [ 公開 ] タブをクリックします。
- [ 差分表示 ] をクリックし、差分の
baselanguages
に設定したい言語が入っていることを確認します。
- [ 公開の準備 ] をクリックし、エラーが出ないことを確認します。
- [ Steamに公開 ] を押して、確認コードと内部変更メモ(オプション)を入力して [ 本当に公開する ] をクリックします
2. [Steamクライアント] 言語切り替えが可能になっているか確認
2.1 Steamクライアントが起動中であれば再起動します
設定前から起動中の場合、以前の設定がクライアント側に残ってしまうのか、設定画面にすぐに反映されないようです。
2.2 [ ライブラリ ] から対象のゲームを開きます
2.3 [⚙アイコン] > [ プロパティ ] をクリックします
2.4 一般 > 言語 に [1] で設定した言語が表示されていることを確認します
3. [スクリプト] 言語をゲーム内に反映
3.1 言語が正しく取得できているか確認します
言語ごとにどのような値が返ってくるかは、Steamでサポートされている言語 で確認することができます。
if(SteamManager.Initialized)
{
Debug.Log(SteamApps.GetCurrentGameLanguage());
}
例)日本語の場合
3.2 言語設定による切り替えを行います
今回は、日本語か英語かの単純な切り替えなので、if文での簡単なコードを記載します。
if(SteamManager.Initialized)
{
if (SteamApps.GetCurrentGameLanguage() == "japanese")
{
LocalizationSettings.SelectedLocale = Locale.CreateLocale("ja");
}
else
{
LocalizationSettings.SelectedLocale = Locale.CreateLocale("en");
}
}
参考
Discussion