【Unity】テクニックよりも本質を!ツールの使い方にとらわれない開発
Unityにはたくさんの機能があり、特に初心者のうちは色々と目移りして「あれも! これも!」となってしまうことが多いです。
何を隠そう私がそうだったのですが、ツールに引っ張られる開発というのはあまり良いことではなく、ツールはあくまで道具であるという考えは頭の中に置いておかねばなりません。
「何のためにUnityを使っているのか?」
と考えると、それは自分のゲームを開発するためです。なので、自分のゲームに必要な機能に絞って開発を行うことができるのが理想です。
このページではツールの使い方にとらわれない開発について考えていきます。
テクニックよりも本質を見る
ツールで実現できることに目を向けると、ツールにある機能だけに注目する傾向があります。できることの中から何かを選択するのは大切なことですが、「何のためにその機能があるのか」まで見えてくると、小手先のテクニックにとらわれない開発が可能になります。
ツールはゲーム開発をサポートするためのものであり、ツールの機能を盛り込んだゲームを作るためにあるのではありません。本当に大切なのは、あなたのゲームなのです。
あなたが思い描いたゲームを実現する手段としてツールがあるので、まずはあなたのゲームが主であることを心に留めておきましょう。
ツールに存在する機能というのは、ゲーム開発の中であると便利な機能です。中には必須の機能もありますが、補助的な機能もあるので、必ずしも全て使わなければならない訳ではありません。
例えば、Unityだとシーン内の光源からの光や、物体に反射した間接光を計算して画面に反映してくれるグローバル・イルミネーションの機能があります。見た目が向上するので是非入れたいところですが、そもそも作っているゲームに現実感のある見た目が必要かどうか、という点から考える必要があります。
グローバル・イルミネーションを使うと見た目は向上しますが、事前にライトをテクスチャとしてベイクすることからビルド時の容量が跳ね上がります。スマホ向けのゲームで容量を大きくするのは得策ではないので、現実感のある見た目が必要ならプラットフォーム自体を変えることを検討しないといけません。
ツールの機能だけに注目すると、自分がゲームをリリースしたいプラットフォームに合っているかどうかを見落とすこともあります。
ツールを跨いだ開発
ツールの使い方に注目するのではなく、ゲーム開発のプロセスに注目していくことで、ツールに依存しない開発ができます。
ひとつのツールに依存してしまうことは危険なので、別のツール(ここではゲームエンジン)でも開発できるように本質を理解しておくべきです。
例えば、Unityの使い方に習熟したとしましょう。この記事を書いている2020年2月の時点では、Unityでゲームをリリースする場合はライセンス料の支払いだけで済んでいますが、もしアメリカで経済的なインパクトがあって、Unity Technologies社でも「ライセンス料を10倍にしないと会社が潰れます!」なんてことになったら、開発者はこれに従うしかありません。会社が潰れたらUnityというツール自体がなくなってしまいますもんね。
そんな時に、たまたまUnreal Engineは支払いの額がそのままでした、なんてことになったら、Unreal Engineを使った方がリリースしたゲームから得られる利益が大きくなるかもしれません。
まぁこんな恐ろしい事態に陥ることはないとは思いますが、何かのツールに依存した状態というのはあまり良くありません。他のツールに切り替えてもゲームを作れるよう、ゲーム開発の本質を理解しておくのは生き残るために重要なことです。
もうひとつ例を挙げておきます。これはゲーム開発の話ではなく、ブラックな会社にいた頃の話です。
私はあるパッケージソフトウェアの導入案件を担当していたのですが、私がそのソフトを使って色々と検証をしている際、私の後ろで直属の上司がその上司と会話しているのが聞こえてきました。
「僕はこのツール(パッケージソフトウェアのこと)にかなり詳しくなりましたが、僕が詳しくなったところで、将来性ないんですよね」と直属の上司が言っていたんです。
その上司は私がいることに気付いていたので「そのツールをやらされているtodoくんの立場は……?」みたいにサポートしてくれたのですが、実際、何らかのツールに習熟するだけではあまり意味なくて、そのツールを何のために使ってるのかが大切なんですよね。
見極めには慣れが必要
ツールで使える機能がたくさん並んでいると、「楽しそう! 使ってみたい!」と思ってしまうのがゲーム開発者のサガ。ゲーム開発者は好奇心旺盛で、ある程度何でもできちゃう人が多いので、ついつい新しい機能に手を出しちゃうんですよね。
ゲーム開発には時間がかかります。その開発期間のうちに新しい機能が出てくるのはとてもよくあることなので、どうしても作っているゲームに新しい、すごそうな機能を盛り込みたくなってちゃうんです。
ここで大切なのが、「今作っているゲームに必要な機能かどうか」という見極めです。
ある程度検証してみないと、ゲームに合っているかどうかは分からないので、いきなりゲームに盛り込むのは結構危ないです。
なので、事前に機能検証用プロジェクトで新しい機能を試してみて、リリース用プロジェクトではくすぶる好奇心を抑えながら設計を守ってリリースまで漕ぎ着ける、という見極めも必要です。
新機能だけでなく、ツールに存在する機能を洗い出して、「今作ろうとしているゲームに必要か?」という見極めも行う必要かありますから、この部分はゲーム開発のプロセスに慣れている必要があります。
とはいえ最初は色々触れてみてくださいな
理想論を語ってきましたが、それはゲーム開発に慣れている人が目指すぺきポイントであって、「初心者がいきなりできるか?」と聞かれたら「無理です」とはっきりと答えます。
ゲーム開発について初心者で、ツールにもそんなに慣れていないなら、ツールの機能を通してゲーム開発のプロセスを学んでいくのもひとつの手段です。「この機能は何のためにあるのか?」と問い続けることで、本質に目を向ける癖を身につけておけば、ツールの使い方に依存しない開発を行う下地が作れます。
おそらく最初は簡単なゲームを作ってみることから始めるのが良いでしょう。2つ、3つ簡単なゲームを作ってみて、そこからゲーム開発の全体像を学んで再びゲーム作りに戻ってくることで、ツールの使い方だけではなく本質まで意識した開発ができるようになると思います。
ツールの使い方はあくまで表面的なこと。ぜひ本質まで目を向けるようにしてみましょう。
まとめ
「Unityのテクニックを紹介しているブログで何を言うとんねん!」というツッコミを自分で入れそうになりましたが、テクニックを紹介しているブログだからこそ、本質を見極めて欲しいのです。
「自分が何を表現したいのか」が分かっていれば、その表現方法はいくらでもありますし、こうしたブログなどでサンプルを見て実装することができますからね。
大切なのはあなたのゲームを作り上げること。
そのために本質を理解した上でツールを使っていけば、自分の作りたいゲームを実現しやすくなります。
ゲーム開発の攻略チャートを作りました!
-
前の記事
Unityのバージョンはどう選んだらいいの?おすすめの選び方 2020.02.16
-
次の記事
【Unity】Screen Space Reflections(反射)の使い方と効果【Post Processing】 2020.03.26
コメントを書く