学生がUnityで
2Dゲームを作るとこうなる
日本工学院専門学校
工業専門課程クリエイティブラボ科3年
高橋 良哉
自己紹介
高橋良哉 @shimuraya
!

日本工学院専門学校蒲田校
にてゲームプログラミング
を学びながら、独学でUnity
を勉強する。
Unity歴は2年ぐらい。
尊敬する人は須田剛一さん
と遠藤ミチロウさnと
石野卓球さん。
!

Unityの勉強会は第5回目
から参加してます。
アジェンダ
はじめに
2Dゲームを作るきっかけ
使用したプラグイン
タスク管理について
バージョン管理について
まとめ
はじめに
今回の発表内容は、
去年制作した2Dゲームの制作事例です。
そのため、現在のUnityやAssetの仕様とは
大きく異なる場合があります。
ご了承ください。
どうしてUnityで2Dゲームを?
去年の5月頃
プランナーが言いました。
Unityで2Dゲーム作らない?
Unityといえば3D。
Unityで作られた2Dゲーム
について調べてみると…
どうやらLIMBOが
Unity製らしい。
まぁできないことはないか…
じゃあUnityで
2Dやってみようか!
この安易な判断が
地獄の始まりでした。
6月、プランナーから
企画があがってくる。
せっかくLIMBOっていう元のゲームがあって、そっ
から考えるんだったらやっぱり白黒のゲームのほ
うがいいかなあと思って白黒のゲーム考えたんだ
けど、白黒だとアニメーション重視しないと見た
目的にも悪くなるし、やっぱりアニメーションは
スムーズに動かしたいよね。2Dでもパーティク
ル入れられたりする?入れられたら入れたら綺麗
だよね。あと、UnityだったらGUIまわりきれいに
できるんでしょ?それもやりたいよね。当然でき
るよね。あとUnityできるのチームに君しかいな
いよ。それでも大丈夫?ねえどんな気持ち?今ど
んな気持ち?ねえ?話し聞いてる?
要約すると
!

「大前提として2Dのゲーム。」
「GUIまわりきれいにしたいね!」
「アニメーションスムーズに動かしたいね!」
「みんなUnityやったことないけど大丈夫?」
課題がいっぱい。
どうしよう。
そうだ、AssetStoreを使おう。
地獄①
Asset多すぎ地獄
みんな大好きAssetStore
星の数ほどあるAssetから
どれを選べばいいのか…
今回は、今まで勉強会で
教えてもらったAssetを
使うことにしました。
①2Dゲームを作るには?
Unityで2Dといえば、
2D ToolKitがベター
だがしかし!
今回は個人的に
使ってみたいものがあったので
別のものを導入してみました。
Uni2D
$45(当時)
現在はUni2D v2の
リリースに伴い、
値段が$90になっています。
操作は至って簡単!
PhotoShopなどで
作ったリソースデータを
Uni2DのSpriteEditorで
オブジェクト化すると
どーん!
Uni2Dさんが
アルファ付きの2Dリソースに
勝手に当たり判定を
つけてくれちゃう。
ステージの作成は
これ1つあれば十分でした!
②タイトルきれいにしたい。
GUIまわりといったら
もうあれしかない!
NextGen UI(通称NGUI)
$95
Youtubeにあがっている
チュートリアル動画と、
NGUIの海外フォーラムを
見ながら作成。
プランナー曰く
メインメニューには
ステージ選択画面と
オプション画面と
ステージアンロック画面と
ゲーム終了画面を表示させる。
ステージは、クリアしたら次を
アンロックする形にする。
適当な黒い画像をボタンの上に
スプライト描画して、ステージ
クリア後にDestroyで被せたやつ
を消せばそれっぽく見えた。
オプションは
音量調節のスライダーのみ
UISoundVolumeで音量を調節して、
UISavedOptionを使って
スライダーの値を保存する。
なにも難しいことはなかった。
ステージクリア後に表示されるパスワードを
入力するとそこから始められる仕様のあれ
入力されたパスワードを
UIInput.current.text
で照らし合わせる。
合ってたらステージセレクトの
ボタンに被せてるものをDestroyして
ステージアンロック。
ゲーム終了は単純に
Application.Quitで。
GUIとかその辺は
これでOK!
③アニメーションを
スムーズに動かす
学生といえばネイティブの開発。
ネイティブ開発でアニメーションと言えば
マップチップでのアニメーション。
Unityなのにそんな
めんどくさいこと
しないといけないの!?
ふと、第5回渋谷Unity技術勉強会で
伊藤周さんが2Dリソースから
ボーンアニメーションを作ってたこと
を思い出す。
それがあった。
SmoothMoves
$95
PhotoShopでアニメーションさせたい画像を
ボーンごとにバラバラにして、SmoothMoves
の機能でTextureAtlasを作る。
SmoothMovesのエディタ内でボーンのPivot
と親子関係を決めて、動かしてみると…
こいつ・・・動くぞ!
Playerのアニメーション
はこれで完璧!
④Unity触ったこと無い
チームのメンバーは、
Unityでの開発をまったく
したことがない。
開発期間は半年…
一から勉強してる時間ない…
さて、どうしよう…
またまた第5回渋谷Unity技術勉強会
で伊藤周さんがノンプログラミング
でゲームっぽいもの作ってたことを
思い出す。
あれならUnityを
やったことなくても
できるかも!
PlayMaker
$90
最近なにかと話題な
PlayMaker。
PlayMakerEditorを開いて、
そこに遷移を書いていくだけ!
ギミックで
Trigger判定させて
起動させるときなどの
簡単な動きに使用。
難しい挙動などには適してな
いため、キャラクターの移動
はCharacterControllerで制御。
SmoothMovesとの連携ができたので、
ギミックのアニメーションは
全てSmoothMovesで作ってPlayMaker
で制御しました。
噂によると、
最近NGUIとも
連携できるように
なったらしいです。
いろいろなAssetと
連携できるところも、
PlayMakerの
強いところですね。
ひとまずこれで2Dゲーム
をつくる準備は整った…
チームも組めたし
早速作り始めよう!
地獄②
やること多すぎ地獄
これからチームメンバーに
仕事を振っていくわけだが…
①リソースの作成
②アニメーションの作成
③ステージの作成
④タイトルなどのGUIの作成
⑤敵キャラクターの導入
⑥ギミックの作成
⑦BGMやSEの作成、導入
おおまかにまとめると
だいたいこんな感じ
タスク管理どうしよう…
Excelでまとめてもいい
けど、みんな見るの
めんどくさいだろうし…
そこで使用したのが!
ポストイット!
まずはやること全てを
ポストイットに書いて
ホワイトボードに貼っていく。
そして書いたポストイットを
優先順に並べていく。
Sはとりあえず
後回しでも大丈夫なやつ
Mはそこそこ
優先的なやつ
Lは最優先。
その作業が完了したら
ポストイットを
レビューの欄に貼っていく
レビューは全て
チームリーダー(自分)が
独断で行う!
有無は言わせん!
レビューで通ったら右の
Doneの欄へ貼っていく!
できた作業と
できてない作業が
一目瞭然!
ちなみに…
これもいつぞやの勉強会で
教えてもらったやり方です。
ありがとう渋谷Unity。
地獄③
バージョン管理
めんどくさすぎ地獄
Unityといえば、
AssetServerでの
バージョン管理が
一番メジャーですよね。
実際にFGJでAssetServerを
使ってみて、めちゃくちゃ
便利だったのを覚えてます。
ただAssetServerを使うには、
チームライセンスが必要。
この制作のためだけに
全員チームライセンスを
買うのはもったいない…。
調べてみるとUnityの3.5から
Git等でもバージョン管理が
できるようになったらしい。
ダメ元でトライ!
Gitの設定は
「サルでもわかるGit入門」様
を参考にしながら設定しました。
参考サイトを見ながら設定したら、
とりあえず指定したフォルダに
コミットができるようになった!
やった!
これでバージョン管理できる!
一緒にGitのテストをしてた
メンバーとコミットしてみる。
繋がらない。
どうあがいても絶望。
どうやら学校のサーバーが外部のネット
ワークを遮断しているみたいで、勝手に
そんなことさせねーよ!?っていう状態
だったらしい。
Gitというか、もはやバージョン
管理ソフトが全て使えない。
どこかからサーバを借りればよかったの
だが、そんなお金はなかったので、自分
たちで作ってしまおうという話になる。
が、散々苦戦したあげく断念。
結果:USB is ジャスティス
※学生に限る(?)
まとめ
さすがUnity
2D相手でも超強い。
!

ありがとうUnity
パーティクルなどと
組み合わせると、
よりアーティスティックに
仕上げられるので、
学生でもそれなりに
クオリティの高いゲームが
作れちゃう!
作れないと思ったものは
買っちゃう。
!

NGUIがなかったら
GUIまわりは絶対に
完成しなかった。
ご清聴ありがとうございました。
質疑応答などあれば…
※懇親会にも参加します。

学生がUnityで2 dゲームを作るとこうなる