【Unity】本物の素人が独学で2ヶ月かけてクソゲーを作ってみた結果
これが結果だ!
とりあえずPC向けブラウザゲームとしてGoogle Driveにアップしといた。
(現在はGoogle Driveのウェブ公開機能が廃止されたので、Unityroomに投稿)
スーパーカラバッジョワールド | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
クソゲーではあるが、やれば何かしらできるものだなぁと感慨深い
というわけで過程は↓
我こそが本物である!
「ゲーム制作素人が1週間程度で云々〜」という記事をたまに見かける。
しかしだ、彼らの多くはプログラミング等の何らかの土台があった上で挑戦している。素人といっても「素人(自称)」なので、習得速度についてはあまり信用できない。中には本当に素人と言える人もいるが、自力でちゃんとゲームとしての体をなすものを作るには、やはりそれなりに時間がかかっているようである。
僕自身はということ、ウェブサービスを作って世に送り出している活動をしているものの、プログラマーではないし、プログラミングは出来ない。だからツールの使い方とプログラムが書いてあるページを読んだって、何も出来やしなかった。これまでの経験でゲーム制作に直接使えるものも、これといってなかった。
それだけではない。ゲームに使うための音楽や効果音を作るスキルもないし、グラフィックを作るスキルもない。
せいぜい、ちょっとネットが使える程度。
要するにそこらへんのネット好きと大して変わらない、まぎれもない素人である。
本当にやりたいと思ったら既にやっているッ!
ここしばらくは主にアプリ☆メーカーの改良をしているのだけど、仕様の面は結構前からほぼ出来上がっていた。
するとプログラマーでない僕は特にすることがなくなった。
なので次に作るサービスの仕様策定も進めたが、それも終わってしまった。
そういうタイミングで、急にゲームを作りたくなった。
今までもぼんやりとやりたいなぁと思っていたけど、それは所詮行動に移さない「やりたい」であった。やるつもりなんかなかった。その「やりたい」は、「自分には出来ない」という諦めの感情が生んだ虚像にすぎなかったのだ。
しかし近年のゲーム制作ツールに関する素晴らしい記事を何度も目にしていたら、気づいたのである。「自分には出来ない」なんていう事実は存在しないのかもしれない、と。
そうしてゲーム制作について調べたら、改めてゲームを作ろうという気持ちが生じてきた。それは「宝くじが当たったらなぁ」という夢想の類なんかではなく、メモを取ろうとして目の前のペンを取ろうとするような、ごくあたりまえのことを実現する気持ちだった。
で、どうやって作ればいいんだよ!
近年の優秀なツールでゲーム制作をするといっても、ゲーム制作ツールはいろいろある。その中でも、主に検討したのはこの4つである。
- Unity
- GameMaker
- Unreal Engine
- Cocos2d-x
僕はUnityを選んだ。理由は以下だ。
- 普段使っているMacでがっつり使える
- もともと3D向けだけど2Dもがっつり作れる
- アセットストアという、ゲームに使う素材を無料or有料で手に入れられるすごいものがある
- 使用者が多いのでググれば日本語で書かれた情報が豊富に出てくる(これ大事)
- プログラミング部分で、素敵な言語と噂されるC#を使える(プログラミング出来ないのでピンと来ないが、高度なものを作る時に重要になりそう)
- よくわかんないけど、なんかいろいろすごい(モチベーション維持のためにロマンは大事)
とりあえずスマホ向け2Dゲームが作りたいので2D特化のGameMakerも考えたけど、
- 主にWindows用(Mac用もあるにはあるけど微妙?)
- 日本語の情報が少ない
- ちゃんとしたものを作ろうとするとGameMakerの独自言語でプログラミングすることになるが、その言語の評判がすこぶる悪い(これもピンと来ないが、ボロクソ言われているものを学ぶのはやだなぁと思った)
本格的なものを作るにはUnreal Engineがいいらしいが、ガチなグラフィックの3Dゲーム向けっぽいのでパス。本格的すぎる。日常に寄り添うような2Dスマホゲームがいい。
スマホゲームは結構な割合でUnityとCocos2d-xが使われているらしいのでCocos2d-xも検討したが、基本的にバリバリとコードを書いていくためものであり、プログラミング未経験者お断りのツールだった。さすがにキツイ。
というわけでUnity、君に決めた!
Unityすごい……でも何も出来ねぇ!
Unityにはプロ版と無料版があるのだが、ゲーム制作に必要な機能においては無料版もプロ版もほぼ変わらない。しかも無料版には制限があるものの、普通の個人にとっては全く気にしなくていいくらい緩い制限だ。だから無料でガッツリ使えるツールと考えていい。
そうしてUnityを導入してみたが、困った。何をどうしたらいいのか全くわからないのである。
検索をしてみても、完全な素人にとってはわからないことがありすぎてまったく理解出来ないページばかりだった。
そこで通称「ひよこ本」と呼ばれている、評判の良いこの本を買ってみた。
Unity5入門 最新開発環境による簡単3D&2Dゲーム制作
- 作者: 荒川巧也,浅野祐一
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/07/29
- メディア: Kindle版
- この商品を含むブログを見る
チュートリアルを丁寧な解説とともに進めていく内容で、とてもわかりやすかった。
ゲームに使う素材はこの本が用意したものを使うので、それら組み立てていくような感じだ。
そうして以下のものを作っていった。
Unityというツールの大まかな考え方や使い方をサクサクと学べたのでよかった。
ツールは使えるが、ゲームを作れない!
Unityの大まかな使い方は把握したので、Unity公式のチュートリアルをやってみることにした。
簡単だった。ひよこ本で基本を理解した僕にとっては簡単すぎるくらい簡単だった。
しかしだ、スクリプトを書くところに至ると、途端に難しくなった。大したことをやっていないはずなのに。
とりあえず完成させることはできた。
それによって課題も明確になった。
ゲームの部品を組み立てることはできるが、それらを動かすためのスクリプトを書く力が不足しているのだ。
だからUnityというツールの使い方がわかっていても、まだ実際に自力でゲームを作ることはできない。
意外と道は険しかった……
スクリプトって何だよ!
そもそもプログラミング経験がないのである。「スクリプトが云々」と書いてあっても、「スクリプト」自体よくわかっていなかった。
プログラミングにおいて何らかの処理を記述して実行されるまでにはいろんな過程があるが、そういった過程でなく処理に関わる部分のみを指して「スクリプト」と呼んでいる……のかな?
Unityでは処理を実行するまでの過程はUnity内部で上手いことやってくれて、ゲームをどういう風に動かすかという部分でしかコードを書かないので、基本的に「プログラムを書く」というより「スクリプトを書く」と表現されている……のかな?
まぁ実際のところ今もよくわかっていないが、だいたいこんな感じで考えている。
そんなレベルなので、チュートリアルでスクリプトの解説を読んでその時は理解していても、知識として身につかなかった。
僕はスクリプトを簡単なものなら自分で書けるくらいになろうと思った。
Unityで使う言語はC#が基本らしいので、C#を軽く学ぶことにした。そうして適当に検索してC#をちょろっと把握してみようと思ったが、なんとびっくり、何がなんだか全然把握できない。ちょっとしたTipsを10も20も覚えればだんだん頭の中で体系化されてくるような気がしていたが、それより遥かにレベルが高かった。これは書籍かなんかで順を追って学んでいかないと駄目だ、と思った。
そこで現時点の最新版であるUnity5に対応したC#解説本を探した。しかもとびきり初心者向けのやつだ。
するとずばりニーズに合ってそうな内容の本はこれくらいしかなかったので、これを買ってやってみることにした。
見てわかるUnity5 C#超入門 (Game Developer Books)
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2015/10/30
- メディア: 単行本
- この商品を含むブログを見る
特別わかりやすいとは思わなかったが、超入門というだけあって初歩的なことを順を追って説明してくれているので良かった。
書いてあることをなぞりつつも、ちょっとずつ勝手なことをやってみたりして成長していった。
大したことは出来ないものの、ごく簡単なスクリプトしか書かなくていいならば調べながら実現できるようになっていった。
成長という快楽、あるいは逃避へのガソリン
体系的な知識を詳細に学んでいくより、最初にざっと概要を学び、あとはチュートリアルをやりながら詳細を覚えていくほうが、成長スピードが早いように思える。おまけに成果物がどんどん出来上がっていくので成長を実感しやすく、モチベーションの維持もしやすい。あらゆる分野で有効な学習法だと思う。
しかしずっとチュートリアルを続けていても、何も生み出せない。最低限のことが出来るようになってからは、目的を達成するための実戦経験の量をしっかりと確保しなくてはならない。
実戦経験に時間を割くことで知識の習得が遅れてしまっても問題はない。実戦のための知識であり、知識のための実戦ではないからだ。
とはいえ知識を身につけて成長することは人間にとって大きな快楽だ。だからついつい理由を付けて学び続けたくなるが、目的があって学んでいるならば、その目的を忘れてはならない。目的を達成するための行動にこそ意味があるのであって、学ぶこと自体には「学ぶ」以上の意味は無いのだ。
なのに達成が困難な目的であるほど、未達成である現実と向き合わず、成長に執着しがちだ。そうなると成長することの素晴らしさなど関係ない。ただ逃げているのである。たとえ未熟な状態でも、実戦で勝てる強さを身につけるチャンスがあるならば、それを目ざとく見つけて着実に掴んでいかねばならない。
僕は、目の前に無数のチャンスが見えてきたように感じた。それまでは何も見えず、とりあえず学ぶしかなかった。
一方でまだまだ素人の域を脱したとは言えない状態なので、もっと「ちゃんと」理解して「ちゃんと」作れるようになってからオリジナルを作り始めたいという気持ちも強かった。
揺れる。
しかしその「ちゃんと」を待っていて結果を出せないまま悔しい思いをした経験が何度もあった。「ちゃんと」なんていうものは、いくら待っていてもやってこないのだ。「ちゃんと」を待たない勇気を振り絞らないといけない。
僕は自分で考えたゲームを作り始めることにした。
今の実力じゃクソゲーしか作れないのは明白だが、そのクソゲーで立ち向かい、実戦経験を積んでやるのだ。
ゲーム制作の壁は一つじゃない!
Unityでいろいろ動かせるようになったとしても、ゲームというのは成り立たない。何かしらのグラフィックが必要である。
「さぁ作るぞ!」みたいな流れになっているわけだから、グラフィックのほうはそこそこクリアできるのだろう。
と思うじゃん?
そっちも完全な素人なんだよね実は。
というわけでまずは安いペンタブを買ってみた。
ETHAHE HUION H420 携帯式・スマートスタイラスペン・デジタルタブレット・シグナチュアボード ブラック
- 出版社/メーカー: ETHAHE
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
Macで使えて無料でシンプルなペイントソフト、「FireAlpaca」もインストールしてみた。
で、描いてみた。
ペンタブ使いづらっ! 思うように描けない! アナログと同じように描けても何も描けないけども!
イラストは一朝一夕で身につくものではないというのも実感した。しかし、そこそこのレベルでいいなら、知識を得ることでなんとかなりそうな気もした。まぁ、膨大な量の知識になるが。
今すぐに使えるスキルにならなくてもいいので、とりあえず基礎からちまちま学んでいくことにした。
イラストの基礎と言えばデッサン。だぶん。
ということでまず自分の手を真剣にデッサンしてみた。
今まで絵を書く習慣がなかったのだが、その割には描けた。しかし相当キツかったので、スキルが足りない。
かといって地道な練習をするには時間を取られすぎるので、上達のための方法を教えてくれる本を読むことにした。
これ。
この本にはクロッキーをしてみて自己診断をしてみるように書いてあったので、クロッキーもしてみた。さっきのデッサンとは違い、クロッキーは速書きなので直す余裕なくてこれはこれで大変。
デッサンの本も買ってみた。
基礎から身につくはじめてのデッサン―形のとり方から質感まで鉛筆デッサンの基本がわかる
- 作者: 梁取文吾
- 出版社/メーカー: 西東社
- 発売日: 2012/01
- メディア: 単行本
- 購入: 2人 クリック: 3回
- この商品を含むブログを見る
ためになった気がする。
でもイラストのスキルはまだまだ使い物にならないので、今回のクソゲー制作では適当にごまかす方法を考えることにした。
今になって思えば、デッサンよりイラストツールやベジェ曲線の使い方を学ぶほうが即戦力になった気もする。
まだでかい壁があるぞ!
グラフィックは適当にごまかすとしても、まだ大きな壁が1つある。
それは音だ。音がなくてもゲームとしては成り立つが、音がないと楽しさが半減である。BGM、SE、それらを用いた演出があることによってユーザーに楽しさを届けることができる。
でもね、例のごとくこっちも素人なんだよね。
というわけでまずはこのMIDIキーボードを買ってみた。
どうやって使うのか知らないけど!
KORG USB MIDIキーボード microKEY-25 マイクロキー 25鍵
- 出版社/メーカー: KORG
- 発売日: 2012/07/28
- メディア: エレクトロニクス
- 購入: 1人 クリック: 5回
- この商品を含むブログを見る
作曲とSE作りはMacに元から入っているGarageBandでやってみることにした。ガレバン。そのうちガレバンの上位版であるLogic Pro Xに移行してみたいけど、まずはお手軽版で。
ガレバンを使ってみてまず驚いたのは、PCのキーボードをMIDIキーボードのように使えるため、いきなりMIDIキーボードを買う必要なんてなかったことである。ガレバンに慣れてから充分だった。まぁ、あると楽ではあるが……
次に驚いたのは、あらかじめ用意された膨大なフレーズを組み合わせるだけで曲を作れてしまうことだ。なんか適当にごまかすのが捗りそうなのだ。中にはYouTuberがよく使っていると思われる音源もあった。
というわけで、まずは短い曲を作ってみた。ドラムは自分で打ち込んだが、それ以外は用意された音源を適当に組み合わせただけだ。
うむ、素人が適当に作ったわりにそれっぽい。
高クオリティなものを作れるようになるまではやはり時間がかかりそうだが、ガレバンというツールを知るだけで、音に関してはある程度いけると確信した。
ガレバンはいいぞ。
いざオリジナル!
試しに謎の空間で謎のオブジェクトを操作できる何かを作ってみた。
なんとなく感覚も掴めてきた。わからないことだらけだが、できないことはやらず、とにかく完成させることを目指せばいけそうな気がした。
コンテンツを作る上で一番大切なスキルは完成させるスキルなので、無茶してでも突き進むのが正しいと信じて強引に作り始めた。
それでも完成させられるか危ういと思ったので、「クソゲーを作る」という目標を設定してみた。
グラフィックをどうするか
いざ作るとなると、まずはグラフィックをどうごまかすかが問題になった。
で、なんかもう面倒なので、練習の時に使っていた神絵師カラバッジョさんの絵画を今回も無断使用することにした。
そうなるとカラバッジョの絵ばかりを使う正当性のようなものが、ゲームのコンセプトに必要となってくる。
それも面倒なので、いっそのことゲーム空間が「カラバッジョワールド」ということにして、ゲームに一切関係がない絵画をさも当然であるかのように組み込んだ。そしたらいい感じに狂気をはらんでコンテンツとしての謎のオーラが出てきた。
ペンタブを使ったのはクソゲー感を出すための題字と、次のステージへ誘導する矢印くらいだ。
音をどうするか
BGMは新しく作ったりせず、練習で作ったやつをずっとループさせとくことにした。新しく作ることもできるが、それに着手すると完成が大きく遅れる。作りたい気持ちを抑え、「完成が第一、完成が第一」と呪われたように唱えながらSEをちゃちゃっと作った。
SEは基本的にガレバンでそれっぽい単音を探し、それを1音鳴らして音声ファイルに書き出してそのまま採用している。
意外となんとかなる
そんなこんなで作り始めて3週間くらいで、「スーパーカラバッジョワールド」は完成した。Unityを学び始めてからは、2ヶ月くらい経った。
プログラミング経験がなかったので、C#でUnityのスクリプトを書くことはとても大変だった。しかし、躓くところはだいたい初心者にありがちなところだったし、多くの人が躓いているところだった。だから基本的には調べれば解決した。
躓いて調べてというのをひらすら繰り返すのはめちゃくちゃ疲れるし苦労したが、所詮は答えのある問題だ。体力と時間があればなんとかなる。クオリティだとか上手くいくかどうかは置いといて、とりあえずなんとかなる。
問題はゲームデザイン、つまりどういうゲームを作るかであり、そこで適切な判断をする難易度がとんでもなく高い。ゲームを作りながら「ここはこうしたほうがいいかなぁ」「ここはもっと良くしたいのにどうすればいいんだろうなぁ」と悩むことは何度もあり、それでいて答えなどない。スクリプトを書く作業にあてるつもりだった時間もあっという間に吹き飛んだ。
ゲームデザインに関してはもっと経験を積む必要があると感じた。
完成が第一
クソゲーでもなんでもいいから、とにかく完成させることが大事だと改めて実感した。作業を進めているといろんなスキルが足りないよう思えてしまうが、実際のところ一番必要なのは完成させるスキルだ。
あたりまえのことだが、完成させるスキルがあれば他のスキルが不足していたって完成まで持っていける。そのスキルを伸ばすには完成の経験を積むしかないわけで、作りながら「完成が第一、完成が第一」と唱えて自分の中の完璧主義者を鎮めないといけない。
そういう意味では、「クソゲーを作る」といった目標設定はとても良かったかもしれない。自分の中の完璧主義者を極力抑え、完成に向かってまっすぐ走りやすい。
まぁ、出来上がるのはクソゲーだけども……
次はシンプルゲーを作るよ!
クソゲーを作り終え、今度はスマホ向けのシンプルなゲームを作り始めている。
あとゲームデザインの本も読み始めた。
ずっとゲーム制作にかかりっきりにはならないが、これからもゲームは作っていくつもり。
そういった活動のログは今後もnoteのアカウントに投稿していこうと思っている。
新しいことへの挑戦はキリのいいところでどんどん発信して、達成感を細かく稼いでいくと成長が早い。気がする。頑張る。