【Unity】Asset Storeを使って車輪の再発明を防ぐメリットはこれだ!
車輪の再発明という言葉を聞いたことがあるだろうか?
私がIT業界にいるため、IT業界で使われているのをよく耳にするのだけれど、既に存在しているものがあるにもかかわらず、それと同じもの(あるいは劣化コピー)を作ってしまうこと、といった意味合いで使われる言葉である。
既存のものから発展させていれば、新たな付加価値が生まれ、それは新たな発明として認められるし、どんどんやるべきだと思う。しかしながら、同じレベルのものを作ることができれば御の字で、多くの場合は劣化コピーになってしまうことが多い。これは四角い車輪の再発明と呼ばれたりする。
プログラミングの世界だとこれが顕著で、オープンソースで使えるライブラリ、しかも多くの人によってテストされた優れたものがあるのに、自分たちで1から作ってしまうことが往往にしてある。
もちろん、ライセンス形態によっては商用で使えないから……という悲しい理由もあるのだけど、こと個人で開発する場合には、開発にかかる時間は無視できないレベルなのだ。大企業のように体力(お金)があるところなら、そのコストだって凌ぎ切れるが、時間もお金もない個人では致命的。うむ、諸刃の剣で私にもダメージだ。
今自分がゲームの中で実装しようとしている機能は既に実装した先駆者がいて、ナレッジやサンプルコードまで公開していた——なんてのは親戚のおばちゃんがいつもする話ぐらいよく聞く。
さて、このブログではUnityについて扱っている。Unityにおける車輪の再発明とは何か?
それはAsset Storeにあるアセット、またはオープンソースや有志で公開しているアセットを使わずに、自分で時間をかけて開発を行ってしまうこと。
最初の1つ目のゲームくらいは練習も兼ねて自分で全て開発してみてもいいと思う。でも個人の趣味ならまだしも、ビジネスとしてゲーム開発やアプリ開発をするなら、既に実装されている機能などは積極的に取り入れた方が良い。スピードは命だから。
Asset Storeの場合、無料アセットもあれば有料アセットもある。有料アセットに手を出すのはなかなかハードルが高いけど、例えば開発に1人月かかる機能が$50、日本円にしてだいたい5000円+αで買えると思えば、かなりお得な買い物。
仮にあなたの単価が50万円/月だったとしよう。同じ機能を実装するのに、5000円と50万円だったら、どっちを選ぶ? ……聞くまでもなかろうよ!
しかもあなたの単価は、多分50万円どころじゃないと思う。フリーランスで自分の単価を敢えて下げる場合もあるかもだけど、会社にいれば80万円とか、100万円とか、はたまたもっと。そうなればアセットの相対的なお得感はうなぎのぼり……! 倍プッシュだ……!
数字の上でメリットを挙げてみたけれど、やっぱりアセットを買うのはちょっとためらいが生まれるかもしれない。私も最初はそうだったもの。
でもアセットを買うことで得られるメリットはかなり多いので、ここではそれを紹介したい。
UnityではAsset Storeに車輪が転がっている
車輪の再発明を防ぐには、やはりあなたの目の前にある箱や金属の板を存分に使うべきだ。
そう、PCとスマホを使って、あなたが実装しようとしている機能を調べてみるのがいいだろう。
プログラミング的な機能のみならず、音楽、3Dモデル、イラストなど、使用できる形で公開している人が大勢いることに気付くはずだ。
単純にGoogle検索しても見つかるし、Unityに関して言えば、Unity Asset Storeを使うのも良い方法だ。
Asset Storeにあるアセットは、Unityでゲームを作ることに最適化されたものなので、特にスムーズに使えるはず。
自分で素材を作ろうとする前に、まずは検索してみるのが大事だ。そして車輪は大量に転がっているので、それを使えばいい。
アセットを作るのには時間がかかる
Unityでゲームを作ったことのあるあなたであれば、ゲームに使われる素材やスクリプトを作るのにどれほどの労力が必要かを実感しているはずだ。
素材は空から降ってこない。
イラストをゲームの中で使うのであればイラストレーターに依頼するか、自分で書く必要がある。
音楽を流すなら、これまた作曲家に頼むか、チーム内の作曲担当に頼むか、はたまた自分で音楽を作る必要がある。
そして時間がかかるものとして一番イメージしやすいのは、やはりプログラミング部分ではなかろうか。これも人に頼むか、やはり自分でやる必要がある。
仮にこれらを自分だけでやっていたとしたら、一体どれほどの時間が必要だろうか。簡単なゲームであっても、1から素材を作ってしまうとそれこそ数ヶ月かかってしまうかもしれない。
問題点は時間だけでなく、クオリティ面でも存在する。いくらお金が無いからといって自分でやってしまっては、クオリティを担保できない。もともとイラストレーターをやっていて、しかも作曲もバンバンやっていました、なんて人ならいざ知らず、多くの人がこれらのスキルを同時に極めている可能性はそんなに高くない。
できればプロに頼みたいけど、イラストレーターなら1点2万円とか5万円なんて数字になるし、作曲も1曲5万円から、なんて感じでコストがどんどんハイパーインフレを起こして、気付けば予算オーバー、もはやカドルトを使わねばならない、なんて状態になったりもする。
実はUnityのAsset Storeでは、個別に仕事を受けたりもするけど、汎用的な素材を作って売ってるよ! なんて神もいるため、直接依頼するより安く素材が買える場合が多い。
しかも日本の神々のみならず、海外の神々もクオリティの高い素材を出しているため、言語的に個別に契約をするのが難しい場合でも、彼らの素材を買うことができる。これは大きなアドバンテージだ。
買った素材はそこまで被らない
資本と人が揃っている企業なら素材の作成を自社内で賄えるかもしれないが、個人や小さいチームだと、フリー素材に目がいくことが多い。
小さいチームでは常にコストとの戦いで、なるべく安く開発を済ませたいのが実情である。
だが一度落ち着いて、右を見てみたまえ。似たような規模のチームが似たような素材を使っているではないか。あぁ、なんてことだ。左を向いても同じだ!
ゲームを作る以上、なるべくなら人と被らないようにしたい。これは小さなチームであっても同じ想いを持っていると思う。でも泣く泣く被ってしまっているのだ。フリー素材でもクオリティが高いものが多いから仕方ないのだ。いつもありがとうございます。
さて、似たようなライバルを出し抜くための手段として、素材を買ってしまう方法がある。
UnityのAsset Storeもバンバン力を入れているとはいえ、アセットをガンガン買いまっせ! なんて人は、まだ日本だとそんなに多くないように感じる。
アセット開発をしている身としては悲しい現実だが、アプリやゲーム開発をしている立場から見るとこれはチャンスだ。なぜなら、アセットを買う人がそれほど多くないということは、それだけ人と被らないということだから。
しかも、アセットの種類も豊富なのだから、重複する可能性はだいぶ減る。少なくともフリー素材だけを使っているチームとは差別化ができるのだ。ゲームの要素が他のゲームと被らないことは、オリジナリティを高めることに直結する。
車輪の分解と再構成はしても良い
プログラミング以外の部分にも焦点を当てた話をしたが、ここはプログラミングの話をメインとする。
車輪の再発明はするべきではないと上で述べたが、敢えて似たようなことをする場合もある。
それは教育やトレーニングの一環として行われるもので、機能を実装するにあたって設計から他の機能との連携、実際のコーディングに至るまで、自分の頭を使って悩み、そして解決し、理解する時に有効だ。
理解とは書いて字のごとく、理(ことわり)を解(ほぐ)すことだから、既にあるものを一度分解し、その構成要素を知った上で、自分の知識として脳内のネットワークで情報を再構成している。
自らの経験として車輪を理解するのだから、単純に車輪をそのまま使うよりも、深い知識が身に付くはずだ。
ただ、ここで忘れないで欲しいのは、教育にもコストがかかるということ。完全に手がかりなしの状態からなんらかの機能を作るのは素晴らしいことだが、既にある機能を分解して組み立て、それを理解したほうが時間的なコストは安い。意図的に車輪の再発明を行う場合でも、車輪そのものはお手本として使った方がいい。
新たな発想が生まれるのは、知識という土壌があるからこそ。あのよく分からないけど凄みを感じるキュビズムの世界を生み出したピカソも、若い頃は美術教師だった父からの手ほどきを受け、写実的で正確な絵を描いていた。その基礎知識と技術があったからこそ、ピカソ独自の世界——この記事で何度も挙げた車輪だ——を生み出した。
そういった意味では、Asset Storeのアセットを使うメリットが生まれる。特にスクリプト系、エディタ拡張系のアセットはソースコードを見ることができるので、それを読むことでも勉強になる。テンプレートプロジェクト系のアセットであれば、Unityの機能を駆使しているから、それも役に立つ。
Asset Storeにあるスクリプトやエディタ拡張は、機能の提供だけでなく教則本のような役割を果たしているとも言える。
私が作ったアセットでもソースコードをDLL化しておらず、そのまま読める形にしている。それを読んだ人のコーディングのヒントになればという想いからだ。スッゲー売れてるぜ! とは言えないが、それでも買ってくれている方はいるので、その方々の役に立っていれば嬉しい。
アセットを使うことのメリット・デメリット
ここでアセットを使うことのメリットをおさらいしよう。
- 開発にかかる時間が短縮できる
- クオリティの高いアセットをゲーム開発に導入できる
- 個人で依頼するよりも安価で素材が手に入る
- ライバルが使っている素材と被らない可能性が高い
- アセットのソースコードから自分のプログラミング技能を高められる
特に時間の観点で得るアドバンテージが大きいと個人的に感じている。開発が早く進めば、それだけフィードバックをもらえるまでの時間が短くなる。フィードバックは自分のレベルを上げるために非常に重要な役割を果たしている。
メリットがあればもちろんデメリットもある。
- 有料アセットを買うのにお金がかかる
- アセットの使い方を知る必要がある
- いいアセットを見つけるとちょっと悔しい
このあたりがデメリットとして思い浮かぶ。
アセットを買うにあたってハードルとなるのは上2つではないだろうか。値段と手間だ。
値段に関しては冒頭で挙げた通り、人件費との比較で判断すると良い。小さいチームだと自分の人件費に目を瞑ってこうした投資を敬遠してしまいがちだが、その点も勘定に入れるべきだと思う。
買ったアセットによって開発が早く終わるのであれば、作ったゲームで収益が発生するタイミングが早くなる。マネタイズの方法はここでは詳しく扱わないけれど、課金アイテムを導入したり、広告を導入する方法がある。UnityならUnity Adsを使って簡単に導入できる。
$50のアセットを買っても、ゲームやアプリをリリースして割とすぐに回収できると思う。1作目がうまくいかなくても、アセットは2作目にも3作目にも使える。そこで回収すればOKなのである。実はガンガンゲームやアプリをリリースしていくと、それに伴ってアセットにかかる相対的なコストは下がっていく。
手間に関しては特にスクリプト系、エディタ拡張系、テンプレートプロジェクト系のアセットで顕著だ。アセット自体を使いこなすのには、どうしても時間がかかる。下手したら1週間くらいかかることだってある。
するとどうしても「慣れるのに時間がかかるなら、自分で作っても同じじゃないか」という思いが生まれてくる。
冷静に考えれば1から機能を実装した方が大きな手間であるはずなのに、この習熟の手間を嫌って二の足を踏んでしまうことが多い。これはギャンブラーの誤謬ならぬ、プログラマの誤謬だ。
特にある程度プログラミングに慣れ、実力が付いてきた中級者に多い印象がある。上級者になると、自分にできること、できないことを素早く見極め、感情抜きで実装コストと比較して一番楽な方法を取っているようだ。当たり前のようでいて、案外「これなら自分でもできそうだ」と感情に引っ張られるのが人間なのである。
この点は3番目のデメリット「いいアセットを見つけるとちょっと悔しい」にも通じるところがある。
私たちはしばしば自分のアイディアにフォーリンラブしてしまう。恋は盲目と言われるように、自分が思いついたアイディアは究極にして至高、原点にして頂点のように感じられる。
盲目的にそのアイディアを見てしまうあまり、他の人が既に思い付いていた可能性に目を向けられないことが多い。既に存在するアイディアであることを知ってしまうと、なんだか恋人の過去を知ってしまったかのような、なんとも形容しがたい——しかし、どちらかと言えばネガティヴな——感情になる。あぁ! プログラマとは恋する乙女のように純情だったのだ!
しかし待って欲しい。恋人の過去は知りたいような、いやでもあまり積極的には知りたくないような複雑な気持ちだが、今話題にしていたのはアイディアだ。あなたの思い付いたアイディアが誰かによって既に実現されていたのであれば、そこから学ぶことができる。それもあなたが形にするのにかかったであろう時間よりも早く。美味しい部分を楽してズルしていただきなのだ。
そこから学び、あなた自身のレベルが上がることで、既存のアイディア・実装だけでは実現できなかった点が見えてくるかもしれない。そこを改善できれば、付加価値を持ったアイディアが生まれる。おめでとう! あなたは車輪を再発明したのではない、進化させたのだ!
どうかあなた以外の誰かが同じアイディアを持っていることに恐れを抱かないで欲しい。実はそれは大きなチャンスなのだから。
そしてAsset Storeにはそのチャンスが転がっている。あなたの開発スピードをブーストさせ、そしてあなた自身の実力を高める材料がたくさん溢れているのだ。
まずはどんなアセットがあるか眺めてみるだけでもいい。それだけでもあなたのアイディアとモチベーション、そしてイマジネーションを刺激するはずだ。
以下のアセットは人気のあるものとなっている。
いつかここに載りたいと思っている私のアセットは、この記事が終わった後の『アセット作ってます!』から確認できる。「あ、本当に作ってたんだ」と、軽い気持ちで覗いてみて欲しい。
この記事では特にUnityのアセットに焦点を当ててメリットを挙げてみたけど、車輪の再発明を防ぐことで、是非ともあなたのゲーム開発が良いものになるよう祈っている。
ゲーム開発の攻略チャートを作りました!
-
前の記事
【Unity】Inspectorウィンドウでの表示に関わるAttributeのまとめ 2018.07.17
-
次の記事
3DダンジョンRPGにハマったきっかけは世界樹の迷宮だった 2018.07.22
コメントを書く