AdventCalendar
Unity
駅すぱあと

Unityを使って駅のスリーレターコードを当てるゲームを作ってみた

More than 1 year has passed since last update.

ヴァル研究所 Advent Calendar 2016 の16日目はUnityでゲームを作るお話です。

そして、ネタは「駅のスリーレターコードを当てるゲームを作ってみる」です。
スリーレターコードってなに?という方、最近話題のアレです。
東京オリンピックに向けて外国語対応も進んでいますので、外国人向けのゲームとしても良いんじゃないでしょうか。

ちなみに、秋葉原駅をAKBって略したり、新宿駅をSJKって略したりします。
某アイドルグループじゃないですよー

まず最初に

難しくて「ヨクワカンネ」ってならないように、ノンプログラミングで行きます。安心してください。
また、Unityを使ったことがある方であれば誰でも、そして、使ったことない人でも分かりやすくをモットーにします。

でも、時は金なり!
困難は金の力で解決します。

下準備

アセットが動作するようにします。

必要なアセットを用意する

さすがにゲームを一から作るとなると大変な労力が必要になるため、基本となる機能はアセットストアから入手します。

まずは、ゲーム本体となる完成プロジェクトです。

Playmaker Word Game Kit

何か見たことあるワードサーチゲームのテンプレートですね。
これをベースにカスタマイズしていきます。

これは、上記テンプレートを動かす際に必要となるアセットです。

Playmaker

大人気アセットなので、持っている人も多いのではないでしょうか。

ダウンロードしてUnityにインポートする

早速アセットストアからダウンロードして2つともインポートします。

Playmaker Word Game Kit

Playmaker

各アセットをインストールする

Playmakerはインストールも必要になりますので、「Install PlayMaker」を押します。

Install PlayMaker

Playmaker Word Game Kitは追加のパッケージインストールが必要ですので、"Word Game Kit"にある"IMPORT THIS After Playmaker Installation.unitypackage"をインポートします。

IMPORT THIS After Playmaker Installation

エラーに対処する

インポートが完了すると"ConvertSecondsToString.cs"でエラーが出ていると思います。
これは、同じクラスが複数のファイルで定義されているというエラーですので、重複したファイルを削除してしまいましょう。
PlayMakerのバージョンにもよると思いますが、"PlayMaker Custom Actions/Convert/ConvertSecondsToString.cs"を削除することで動くようになりました。

ConvertSecondsToString.cs

スリーレターコード当てゲームの実装

早速、ゲームを実装していきましょう。
でも、ノンプログラミングです。
C#が分からないという方でも大丈夫です。

サンプルのシーンをカスタマイズする

"Word Game Kit/Seenes/World Game EN.unity"を基にカスタマイズしていきますので、まずはシーンを開きます。

辞書情報を変更する

このままですと元々入っている辞書情報を利用してしまうため、"Word Game Kit/Resources/Dictionaries/EN_Standard.txt"を下記に書き換えてしまいます。
テキストエディタで書き換えてしまえば良いので、MonoDevelopメモ帳など、テキスト編集が可能なアプリケーションで開きます。

tyo
knd
akb
uen
npr
ikb
sjk
sby
ebs
osk
sgw
hmc
smb
abn
urw
omy
ofn
ttk
yhm
mkg
kws

保存は忘れずに!

ゲームを実行してみる

早速、実行してみましょう。
4x4のマスにアルファベットが並んでいますので、スワイプするような感じで選択していきます。

お、いい感じに選択できそうです。
TYOってやると東京駅のスリーレターコードになります。

TYO

選択できる駅が無くなったらSHUFFLEを押して並びを変えてみます。
一見、選択できなそうな配置でも、選択できます。
こんな配置でもUENってうまく動かすと上野駅のスリーレターコードになります。

UEN

ゲームのカスタマイズ

プレイしているとすぐに気付くと思いますが、なかなか良い並びで表示されず、スリーレターコードになりません。
また、スリーレターコードって結構覚えられないですよね。
神田駅はKNDで新橋駅はSMBなのですが、「ん」はNなのかMなのか、迷います。

ということで、駅ナンバリングの先頭文字も登録しちゃいましょう。

2文字も指定できるようにする

Playmaker Word Game Kitのドキュメントにも書いてあるのですが、デフォルトだと最低3文字となっていて、2文字のアルファベットは指定できないようになっています。
そのため、まずは2文字も指定できるようにします。

と言ってもスクリプトを修正する必要はなく、インスペクターのMinimumWordLength3から2に変更するだけです。

MinimumWordLength

辞書情報に追加する

スリーレターコードと同様に"EN_Standard.txt"へ駅ナンバリングの先頭2文字を追加していきます。
ちなみに、さすがに1文字はゲームにならないため、2文字以上を抽出しています。
また、駅ナンバリングはここに記載した以外にもたくさんあるので、全国を対象に追加しても良いと思います。

jt
jo
jk
jh
jn
ji
jy
jc
jb
ja
jl
je
jm
js
dt
en
fj
hs
ik
in
kd
kk
ko
ks
mg
mm
oe
oh
om
ot
si
sl
sg
sk
so
sr
ss
st
sw
sy
td
ti
tj
tm
tn
ts
ty

保存は忘れずに!

さっそくカスタマイズしたゲームをプレイしてみる

山手線のJYに反応しました。

jy

Jから始まる駅ナンバリングはたくさんあるため、どんどん見つけることが出来ます。

jm

まとめ

いかがでしたか?
一切プログラミングせずにクオリティが高いゲームが出来たと思います。
ただ、やはり選択できる駅が少なくて、何度もSHUFFLEを押してしまうことになりますので、そういった時は、空港コードを入れてみたりしても面白いと思います。