ヴァル研究所 Advent Calendar 2016 の16日目はUnityでゲームを作るお話です。
そして、ネタは「駅のスリーレターコードを当てるゲームを作ってみる」です。
スリーレターコードってなに?という方、最近話題のアレです。
東京オリンピックに向けて外国語対応も進んでいますので、外国人向けのゲームとしても良いんじゃないでしょうか。
ちなみに、秋葉原駅をAKBって略したり、新宿駅をSJKって略したりします。
某アイドルグループじゃないですよー
まず最初に
難しくて「ヨクワカンネ」ってならないように、ノンプログラミングで行きます。安心してください。
また、Unityを使ったことがある方であれば誰でも、そして、使ったことない人でも分かりやすくをモットーにします。
でも、時は金なり!
困難は金の力で解決します。
下準備
アセットが動作するようにします。
必要なアセットを用意する
さすがにゲームを一から作るとなると大変な労力が必要になるため、基本となる機能はアセットストアから入手します。
まずは、ゲーム本体となる完成プロジェクトです。
何か見たことあるワードサーチゲームのテンプレートですね。
これをベースにカスタマイズしていきます。
これは、上記テンプレートを動かす際に必要となるアセットです。
大人気アセットなので、持っている人も多いのではないでしょうか。
ダウンロードしてUnityにインポートする
早速アセットストアからダウンロードして2つともインポートします。
各アセットをインストールする
Playmakerはインストールも必要になりますので、「Install PlayMaker」を押します。
Playmaker Word Game Kitは追加のパッケージインストールが必要ですので、"Word Game Kit"にある"IMPORT THIS After Playmaker Installation.unitypackage"をインポートします。
エラーに対処する
インポートが完了すると"ConvertSecondsToString.cs"でエラーが出ていると思います。
これは、同じクラスが複数のファイルで定義されているというエラーですので、重複したファイルを削除してしまいましょう。
PlayMakerのバージョンにもよると思いますが、"PlayMaker Custom Actions/Convert/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のマスにアルファベットが並んでいますので、スワイプするような感じで選択していきます。
お、いい感じに選択できそうです。
T→Y→Oってやると東京駅のスリーレターコードになります。
選択できる駅が無くなったらSHUFFLEを押して並びを変えてみます。
一見、選択できなそうな配置でも、選択できます。
こんな配置でもU→E→Nってうまく動かすと上野駅のスリーレターコードになります。
ゲームのカスタマイズ
プレイしているとすぐに気付くと思いますが、なかなか良い並びで表示されず、スリーレターコードになりません。
また、スリーレターコードって結構覚えられないですよね。
神田駅はKNDで新橋駅はSMBなのですが、「ん」はNなのかMなのか、迷います。
ということで、駅ナンバリングの先頭文字も登録しちゃいましょう。
2文字も指定できるようにする
Playmaker Word Game Kitのドキュメントにも書いてあるのですが、デフォルトだと最低3文字となっていて、2文字のアルファベットは指定できないようになっています。
そのため、まずは2文字も指定できるようにします。
と言ってもスクリプトを修正する必要はなく、インスペクターのMinimumWordLengthを3から2に変更するだけです。
辞書情報に追加する
スリーレターコードと同様に"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に反応しました。
Jから始まる駅ナンバリングはたくさんあるため、どんどん見つけることが出来ます。
まとめ
いかがでしたか?
一切プログラミングせずにクオリティが高いゲームが出来たと思います。
ただ、やはり選択できる駅が少なくて、何度もSHUFFLEを押してしまうことになりますので、そういった時は、空港コードを入れてみたりしても面白いと思います。