SDKで作る3Dネットワークゲーム。SDKで作る3Dネットワークゲーム。SDKで作る3Dネットワークゲーム。3Dゲーム開発エンジンとして話題のUnity。プログラマでなくても高度なグラフィックのゲームが作れてしまうというのは本当か?ということで無謀にも手を出してしまいました。Cloudがリリースされたイマでしょ、ということで訳も分からずゲーム作りの扉を開けてしまったオジサンのつぶやきです。最初にお断りしますが、この記事には有用なスクリプトなどは何も出て来ませんので悪しからず。ビギナーの素直な使用感をお伝えしようと思っています。Unityなる話題のものを、ノンプログラマとてしてみむ。大人が無料のパズルゲームをしている横で子供が3DSで遊ぶという倒錯した状況の昨今、なんと3Dゲーム開発は一人でもできるらしい。本当?課金される側よりも、ゲームの作り手になるべきだとじっちゃんも言っていた。分からんで済ませるから人は歳をとるのだ。いうわけでUnityです。聞くところによると、レゴブロックを組み合わせるように3Dゲームがホイホイ作れるらしい。プランによっては無料。プロ版も30日間無料試用できる。それにMacやWinをはじめ様々なプラットフォームに対応しており、スマホ用を作るのにも、特別に何かをする必要もないとのこと。細かいところは省略しますが、こちらUnityのサイトにいって右上のDownloadボタンを押し、ダウンロード&展開するだけです。セットアップの際にフリー版かプロ版の30日試用かを選び、メールアドレスとパスワードを登録してアクティベーション完了。この時点で、一旦次の作業に移ります。ついでにクラウドの恩恵にもどっぷり浸かってみむ。無理して土佐日記話法を続ける必要もないのですが(笑)。Cloudの日本公式サイトと日本リージョンがオープンしました。SaaS型で提供されるのでネットワークの専門知識や手間は一切不要。Unityでも、ネットワーク通信機能を組み込んだオンラインゲームがすぐに開発できるというもの。20CCU(同時アクセスユーザー数)まで永年無料で使え、接続する人数によって段階的に利用料金を支払えばいい。こちらも太っ腹ですね。僕なんかどう考えても無料プランをはみ出る可能性はないし、もちろん導入するしかない!ということで、登録ユーザーに。上記公式サイトにアクセス。メールアドレスとパスワードを登録すると、すぐにメールの返信が来るのでリンク先へ飛んでログインします。Photonということで自分用のダッシュボードが開きます。そちらにAppIDが表示されるので、ここでUnityに戻ります。Unityには、Assetというプログラムに必要な素材のセットが用意されており、AssetStoreで販売もされています。ウレシイことにこちらもフリー(無料)のものもいっぱいあります。Storeを開いたら、Photonを検索します。Freeを選びインポートします。左側のダウンロードボタンを押すと、Download→Importと表示されるので、指示通りにクリック。このSDKをセットアップするときに先ほどのAppIDをコピペしてリージョンを決めてセーブ。こんなダイアログが出たら成功です。これで、ネットワーク環境も出来上がりです。Cloudに登録してから5分も経っていないと思います。簡単すぎてある意味拍子抜けですね。ダッシュボードではこうしてリージョンごとのアクセスユーザー数を閲覧することもできて親切です。僕はネットワークゲームのサーバー管理がいかに大変か実体験はないのですが、まあ、普通にホームページをWordPressで作ろうとしてもサーバーを借りたりして面倒な設定とかしないといけません。それと比べてもなんて簡単なのでしょう!また、その筋の人からの話では、サーバーのことに気を使わずに、ゲーム作りに集中させて欲しい!というgeekなご要望に応える意図もあるようです。Cloudは、まさに正義の味方と言えます。昭和生まれの記憶のいたずらか、ウルトラ兄弟の中にフォトンというのもいたような気がする・・・いないか。インポートしてプロジェクトを開くと、こんなゲームシーンが開きます。これで、スクリプトを書かないでゲームが作れるのか試してみたいと思います。ちなみにプロジェクトとかそのへんの単語のご説明は後ほど。最初のシーンでは4つのデモが選べるようになっています。Demoは、Unityの特徴である物理エンジンのデモ(箱が落ちてきて着地、積み重なって転がる)やプレハブ(Prefab:素材のセットを作っておき、あとで簡単に利用できる)が試せるのですが、とりあえずキャラが面白そうなWorkerDemoでゲームもどきを作ってみようと思いました。メニューからWorkerDemo以外の選択肢を消して、Worker用のスタート画面にしてしまいました。Workerが現れます。ちなみに、PC2台持ちでもう1台にもUnityをインストールし、同じroomにJoinすると、こんな感じで2人Workerが現れます。操作もそれぞれのPCから別々にできて、これは検証用にホント便利そうだなと感じました。何を検証するのか知らないけど(笑)リアルタイムのチャットもできます。このあたりのネットワーク環境構築の簡単さは、僕がその有り難さに気がついていないだけかもしれません。詳しい人ほど驚くかも。Planeという床にあたる部分に遊びで会社のロゴを入れてみました。画像ファイルをマテリアルビューにドラッグ&ドロップで配置できてしまうという簡単さ。ファイル形式もいろいろ対応しています。Workerのスキンも画面から選んで即座に変えられます。フリーのAssetから宝石を配置してみたりさんざん遊んだ末、GameOver画面(シーン)を作ってみました。パーティクル・システム(手裏剣という名前が付いてます)でキラキラしたものをかぶせたりして。これらの3シーンを最後にBuildすればゲーム一丁上がりです。AssetStoreで素材を探す時間を考えても作業は2時間もかかってないです。本当に簡単だと思います。・・・ですが、すいません。お気づきのようにこれは「ゲームもどき」であってゲームではない。得点カウントの方法や表示、ゲーム時間の設定、シーンの切り替え、レベルの設定はするのか、1からキャラを作ったらどうなるのか、アニメーションをどうするか、音楽は、etc...考えて実装しなければいけないことは無数にあるのに、全く対応できていないのです。理想と現実にはギャップが付き物ですね・・・。当たり前といえば当たり前なのですが、僕のような素人×Unityには3つのハードルがあるということを痛感しました。簡単だといっても設定しなければいけないことがとてもとても多い。(それを減らすためにプレハブというしくみもあるのですが)。すべてのゲームオブジェクトにいろんな属性が存在していて、それを理解するのが大変です。あと単にオブジェクトというと、データのまとまりを指す場合もあるのでそのへんも混乱のもとです。Unityのバクっとした全体像はこんな感じです。最初にプロジェクトという、ゲームに使う全部の素材が入ったフォルダを作ります。3D空間の中に、地面やキャラ、障害物などゲームオブジェクトという部品を配置します。ヒエラルキービューにはその部品が全部表示されており、部品の階層を決めることができます。インスペクタビューでその部品のさらに細かい属性を決めていきます。物体の形状、重さや表面の模様など、そうした属性はコンポーネントという呼び方で種類ごとにまとめられており、いちいちスクリプトを書かなくても設定できるようになっています。スクリプトを書いて設定することもできます。ゲームオブジェクトの集合をシーン(場面)というまとまりで保存しておき、スタンドアローンのアプリやWEBアプリ、スマホ用など利用環境ごとに書きだして、最後にシーンを順番に並べた状態でBuildする、という流れです。なんか間違ってないですか。したUnityの全体像を把握するのに僕は10時間ぐらいかかってます。?また実際に操作してトライ&エラーしないと、本やWEBを読むだけでは理解しにくいです。奥行きとか高低の概念は、ダジャレじゃないけれど奥が深い。Gravityをオンにすると、オブジェクトがどこまでも落ちていって戻って来ません。果てしなくマイナスになり続けるy座標を眺めながら、何度呆然としたことでしょう。そこが物理エンジンを積んだUnityのスゴイところなんですが、こちらの理解が追いついていないとツライ。あとカメラがどこを視野に入れているか、どこからの視点なのかについても、常に意識が必要だと思います。3つ目は、なんだかんだ言ってもC#やJavaSriptの知識は必要だ、ということ。Assetにはいろんなスクリプトが格納されていて、それを探してコンポーネントにドラッグ&ドロップすればなんとか動作を指定できるのですが、やっぱりやりたいことを細かく素早く実行するにはスクリプトを書かないと、と思いました。それに、Assetの中にちょっとでも記述が間違ったスクリプトが紛れ込んでいると、コンパイルエラーが出てゲームが動いてくれません。スクリプトを知らないと何が間違っているかすら分からないわけですから、やっぱり最低限の知識はいるよなあ、と一人深夜のUnity画面の前で自分に話しかけたのでした。いえ、面白い使い方がいっぱいできそう!前の章は若干しょんぼり気味で終わったのですが、まあ、慣れの問題だよね。前向きに考えています。僕は、3Dグラフィックを手軽に作れる、という点に興味があって、お得意先が主人公になったゲームをさくっと作ってプレゼントしたら喜ばれそうとか、フェイスブックとかのグループで各自のアイコンをテクスチャにしたゲームを作ったら楽しそうとか思います。いまでもピグだスタンプだとコミュニケーションにキャラを介在するのがあたりまえになってますが、それが自作だともっと楽しいでしょと。ゲームそのものはプロが作ったものに当然かなわない。ゲームを消費するだけじゃなくて、ゲームを作り出す側に立ってみようよ!と思う。Cloudで10,000CCUをめざして頑張ってください!とも思う。Unityはすでにいろいろと研究されている方、様々なスクリプトを公開されている方がたくさんいらっしゃいます。コミュニティも盛んなようです。最後に参考にさせていただいたリンクなど、ごく一部ですがご紹介したいと思います。→動画なのでとても分かりやすいです。→フェイスブックのグループです。世界の「骨格」をつくろう→Unityのサイトにあるチュートリアルです。〜ベストプラクティス〜(翻訳)→開発者向けですが、ヒント&Tipsがいっぱい。Cloudの料金表です。いや~長くなってしまいました。個人的にはもっとC#やJavaScriptを勉強して、早く何かミニゲームでも完成させたいです。あとUnity&Photonはスマホ対応もバッチリなのですが、これもそのうち書けたら書きます。技術者向けの導入ガイドGMOクラウドのパートナーさまコラムアフィリエイトクラウド紹介制度サイトマップGMOクラウド株式会社は、ISMS(情報セキュリティマネジメントシステム)の国際規格を2006年11月に取得しました。27017」を2018年10月に認証取得しました。