強火で進め

このブログではプログラム関連の記事を中心に書いてます。

「COLOPL UnityNight」に行って来ました(その1)

「Unity - Asia Bootcamp Tour:東京」の2日目の夕方からコロプラさんにて「COLOPL UnityNight」が開催されました。

こちらのイベントはUnityの勉強会は「大人数+初心者向け」のものが多くなっているため、参加可能人数を少なめにして深く勉強し合える場所があると良いなと思い開催されたとの事です。

一歩進んだUnityの使い方 - ガンホー・オンライン・エンターテイメント株式会社 第1企画開発本部 西村 大介さん(@nishimuland)

▼アセット購入のメリット
・1から作るよりも圧倒的に早い
→基本的にUnityのアセットはUnity上で動作するデモプロジェクトと一緒に販売されているので、使えるようになるのも早い

・優秀なアセットが多数ある(しかも安い!)
→EZGUI等はGUIシステムが丸ごと入っているのに数千円で購入できる

だだし、売られている全てのアセットが優秀なわけはない!
同じ機能を持った複数のアセットを購入し、より良いものを選ぶというスタンスが重要!

▼アセット購入のデメリット
・バグを吐いた瞬間、修正に大きな工数がかかる!
→結果的に自分達で作った方が早かった…
 中身がブラックボックスになっていてお手上げな場合も…
(筆者注:ライブラリによってはソースでは無く、DLLファイルにした状態で提供されているものが有る)

スマートフォンのOSアップデートについてこれない!
→今後はAndroid 4.0やiPhone 5の発表に合わせたiOSのアップデートが怖い

アセット自身の出来の良し悪しはもちろん、開発者のサポートがどれだけ厚いのかもアセットを評価する上では重要!

実際に購入/試用したアセット群
【prime[31]】

prime31 - Mobile application and Unity plugin specialists
http://www.prime31.com/

  • StoreKit → iPhoneでの課金システムとUnityの繋ぎ込み
  • Android_StoreKit → 上のAndroid
  • GameCenter Plugin → iPhoneのGameCenter連動版
  • Social Networking Plugin → Facebook連動
  • Social Networking Android Plugin → 上のAndroid

【Above and Beyond Software】

Above and Beyond Software
http://www.anbsoft.com/

  • EzGUI → ケリ姫クエストのGUIは全部これで作成

【Ratrod Studio】

Ratrod Studio - Not your Ordinary Junk!
http://en.ratrodstudio.com/

Ratrod StudioのTwitterライブラリでバグが有ったがソースが提供されていたので修正が可能だった

【GamePrefabs.com】

GamePrefabs - Products
http://gameprefabs.com/

GoogleAnalytics → Googleアナリティクスとの連携

現在のスマフォ向けだとFacebookなどの連動も必須に。その辺りへ別途1人アサインする必要が出る事も。それを解消出来るがAsset Store。

Twitter連動などは沢山リリースされている。

サポートの厚さもアセットを評価する基準。

▼コミュニティの有効活用
・Unityの公式フォーラムには有益な情報が多数ある
→Unity自体の昨日の質疑応答はもちろん、Unityの最新Verやアセットストアの商品に関する評価等、いろいろ転がっている

・英語無理ッスって人に朗報!
Facebookのグループ「Unityユーザー助け合い所」を活用しよう!
→日本人の開発者が集まって主にUnityに関する情報のやり取りをしている。アクティブな方が多く、レスポンスも良い
"本当に助かってます"

ハマるポイントは大抵みんな同じ
先に地雷を踏んでくれた先人の知恵をありがたく頂戴しましょう

Unityを使用しての初めてのコンテンツ制作

  • 世界(3Dマップ)を自動的に生成する
  • ランダムマップ生成
  • 自動生成された世界を旅する
  • 物理エンジンを活用したギミック

テラインの生成処理を(EditorScriptで)自作
ベースとなる地形の起伏の幅や水面の高さを設定出来るように制作
   ↓
実際に生成させてみるとゲーム的に面白い地形はランダム生成では難しいという問題が発生
   ↓
地形スタンプという手動で作成したHightMap(地形の高さ情報を持っているテクスチャ)を作成
   ↓
これにより自然にはまず出来る事のない面白い地形を作成する事に成功

ランダム生成でも十分に遊べるレベルのものが作成可能に

▼テクスチャの設定
生成したテラインは標高/角度に応じてテクスチャ自動的に適したものが貼り付けられるシステム
BaseにSubをノイズとして入れたりして不自然感を抑えた

▼オブジェクトの配置
生成するテラインのサイズの選択(1024x1024,512x512...)

作ったテラインの上に配置するオブジェクトのリスト(家+木のセット、花畑セットなど)

配置するオブジェクトは単体で扱うと見た目が微妙だった
   ↓
ある程度は集合体(群集)で配置されるように設定して解決

しかし、集合体として配置すると生成された地形によっては宙に浮くオブジェクトが出てくる
   ↓
単体に設定した当たり判定により個別に判定。接地していないオブジェクトは排除する

大きなオブジェクトの場合にも地形に対してはみ出して配置されることが有る
   ↓
こちらは単体のオブジェクトであるため排除するわけには行かないのでオブジェクトの当たり判定を利用して、地形側を再設定する事で解決

以上のシステムと全て、UnityのGUIで編集出来るように作成

ゲームの細部の調整をプランナーが行える!

ココがUnityがすごい理由!

【まとめ】
・無い機能は売っているかを確認する
インターフェイスが優秀なもの/サポートが厚いものを選ぶ

・分からなかったらすぐに質問する
→日本語の返答をご所望なら「Unityユーザー助け合い所」へGO

プログラマーに機能を実装してもらう際はUIまでお願いする(Inspectorやメニューから操作ウィンドウを呼び出すなど)
→実装コストが大きくなるが最後には絶対笑ってくれる(はず)

・ディレクター(プランナー?)もUnityを勉強する
→技術者と可能な限り対等に話せないとダメ!

【重要】
ガンホーはいつでも開発者を求めています。
興味がある方は是非ご連絡を!
http://www.gungho.co.jp/recruit/

ゲームの本質を追求し、スマートフォン市場で業界No.1を目指します!

QA

Q:AssetBundleの読み込みの高速化のコツ

  • AssetBundle細かくダウンロードさせる
  • シーンをプレハブ化し、分割
  • シーンは一つで、必要なデータのみプレハブからロード
  • データの読み込みは遅い。Resourceから読んだとしても1M、1秒以上かかる

Q:AssetBundleについての注意点

  • 3.4からキャッシュしてくれるが、関数があまり充実しておらずターゲットを指定して破棄が出来ない(全て削除しか無い)
  • ケリ姫では最大200MBにまでなった
  • iPhoneの20MB制限(筆者注:当時の制限。現在は50MBまで3G回線でOK)のタメにBundleを使った
  • AssetBundleだと非同期で読み込める
  • Resourceだと非同期で読み込めない
参考資料

内部ツールについての話はこちらの記事なんかが参考になります。

4Gamer.net ― 「スマートフォンゲーム開発者向けUnityエンジンセミナー」開催,「ケリ姫クエスト」に見るUnityエンジンの活用事例
http://www.4gamer.net/games/032/G003263/20111121034/

もう一つ講演が有りましたが、ページが長くなったのでエントリーを分けます。