Last update 2014/3/4

はんまーアニキ習作版 開発メモ

きっかけと練習

きっかけ
このゲームを作ることになった当時、自分は3D立体視ゲームにはまっていて、 自分で作った立体のお兄さんを自在に動かすゲームを作りたいなーと思っていました。 それで、HSPとEasy3Dという環境でモデルを動かす実験なんかをやっていたんですが、 Easy3Dの作者が開発環境の無償提供をやめてしまって開発がストップしていた ところでした。
ちょうどそのころ、ゲームを作りたいと思ている友達と知り合い、 彼がUnityについて教えてくれて、これがなかなか 面白そうな感じ。これで試しに何かひとつ一緒にゲームを完成させてみよう ということになりました。
その友達は途中で開発からは離れましたが、Unityを使うきっかけや ハンマーのアイデアは彼からのもので、彼がいなかったら たぶんこのゲームはできていません。とっても感謝してます。また一緒に遊びましょう(^^)/←私信(笑)

どんなきっかけでも、まずは最初の1歩をふみだすところが大事ですね。


Unity
Unityでゲームを作ることになったわけですが、ここでUnityについて 自分なりの紹介をしておこうと思います。 下記にUnityのWebサイトがあります。
Unity

Unityは統合型ゲーム開発環境のひとつです。 Windowsやマッキントッシュなどのパソコン用のゲームだけでなく、 Unity Web Playerを利用したブラウザゲームやiPhoneやAndroidなどの スマホ向けのゲームも作ることができます。 無料版と有料版があって、無料版は一部に機能制限があり 利用するにはいくつか条件をみたす必要があります。 ですが、フリーソフトを作るぶんにはお金をかけずに十分に開発可能です。
最近2Dゲーム作成機能が強化されて、世間一般ではスマホゲームを 簡単に作れるという点で注目を集めているみたいです。「ドラクエ8の スマホ版」や「クイズRPGの魔法使いと黒猫のウィズ」もUnityで作られているんだとか。 でも個人的にはパソコン用3Dゲームをつくるための基本的な機能が ほとんどそろっているところに魅力を感じてます。 Tridef3dという3D立体視システムとの相性もよくて、 簡単に自分で作ったゲームを完全立体視で遊ぶことができます。 ただし、Tridef3dの方でパワー3Dの機能をOFFにしたり若干の設定は必要になりますし 位置関係が破たんするようにモデルを配置したりするとおかしくなったり するので少しだけ注意が必要です。
それでも立体視で遊べるのはやっぱりとっても魅力的。 立体視するとテレビの中に自分で作成した世界がまるで プラモデルでも作ったかのように出現して、それを自分で自在に 動かせたりして、これがなかなかの快感なんです。 いろんな人にぜひ一度体験してみてもらいたいですね(^^)

事前の勉強と練習
とにかくまずはUnityの使い方の勉強からということで、正しく理解していくには 公式のものが一番かなと思って、下記のページを一番最初に参照して勉強をはじめました。
はじめてのUnity

ブロック崩しっぽいゲームを作る流れで画面の機能や構成要素の意味などを 解説していて、とてもわかりやすかったです。 全4回の予定らしいんですが、自分が勉強したときには第1回だけしか 掲載されていませんでした。でもオブジェクトとかライトとかの取り扱いの仕方が、背景の意味とあわせて 丁寧に説明されているので、最初の入門としては最適だと思います。

フィールドを動き回るゲームを作りたいなと思っていたので、 次に参考にしたのが下記の書籍。
Unity 4マスターブック

3Dゲームの作り方の雰囲気と、地面を作ったりそこでキャラクタを動かしたりする方法は、この1冊でだいたいマスターできました。

この書籍では、ゲームに登場する3Dのキャラクターは著者が配布しているものを そのまま使う方針。 Unityを使ってみてわかったのは、自分が想像したモノをゲームの中に登場させ たいと思ったら、別アプリケーションで3Dモデルを作ってそれをUnityに 取り込む必要があるということ。 無料で使える3Dモデル作成ソフトにはBlenderやメタセコイアがあります。
Blender
メタセコイア

BlenderはUnityとの相性が抜群なんですが、使ってみたところ独特の操作感に 全くなじめず・・・。一方、メタセコイアの方は少し前まで使っていたんで 自分にとってはモデルを作りやすいんですが、無料版だとUnityで直接扱える 形式で保存できず・・・。ということで、メタセコイアのデータをなんとか Unityに持ってこれないかなといろいろ調査してみました。 その結果、下記のページのスクリプトをBlenderに組み込めば メタセコイアで作ったモデルをBlenderで開けることがわかりました。
http://nullorempry.jimdo.com/work-list/

作者さんに感謝して使わせていただきました。
いろいろ試行錯誤をつづけて、「メタセコイアでモデルを作成」→ 「Blenderで開いてUnityで扱えるfbx形式で保存」 →「Unityに組み込む」という流れで3Dモデルを移動できることが確認できました。

モデルのアニメーションについてはかなり苦戦したんですが、 Blenderで動きをつけてUnityへもっていくことも、なんとかできる ようにはなりました。ただ、Blenderの使い方には最後までなかなか慣れることができず… 結局アニメーション機能は主人公の動きだけで利用することにしました。 それ以外の例えば敵の動きなどは、今回はUnityの座標計算などの機能で つけることにしました。おそらくまだ使い方は完全には理解できてないんだろうなぁ(^^;

ここまできて、ようやく、簡単なものであればなんとか1本ゲームが 作れそうかな…という感触が得られました。


ゲーム作成に必要な技術
Unityでゲームを作るのに必要な技術をまとめるとおそらく次のように なるかと思います。
  • 3Dモデルを作成する技術
  • テクスチャやイベントなどの画像を作成する技術
  • モデルを動かす(アニメーションさせる)技術
  • BGMやSEなどの音楽や音を作成する技術
  • プログラム(C#など)を作成する技術
  • Unityを使って上記を組み合わせてゲームを構成する技術
  • 数学や物理などの基礎的な知識(ベクトル演算や三角関数など)を使う技術
これらを全部自分でやるのは大変だなと思うかもしれません。 でも、Unityにはこれらを全部やらなくてもゲームを作れる仕組みとして アセットストアというのが用意されています。そこで、 完成品の3DモデルやBGMやプログラムなんかを購入して使うことができます。

でも、今回、自分は全部自分でやってみたかったんで、 自分に不足していると思えるところを中心に勉強しました。
C#はJAVAにとてもよく似ているんで、JAVAが理解できる人ならあまり 負担なくC#でUnityのプログラムが組めると思います。ちなみに 自分は大学生のころJAVAを勉強していて、最近仕事でC#も使っていたので ほとんど勉強せずにスクリプトが書けました。 画像や音楽については、以前2Dのゲームを作っていたときに、 お絵かきソフトや自動作曲ソフトを利用して作っていたんで、 これもなんとかなりそうでした。 そんな背景があって、事前に3Dモデル関連の技術とUnityの使い方を中心に 勉強してみたわけです。

そこまでしなくても、苦手なところはアセットストアから別の人が作った ものを利用すればゲームが作れるっていうのもUnityの便利なところですね。


戻る
Written by HAKASE.