2022年5月に初めて Unity で開発した 2D 脱出ゲームを公開しました。
-
脱出ゲーム「Bamboo2」を公開しました
新しい脱出ゲーム「Bamboo2」を公開しました。最後にこのようなブラウザゲームを作ったのは2012年の事で10年ぶりの新作です。(PC またはタブレットのみ対応しています。) 今作は2011年に公開 ...
2020年12月に Flash が完全終了し、ゲーム開発はおろかゲームをプレイする事すら不可能になってしまいました。
Flash 以外でゲーム開発はハードルが高く、そのためゲーム開発から離れていました。
しかし Unity に触れてみると思ったほど難しくはなく、Flash での作り方に似ている部分もある事に気が付きました。なので Flash 脱出ゲームで複雑なギミックを作ってきた方なら、スムーズに Unity に移行できるかと思います。
とはいえ他の開発環境でのゲーム開発はやはりハードルが高いものです。そのハードルを一つずつ低くしていきましょう。
Unityに対するハードル
お金がかかるのでは?
Unity は商用ゲームの開発にも使用されているゲーム開発エンジンです。高額なお金がかかりそうという印象があるかもしれません。
FLASH でのゲーム開発には Adobe Flash の開発ソフトが必要でした。フリーソフトもありましたが、本家のソフトを買うと数万円かかります。学生時代に買うと安いとはいえ、初期投資が必要でした。
しかし Unity の場合、一定条件下では無料でゲーム開発を始められます。条件とは以下の1つです。
収入ならびに資金調達(自己資金を含む)の過去12ヶ月の合計が年間 10 万ドルを超えない場合、 Personal を使用できます。
ようするに年収10万ドル以下(約1,200万円)なら Unity の無料版を使用できます。
プログラミング言語が難しそう
Flash では ActionScript を使用してプログラミングをしました。
Unity では C# というプログラミング言語を使用します。C# というと物凄く難しそうな感じがするかもしれません。私も Unity に触れる前はかなりハードルの高さを感じていました。
でもプログラミング言語ってある程度は基本は同じなのです。
ActionScript でも使用するような「for, if, switch, while」などは C# でも同様に使います。
これは C# でのプログラミング画面です。何か色々冗長で難しそうですね。
でもここに書かれている using なんとか、class の部分に関しては自動入力されるので一から入力する必要はありません。処理部分しか書く必要はありません。
変数や関数、命令系統などもプログラミング時に候補としてリストが出るので、入力が楽です。
ActionScript と全く同じわけではありませんが、ある程度の違いを覚えるだけでスムーズに移行できると思います。
アニメーションができるの?
Unity でも Flash のようなフレームアニメーションの機能はあります。
フレームアニメーションを使わなくてもA地点からB地点までスムーズに移動するという便利なメソッドもあります。
作り方の違い
2D で脱出ゲームを作った場合の違いについて紹介します。
場面の移動
脱出ゲームの作り方は人によって違うと思うので一概には言えませんが、Flash の場合、フレームごとに場面を区切って作る事ができました。
こちらは Unity での画面です。Unity では全てのグラフィックを重ねて「表示・非表示」を切り替えるという作り方となります。
もしくは不要なグラフィックはゲーム画面外に置いておいて、表示位置を移動してゲーム画面で表示するという方法で作る事もできます。
プログラムを書く場所
Flash では ActionScript をムービークリップ、ボタン、フレームのように様々な場所に書く事ができます。
Flash 以外で本格的にゲーム開発をする人は、この点を嫌っていました。どこに何を書いたのかわからなくなると。私のように Flash でゲームを作ってきた身としては、こちらの方がわかりやすかったです。
Unity では C# を使用し、基本的に1つのソースファイルの中に書きます。いくつかのファイルに分ける事はできますが、ボタン、オブジェクトごとにプログラムを書く事はありません。
先日作った Unity での 2D 脱出ゲームはソースコードが2800行になりました。
描く機能
Flash ではイラストなどを描く機能も充実していましたが、Unity では乏しいのでイラストなりグラフィックは外部のソフトで編集して、画像を Unity にインポートして使用する必要があります。
スマホアプリ
Flash は iOS が対応していなかったため、スマホゲームを作るには適していませんでした。
Unity ではスマホアプリとしてゲームを開発する事もできます。
似ているところ
Unity での開発は Flash と似ているところもあります。
クリックポイント
Flash では透明ボタンを配置してクリックポイントとする手法が多いと思いますが、Unity でも同様の方法で可能です。
透明ボタンを配置して、クリック時に実行する関数を指定します。
ソースファイルに関数を記述しておきます。
public void doorOpen(){ door1.setActive(false); door2.setActive(true); }
上の関数はあくまで例ですが、ドアが閉まっている画像からドアが開いている画像へ「表示・非表示」を切り替える処理です。setActive は表示・非表示を切り替えるメソッドで false が非表示で、true が表示です。
Unityの勉強は何から始めたらいい?
2D の脱出ゲームは Unity の一部の機能しか使用していません。
近道は実際にサンプルでも自分でプログラミングしてみて、動く様子を確認する事だと思います。
おすすめは下記の本「Unity ではじめるC#」です。Unity の導入から C# のプログラミングの基本も書かれています。私もこの本から始めました。
なんとこちらの本には脱出ゲームのサンプルが掲載されています。素材も用意されているので、本を読みながら脱出ゲームを作ってみる事が可能です。これで Unity でどのように脱出ゲームが作れるのか学べます。
おわりに
Unity でも 2D 脱出ゲームなら意外と難しくありませんでした。Flash が終わってゲーム開発をやめてみた方も Unity で挑戦してみてはいかがでしょうか?