【Unity】プロトタイピングでアイディアを素早く形にする開発
ゲーム開発は油断するとどんどん時間を使ってしまいます。
「いいアイディアを思いついたからゲームを作ろう!」
と思い立ったものの、形にするのに時間がかかってしまい、日常生活の忙しさとの合わせ技でだんだんとそのゲームを作るための時間が取れなくなって……という悲しみにまみれたケースはよく聞きます。
よく聞きますどころか自分でもやってしまうことがあり、PCの中には作りかけのプロジェクトがいくつも眠って……いえ、これ以上は自分でも悲しくなるでやめておきましょう。いつかこの子たちも日の目を見られるように頑張ります。
ある程度素早くゲームを形にできていくと、ゲーム作りにかける時間が少ないままモチベーションを保つことができますし、作ったゲームを改善していくための意見・フィードバックなどもユーザーさんから早い段階でもらうことができます。
ソフトウェアの開発工程としてソフトウェア・プロトタイピングがあります。すごくざっくり言うと、短期間で動くものを作り上げて、ユーザーと完成品のイメージを共有してフィードバックをもらっていく方法です。例えば業務システムを作る場合は、普段使っているユーザーさんの意見がとても大事なので、その方々が使ってみた感覚を教えてもらうことで、仕様を満たしているか、完成させるための期間は十分か、といった情報を分析することができます。
このサイクルを早くするために、ゲーム開発でもこの手法を取り入れるのがおすすめです。
プロトタイピングとは
プロトタイピング(prototyping)はその名の通りプロトタイプを作る方法です。プロトタイプは「原型」や「試作品」といった意味の言葉で、完成品を作る前に試作をして早い段階で様々な分析を行うことができます。
ゲーム開発だと、素材は仮置きして機能だけ組み上がっている状態がイメージしやすいかと思います。
実際に基本システムの部分は出来上がって遊べる状態にはなっていて、あとは完成品に向けて画像や演出をしっかり調整したり、ステージ自体を増やしていったり、といったブラッシュアップの作業が待っている状態です。このブラッシュアップ作業のために、実際に遊んでくれたユーザーさんの意見を取り入れていくイメージです。
似たような言葉で「モックアップ」なんてのもあります。私はあまり区別しないで使うこともありますが、どちらかというとモックアップはプロトタイプより少し手前の「とりあえず動くもの」の位置付けでしょうかね。個人的な段階としては、エフェクトや画像についてはなんならUnityのデフォルトの状態で、ボタンを押したらコンソールにメッセージを出しつつ次の処理に進むみたいな状態になっています。
細かく分けると、
- スケッチ
- ワイヤーフレーム
- モックアップ
- プロトタイプ
のように完成に近づいていく段階に応じて名前が呼び分けられています。「ワイヤーフレーム」はWeb系の開発をしたことがある人ならよく聞くかもしれません。私はWizardryのワイヤーフレームで描画するダンジョンが先に思い浮かびます。
プロトタイプはゲームの体験版の状態に近いかもしれませんね。ゲーム全体はできていないけど、ゲームの大まかな機能は遊べるので、メイン機能を楽しんでもらえるかどうかを確認する段階みたいなイメージです。エフェクトや演出などについては、最終調整は待っているけどなんとなくイメージできるようなものは配置されている、みたいな感じです。
プロトタイピングのメリット
プロトタイピングによる開発を行うメリットとしては、
- 時間と費用を抑えられる
- ユーザーの意見を取り入れやすい
- 自分でも完成品をイメージしやすい
- 心理的なハードルが下がる
などがあります。プロトタイピングが持つメリットの詳細についてはソフトウェア工学等の本を参照するとベストですが、ここではゲームを作っている人の観点でメリットをお伝えできればと思います。
時間と費用を抑えられる
ゲーム開発をしていて一番嬉しい要素が時間と費用を抑えられる点がと思います。ゲーム開発は思った以上に時間を使う作業で、素早くゲームを形にしていくのはとても価値があることです。
費用の部分は自分だけで開発しているとイメージしにくい部分かもしれません。人と一緒にゲーム開発をする場合は、時間を短縮できることで自分が相手に支払うコストを減らしたり、相手が自分に支払うコストを減らすことができます。コストが膨らんだせいでプロジェクトが停滞して製品の発売まで辿り着けず、本来得られるはずの利益が雲散霧消してしまった……みたいなプロジェクトの話はとてもよく聞くので、コストを減らせるのはプロジェクト内の全員にとってメリットのある話です。
また、長期的な目線だと、ゲーム開発にかかる時間を減らせることで一生のうちに作れるゲームの数を増やすこともできます。作ったゲームの数が多いというのはそれだけ学びもありますから、技術的にも向上した状態で次のゲームを素早く作れる状態になります。ビジネス的な目線を加えれば、作ったゲームを販売するなら、その数が多い方がより多くの利益を得られることになります。ゲームだと当たり外れがどうしても出てきてしまうので単純にゲームの制作数で測れない部分もありますが、それでも試行回数が多いほど成功するゲームの数は多くなり、ひいては利益に繋がっていきます。
個人的にはゲーム開発者にとって一番大切なものは時間だと思っているため、その時間を節約してゲームの完成が近付くのは嬉しいことです。
ユーザーの意見を取り入れやすい
プロトタイプ版が出来上がると、遊べる形のゲームが出来上がるので他の人に遊んでもらうことができます。その結果、遊んだユーザーさんからフィードバックがもらえます。フィードバックがもらえると、ゲームを改善するためのアイディアが生まれるので、より良いゲーム、より遊んでもらいやすいゲームになります。
ユーザーさんの意見をもらえるのは早ければ早いほどグッド。とはいえ、単なるアイディア状態で面白さを感じてもらったり、ワイヤーフレームレベルで遊んでもらうのはちょっと難しいことも。ユーザーとしての自分を考えてみると、ゲームの面白さには機能もさることながら、全体のまとまりや表現の部分にも目を向けてしまっているかと思います。見た目が気になってあまり楽しめない、ということもあるので短い時間で確認してもらいつつ、ある程度完成品をイメージしやすいプロトタイプの段階が一番ちょうど良いタイミングかと思います。
ポイントは完成品をイメージできるか、という部分です。
ゲームの面白さの部分を感じ取れる、かつ見た目も多少整っている、なんて状態であれば完成品の様子もイメージできるかと思います。
また、プロトタイプ版でユーザーさんの意見を聞く場合は、最初はターゲットユーザーに近い友人などに遊んでもらうのが良いかもしれません。あるいはTwitterでお願いしてみるのも良いかもしれません。アプリストアでβ版として載っけることもできますが、ちょっと距離が遠くなってしまうこともあるので、意見を言いやすい距離感の方にお願いするとお互いにやりやすいです。
……この記事を書いている2021年8月だとコロナ感染拡大の恐れもあるので、直接友人と会って自分の端末でゲームを遊んでもらうというのも難しい状況ではあります。なのでインターネットを介して遊んでくれる人を探すのが良さそうですね。Twitterでお互いにプロトタイプを遊んで感想を言い合ったり、Discordで鯖立てて何人かでチャットしてみるのもいいかもしれませんね。
自分でも完成品をイメージしやすい
完成品をイメージしやすい段階まで素早く持っていくのは、自分自身にとってもメリットがあります。頭の中や企画書、仕様書の中にあるゲームの姿が実際に遊べる形になることで、最初の段階では気付かなかったことにも気付くことができるかもしれません。
頭の中にある状態と、実際に目の前にある状態では分析できる情報の量が大きく異なります。特に自分だけで開発している場合は、人に伝えるレベルの仕様書までは作らないこともあるので、不明瞭な部分がそのままになってしまうことも。脳内だとついつい不明瞭な部分でも自動的に補完してしまったりしますが、プロトタイプを作成することでその部分を明確化することができ、想定しているゲームの動きとの比較を行うことができます。早い段階でこうした点に気付けるのは得るものが大きいですね。
心理的なハードルが下がる
人に見せることを意識すると「もう少し完成度が上がってから……」とついつい細かい部分の調整に走ってしまいがち。実際に遊んでもらった結果、機能自体をもう少し変更した方が良いことに気付き、調整した部分が無駄になることもよくあります。
プロトタイピングの開発手法で進めていれば、「全体で見ると7、8割程度の完成度でもいいから見せちゃおう」という意識が働くので、人に見せるまでの心理的なハードルも下がります。汚い話ですが、多少完成度が低くても「プ、プロトタイプだから……!」と言い訳をすることもできます。自分でもプロトタイプだと認識しておくことで、ゲームを改善するのに抵抗感はなくなりますからね。
完成した状態で見せると、どうしても「これで完璧!」という意識を持ってしまって、せっかくいい意見をもらっても抵抗感を持ってしまってうまく活かせないこともあります。開発者側の精神状態でフィードバックが流されてしまうのは非常にもったいないことなので、途中でもいいから見せることを意識した方が結果的にゲームにとっても良い影響があります。
フィードバックを受け止める話は以下の記事でも触れています。
プロトタイピングの注意点
当然ながらどのような方法でもメリットだけではないのが現実。いくつか気をつけるべき点もあるので意識しておくとグッド。
- 完璧主義は大きな敵
- 逆に時間をかけすぎちゃうことも
挙げれば他にも出てきますが、ひとまずこれらの点について触れておきます。
完璧主義は大きな敵
完璧主義は大きな敵です。プロトタイピングではある程度の完成度で人に見てもらってフィードバックをもらい開発サイクルを素早く回す、という目的がありますが、人に見せるプロトタイプ自体の完成度を上げようとしてしまう罠も。
これは「人から良く見られたい」という開発者の虚栄心によるものですが、自分は大丈夫だと思っていても気付かないうちにこの罠にハマっていることもあります。特にプロトタイプの開発に時間をかけすぎてしまうと、愛着が生まれてくるのでこれも影響を及ぼしてしまいます。
ある程度の早さで開発し、完成度についても7、8割と早めに見切りをつけるのも大切です。
逆に時間をかけすぎちゃうことも
プロトタイピングによる開発は時間をかけずに行うのがメリットですが、上で紹介した「完璧主義」とも重なって逆に時間をかけすぎちゃうこともあります。
仕様が十分に固まっていないまま作っていくことから、後から「これもあったらいいな」「あの機能も良さそう」と、どんどん検証項目が増えていき、気付けばすごい時間が経っていた……というのはよくある話です。ゲーム自体の完成度が上がっていく姿を常に観測しているので、ついつい色々な項目を盛り込んでいくことで完成度が指数関数的に増えていくような感覚を味わうことになります。
機能を追加した分、それらの最終的な調整にかかる時間も指数関数的に増えていくことは忘れてはいけません。
作っている側が入れたい機能に関しては、「これを入れることでユーザーは喜んでくれるかな?」と一度考えてみるのも大切です。特にプロトタイピングならユーザーのフィードバックを取り入れることも重要な工程なので、ユーザーに直接聞いてみるのも大事ですね。ユーザーがそこまで求めていない機能を開発者側が時間をかけて実装するのは勿体無いことですから。
Unityでプロトタイピングするなら
個人的にプロトタイピングでゲームを作る際にボトルネックになるのが素材の作成です。100%イメージ通りのゲームを実現するためには自分で素材を作るという選択肢もありますが、予想通り時間の消費量は非常に多くなります。
Unityのプリミティブなオブジェクト(SphereやCube)を当てはめて動きを作っていくのも素早く開発する上では大事です(この粒度だとワイヤーフレームに近いかもしれません)。例えば上の画像のように、シーン内のオブジェクトの位置関係をざっくりと把握するために配置してみるのも良いと思います。スクリプトからオブジェクトを動かす場合でも、実際の大きさを想定したSphereオブジェクトなどを動かすだけでもシステム的な動きを把握できます。
ただ上の画像の状態だとゲームの雰囲気やイメージを掴むには少々辛い部分もあるため、ここからさらに具体的なイメージを作る上では、神々が公開してくれているフリー素材を準備したり、アセットストアで汎用的な素材を準備しておくのも良い方法です。
特になかなかフリー素材が見つからない3Dモデルやアニメーション、エフェクトなどはアセットストアで購入してしまった方が早いこともあります。素材探し自体も時間がかかる作業ですからね。
もし今(2021年8月)ある程度の素材をまとめて入手するならちょうどバンドルセールをやっているので、こちらもおすすめです。通常のアセットひとつ買うくらいの価格でまとめて複数のアセットを買える福袋のようなセールになっていて、イメージを膨らませるための素材として買っておくと今後のゲーム開発スピードを上げることができます。
プロトタイピングのメガバンドルセール こちらのセールは2021年9月1日に終了しました。
まとめ
ソフトウェアの開発方法としてプロトタイピングという方法があります。この方法はプロトタイプを素早く作成して実際に使うユーザーに使ってもらって、フィードバックを早い段階でもらうことができ、それにより開発サイクルを素早く回すことができます。
ゲーム開発でもこの方法を使うことができるので、思いついたアイディアを形にするための時間を短くして、ゲームに関する感想や意見をユーザーからもらってより良いゲームにしていくことができます。
素早くゲームの完成品のイメージを作る上ではどうしても素材の作成で時間がかかることが多いので、イメージを伝える上で使えそうな素材を事前に用意しておくと短い時間でプロトタイプを作成できます。モチベーションの維持や開発期間自体の短縮に有益なので、時間のある時に素材の準備をしておくことをおすすめします。
ゲーム開発の攻略チャートを作りました!
-
前の記事
【ゲーム開発】私たちの風習や行動様式はゲーム作りのヒントになる 2021.08.20
-
次の記事
【ゲーム開発】素材から作り始めない方が良い理由〜個人の経験を添えて 2021.08.23
コメントを書く