
弱冷房車
乗り込もうとした電車の車両に「弱冷房車」のステッカーが貼られているのを見ると絶望する地球温暖化懐疑派の皆さんこんにちは。通勤ラッシュの時間帯に弱冷房とか誰が希望したんでしょう?え人が密集して暑苦しいのに冷房が何の役にも立たないばかりか、駅に停車するたびに開いたドアから熱風が吹き込んでくるので車内にいながら熱中症になりそうなんですが。弱冷房車提案した奴に小一時間説教してやりたい
教育素材的ゲーム
実は本格的に遊ぶのは初めてなんですリズムゲームを作成している上では勉強の為にも購入すべきと判断して11年ぶり?の新作で盛り上がっているゲームを購入しました。

昔はゲームセンターに筐体が設置されていてそこで遊んだ記憶では判定がかなりシビアだったと思うのですが、今作は入力の判定もステージクリアの基準も少し緩めになっている気がします。(特にオモテ側ステージ)
ゲーム開始前に遅延調整が有ったり、各ステージのチュートリアルがしっかりしていたりとクリアが容易になった理由は幾つかあるのでしょうが、基本的に判定基準が少し緩めに設定されているのが大きな理由になっていると思います。おそらく多くの人がオモテ側の殆どのステージを初見でクリアできているのではないでしょうか?

もちろん判定緩くなったからと言って面白さが損なわれているわけではなく、リズムに乗ってボタンを押す(コントローラーを操作する)事の楽しさが十分に表現されており、一つのステージは短いながらもバリエーションが豊富なので時間を忘れてゲームに没頭できるようになっているのはさすがといった感じ。
従来のリズムゲームだけでなくビートスペルといった新しいミニゲームも楽しくて、11年待った人も新しく始める人も誰もが楽しめるゲームだと思います。

ただ一つ難を上げるとすると、「リズムに従順であること」という主題が強すぎるため、一人でゲームを続けていると次第に「娯楽としてゲームを楽しむ」というより「音楽教育としてリズムを学んでいる」感が強くなり、プレイする度に緊張感と疲労がどっと押し寄せてく感じになります。
ここら辺は人によって感想が違うかもしれませんが、一人で腰を据えてじっくり楽しむ、というよりは大人数でワイワイ言いながら気軽に遊ぶ、といったスタンスが最も似合うゲームなのかもしれません。
テキストをスクリプトで制御する
Unity Localizationを使うと基本ノーコードで多言語対応可能ですが、スクリプト内で文章を編集してテキスト表示するような場合には、どうしてもスクリプト側で多言語化したテキストを参照する必要があります。
例えば、下のような画面で「テスト開始」のボタンを押すとボタンのテキストが「テスト停止」に変わり、「テスト停止」の表示中のボタンを押すと「テスト開始」と文言を変えるような制御をしたい場合、

日本語では「テスト開始」⇔「テスト停止」と表示し、英語では「Begin test play」⇔「Stop test play」と表示させたい。
勿論これをスクリプト内で直に文言を設定しても良いのですが、その場合は「ボタンの状態×選択された言語」の判定が必要となるので少し面倒です。なので今回はUnity Localizationを利用して「ボタンの状態」だけを判定して、選択言語に応じた文言をLocalization Tableから取得したいと思います。
Localization Tableの参照
最初にLocalization Tableには以下のように設定しておきます。

スクリプトでLocalization Tableの内容を参照するにはLocalizedStringを使います。
LocalizedString localizedString = new LocalizedString("テーブル名","キー名")
「テーブル名」に先ほどの図のLocalization Tableのテーブル名を指定し、「キー名」には「テスト開始」を表示したい場合は「play-start」を、「テスト停止」を表示したい場合は「play-end」を指定します。
すると現在の言語でローカライズをさせたLocalizedStringが取得されるので、その文字列を非同期取得で取得します。
string message = await localizedString.GetLocalizedStringAsync().ToUniTask(cancellationToken: cancellationToken); // メッセージテキストを更新 textMeshPro.text = message;
実行結果
実行結果は以下のようになります

日本語

英語































































