2012年10月31日水曜日

Digital Tutors

海外で、ネットで学べるゲーム開発コースとしてdigital-tutorsというサービスがリリースされているようである。

サイトをみると世界最大のCGトレーニングコースであると謳っており、ぴクサー、EA, ソニーピクチャー, ハーレーダビッドソン、カーネギーメロン、ゼネラルモーターズ、NVDIA、ソニー、ノキアなどに提供済みのサービスであるという。

取り扱っている範囲が広く、3ds Max, modo, Maya, CINEMA 4D, ZBrush, XNA, Unityのほかにも50種類以上のソフトウェアに関するレクチャーを提供している。これらは月間33$(1年間契約)から$45(単月契約)で申し込みが可能であるようだ。
(10/28/2012時点)

ネット上でビデオが表示される仕組みで、無料分はログインせずに参照でき、単月契約などしてから会員としてログインすれば有料分も参照できる仕組みだ。

Unityコースの一例を紹介する:
http://www.digitaltutors.com/11/training.php?vid=13556&autoplay=1

チュートリアルのなかでキャラクターアニメーションをスクリプトする方法を学ぶ。

  • 最初にアニメーションを複数クリップとして焼きこみループ設定を正しく調整する必要がある。
  • 次に左ジョイスティックのポジションをスクリプトに組み込みキャラクターの動作アニメーションのベースを制御できるようにする。
  • さらにIf Else条件文を使用してどのアニメーションを再生するべきか検討する。
  • 次にアニメーションの重ねあわせを行い走りながら撃たれたり、武器の入れ替えをスムーズに行えるようにする。
  • 最後に、ポーズボタン押下の際にキャラクターのアニメーションが停止され、ゲームオーバーのときにただしく処理できるようプログラム修正を行う。
------

最初の1つ、2つの紹介ビデオは無料で見ることが出来るので雰囲気までは掴める。

様々な選択肢を検討しながらゲーム開発の知識を固めていこうぜ!

2012年10月30日火曜日

NGUI不具合 長時間スリープ後の動作

今回の投稿はiPhone使用時のNGUIの不具合報告から。
http://www.tasharen.com/forum/index.php?topic=1960.msg1034


本件はNGUI2.2.6で修正されました:
http://gamesonytablet.blogspot.com/2012/11/ngui-224-225-226.html


October 09, 2012, 06:42:41 PM
質問
iPhoneアプリが数時間スリープして再度開いた場合、Unityは元のところから再開できるけれどもNGUIが入力を受け付けない現象がある。iPhone4SやiPhone5でも発生していて、10-12時間放置するとNGUIが5-30秒ほどフリーズしてから入力に反応するようになる。また再現するのがUIDraggable Panelやボタン、入力フィールドである。
どのようにしてこの現象を回避すれば良いか?

回答
この現象を回避するにはNGUIコードを修正する必要がある。

箇所はIgnoreTimescale.csの中身。UpdateRealTimeDelta()の49行目に以下のコードを追加する:
if (mTimeDelta > 1f) mTimeDelta = 1f;

同様にNGUIのコード中を「int ms」で検索してもらってNGUIMatch.csの4箇所が以下のようになっていなければ修正する:
if (deltaTime > 1f) deltaTime = 1f;
----------

レアな現象ではあるかもしれないけど、NGUI不具合の様子。今後のバージョンで修正予定か言及はなかったけどユーザからの報告に備えて知っておいたほうが良いかも。

新UIもいいけどバグ修正も頼むぜ!NGUI!
本件はNGUI2.2.6で修正されました。NGUIやるね!

2012年10月29日月曜日

NGUI作者、Unity社ジョインにあたってQ&A


前回記事の「大手ゲーム会社から独立の苦悩を語る」は様々な方にリツイートいただき1日で1300PV(ページビュー)を超えて本当にビックリ。

このブログ、土日はGoogle検索する仕事関係の人が見ない関係で300PVを切ることがあるから、それだけNGUI作者の話が気になる内容だったことを改めて認識できた。11/1からはぜひUnityの新UIを強力にサポートしてほしい。

さて、NGUIがその後どうなるかについてFAQがついていたので、翻訳してみた:
http://www.tasharen.com/forum/index.php?topic=2126.0

October 25, 2012, 02:04:54 AM

質問:Unityで何を担当する?
回答:UIシステムに決まってるっしょ。

質問:NGUI、どうなっちゃうの?
回答:誰かが権利の買取りを希望しないかぎりメンテナンスを続けるつもり。といっても細かな修正やバグ対応が大部分。まあ言い方を変えるとここ6ヶ月間くらいとスタンスを変えるつもりはないよ。Unityで新UIに取り組むから実際にリリースされれば親しみやすいものになるはずだよ(期待してたら悪いけどすぐにはありえなくて先の話だね)。NGUIから新しいUIへ自動コンバートするツールは用意するつもり。ちなみにNGUIによる収入は今年で300,000ドル(2400万円)ほどだから買取りの場合は冷やかしはお断りね。

質問:え?!NGUI買ったばかりなんだけど見捨てるの?
回答:購入した製品は1年以上使用実績があって洗練されてあらゆるタフな状況のテストを耐え忍んだパッケージでまだまだ活用しつづけられる品質だよ。新UIが出るまでちゃんとアップデートしていくし、もしかしたら新UI出てもサポートする可能性だってある。考え方次第だけど新UIは親しみやすいものを無料で手にいられるはずだし、新UIのベースになるであろうUIシステムに慣れ親しんだことで他の開発者よりも優位に立てるよ。

質問:Windwardどうするの?
回答:正直、決めてない。条件が揃えば誰かに権利を得ることはやぶさかでないし、追加開発としてアイテム課金やフェイスブック連携、その他儲かるために必要な修正を加えてもらえば良いとおもう。それが適わない場合はアセットストアでリリースする可能性はある。ただその場合は高額になっちゃいそうで10万ぐらいと見てもらったほうがいいかな。完成ゲームだしゲーム部品も洗練させてあるし、コメントも丁寧に入れてあるコードが大量にあるからどんな開発者にとっても有益なはず。最後の選択肢は自分の手元に残してちまちまと自分で手を入れていくことになるかな。まあどうするかまだ未定だね。
---

新UI期待しているぜ!NGUI作者(もとい、新UI作者?!)

2012年10月27日土曜日

大手ゲーム会社から独立の苦悩を語る(後半)


前回投稿の続編。NGUI作者は結局どうなった?!

October 25, 2012, 01:52:44 AM
そして失望

お気づきのとおり、この頃には将来的な不安が膨らむばかりだった。ゲームの完成度は高いと自負している。マルチプレイヤー対応、豊富な船舶やマップ、武器、レベルアップシステム、IRCチャット。購入後、未来永劫フリーで遊べることさえ出来る。でも結果的に人を惹きつけることなくオンラインで多くて2人ぐらいしかいない閑古鳥だった。開発7ヶ月目には決断するしかなかった。もうダメだ、と。

最終的に8ヶ月間の開発とこの文章を書くに至るまで、開発に71,000ドル(約568万円)および自分の時間のほとんどを投じて回収できたのは100本分を7-10ドル(約500-800円)の単価で約800ドル(6万円)ほどの売り上げで計70,000(約560万円)の純損失。

その一方で、NGUIで引き続き前職の3倍を稼ぐことが出来た。初期リリースから11ヶ月たっても、だ。

日々見ている統計情報によれば、一年前にアセットストアに出品したゲームスターターキットは2週間ぐらい時間かけたもので月間700-1500ドル(約5-12万円)の収入になっている。粗く見積もって殆ど時間かけてないのに13,000ドル(約104万円)の純収益で、一方では7ヶ月の間、週100時間働き続けて70,000(約560万円)の純損失。

もう言うまでもないだろうが、これらの統計情報もみて、さらにSteam GreenlightやDesuraのサイトでみたゲームの新リリース情報への閑古鳥の反応もみて最後は決断した。終止符を打って別の道を模索するしかないな、と。

変化がおとずれる

面白いことに、先月Windwardをどうするか悩みまくっていた丁度そのときにUnity社のSteffenからメールを受信した。彼は僕が今後どうするのか興味を示してくれていて変わるべきときじゃないか、といってきた。実は最初は笑って受け流してて、まさかUnityでNGUIメンテナンスと同じ額面の給料を出すことは難しいだろうし、ゲームキットや便利パッケージに本気を出したらもっと稼ぐことだって出来る。でも結局は、「まあいいかな」と考えてみて実際に会ってみることにした。

どうするかどちらとも決めてなかくて、大体独立した自分が「誰か」のために働く理由もなかった。ただ深く考えていくなかで自分はNGUIとWindwardどちらにも満足していないことに気づいた。Windwardは失敗そのものだったし、NGUIではUnityの制限を迂回する開発ばかり余儀なくされていた。TransformのPosition/Rotation/Scaleの変更をUpdateごと全てのウィジェットに対してチェックする必要があったりした。これらの迂回した開発はパフォーマンスにマイナスに働き、もっと早く動作するUIを遅いものにしていた。さらにはNGUIだけで解決できない変更希望として、複数Atlasを使用しているユーザがZバッファとDepthを両方意識させることで苦労をかけている状況もあった。

最後には自分に簡単な問いかけをしてみることにした:「NGUIに満足だったのか、自分はもっと出来たはずだったか?」自ずと答えが出たのだが、自分は満足なんかしていなかったし、Unityエンジンに深く関わる権限があればもっと出来るに違いない。Unity Technologies社でなら自分はその権限がもてるし、さらに可能性が広がる。

Unity Technologies社のオファーを受け入れた。全ての始まりは入社の11月1日からだ。

今年は本当に面白い年を過ごせた・・・
--------

掲示板のFAQによればNGUIも引き続きサポートする意向であるとのことだ。

複雑な心境のなかで、開発に対する熱意と向上心が最後の決断ポイントだったか。後悔しない人生を選択した、と感じていて強く支持したい。

なおNGUI作者の話は興味深いのでこのブログでも数回取り上げている。気になる方はバックナンバーを是非チェック!

NGUI ちょっと息抜き:「天才作者」について
http://gamesonytablet.blogspot.com/2012/07/ngui_3632.html

NGUI ちょっと息抜き:「天才作者」について(続編)
http://gamesonytablet.blogspot.com/2012/07/ngui_30.html

2012年10月26日金曜日

大手ゲーム会社から独立後の苦悩を語る(前半)

ゲーム開発に少しでも興味がある人にどうしても捧げたい文章があったので紹介する。

最近開発ツールとして大手ゲーム会社も活用が進み始めている海外製のUnity。

このツールにさらにゲームの部品を売り買い出来る仕組みとしてアセットストアというマーケットがあり、3Dキャラクターのモデルから人工知能(AI)、開発エディタのアドオンまで幅広く追加部品を開発者が低価格で購入できる仕組みだ。

アセットストアでNo.1売り上げを2012年に達成確実であるのがNGUIというツール。イマイチとの評判のUnityのGUIを売れるモノに変えてくれる素晴らしいツールだが、その作者がまた個性溢れる人物なのだ。
実績からついにはUnity Technologies社からスカウトされることが決まったのだが、サクセスストーリーが語られるかとおもった自らのサイト掲示板での投稿は複雑な心境そのもの。

Google翻訳だと伝わらないNGUI作者の苦悩を「超訳」してみた:

http://www.tasharen.com/forum/index.php?topic=2126.0
October 25, 2012, 01:52:44 AM

今年は本当に面白い年を過ごせた。去年の11月にフルタイムで働いていた仕事をやめて企業中心のゲーム開発から距離を置き自分の時間がほしかった。やりたいことは単純明快、ゲーム開発に没頭して年を過ごし、貯金を取り崩しながらリフレッシュして自分らしさを取り戻すことだった。

自由だったあの時

最初の仕事はシンプルなUIを作ることで、当時のUnityエンジンに実装されているUIには不満があった。3週間の開発期間を経て、NGUIが誕生して11月初めにはリリースすることが出来た。

初めはシンプルなモノを作ることが自分の狙いで、まさにそのとおりに開発をした。自分のためのツールであったし、不要な機能は一切なかった。アセットストアでリリースしたのは後からの思いつきで、自分にとって便利なんだから他人も便利に使ってくれるかな、ぐらいの気持ちだった。最初の反応はビックリするほど好評だったんだけど、NGUIを使う人は例外なくより多くのことを希望していた。もっとウィジェットがほしい、もっとツールがほしい、もっとサンプル動画がほしい、チュートリアルだってもっと、と自分としては皆が気に入ってくれるということに対して喜んで期待に応えてきた。

それから一ヶ月たって、NGUIで前の仕事よりも稼げるようになった。心から興奮したし、あの状況だったら誰でもそうだったとおもうし、その勢いが続いた。まあ、そりゃあ友人とゲーム開発を進めるっていう元の計画を遅らせることにはなったけど、面白いうえに稼げるんだから自分としては気にならなかった。それからさらに一ヶ月たつとNGUIはアセットストアで一位をゲットして、それからさらに二日後には海賊版が出た。まあ海賊版作られるのは時間の問題とはおもったけどね。で、1000ドル(約80万円)以上を1日で稼ぐ日がついに来た。変だったかなぁ?NGUI海賊版を作成した人を2人知るようになって、じつは気に入ったからそれを購入までしてみた。でも、これがまた最高だった。

「海賊版の登場は商売にプラスに働く」という考え方を知ったのだが、NGUIのフリーお試し版ダウンロード後に購入検討してもらうというアイデアを実行に移した。リスクあることで大失敗するかもしれない。だって、タダで使えるのにわざわざお金を払うだろうか?しかし、驚いたことに、売り上げにこのことはほとんど影響することがなく、実行したときに前週と0.5%ぐらいしか差がなかった。他の開発者にとってメリットがあるように、アセットストアでNGUI同梱版のアセットをリリースできるオープン版まで追加費用を無料で提供した。売り上げにただちに直接的な影響は出なかったけど、長期的には必ずプラスになっていたと今でも確信をしている。

NGUIの機能が一揃いしたのがリリースから3-4ヶ月後の頃だったけど、ようやく元の計画に戻ってゲーム開発に戻ることが出来た。どのゲームを開発するか、その考えはもう変わっていて宇宙を舞台として探検ゲームから素早いアクション展開の船舶コンバットゲームに軸足が移った。変更した理由は船舶ゲームのほうが開発範囲が限定されていたためだった。後から考えると、元のプランどおりが良かったと反省してて、そうしたほうが幅広いユーザ向けでさらに歓迎してくれる人が多くいたとおもう。でも自分の当時の考えにもとづいてWindwardを誕生させた。

後悔が始まった

どうしても言いたいこととして、NGUIで稼ぎはフルタイム当時の3倍になって、やるべきことはフォーラムやQ&A対応だけだった。この対応は一日2-3時間はかかったし、残りの時間をWindward開発に当てることになった。結果、働くに働いて気づけば1週間に100時間、7ヶ月連続で仕事をしていた。

まあキチガイだというかもしれないけど、自分にとっては違う。仕事だと感じなかったし、趣味だとおもった。自分の希望どおり、在宅で楽しいプロジェクトに取り組んで、サイドビジネスとして安定した収入を得られるようにメンテナンスを続けた。ただ、夢がかなったのかというと、それはそうでもなかった。

不幸にもWindwardに集中すればするほど、NGUIメンテナンスがうらめしかった。大体、ここまで時間を食うつもりじゃなかったんだし、何よりも皆が望んだ機能修正である内製フォントやDepth/Zバッファの問題は自分の手に負えないものだった。Unityを直さないとどうにもならない問題だったにもかかわらずUnity社に問題を一緒に解決してくれる窓口をもっていなかった。それに加えて、Unityがもっと優れた新UIを自前で開発予定だということが分かっていたから、NGUIは遅かれ早かれオシマイが来るんだと感じながらも新UIのリリースは常に遅延されていてフラストレーションが溜まっていった。

本当はWindwardでユーザが増えてコミュニティが出来て、せめても開発期間6ヶ月後にはコストを賄える状況にしたかった。だけどそれは実現しない夢だった。リリースして7ヶ月でWindwardの売り上げは68本、ゲーム関連サイトで宣伝されても状況はまったく変わらなかった。その時点でさらに二人を雇い入れて週2800ドル(約23万円)はコストがかかるようになり、さらに自分も相当な時間をとられるようになった。
-----

Cannon Ball3: Unity基本機能に忠実なゲーム

Unity基本機能に忠実なゲームで気になったものを見かけたので紹介したい。

失礼な言い方になるかもしれないが、ゲームとして面白そう、というよりも、こういう作りはいかにもUnityの基本機能を組み合わせれば短時間で綺麗な仕上がりに出来そう、とそんな観点で興味深い事例。

Cannon Ball3というゲーム。Unity基本機能に忠実な表現をしている。3D空間上を動く車のサブカメラが画面下部に表示されているのが効果的な印象だ。

TerrainやAnimationのついたキャラクターを使ってAsset Storeからもアセットを多用したFPSなどのほうがUnityらしさがある、など人によって様々意見はあるとおもうがCubeやSphereなどとPhysicsエンジンやカメラ、ライティングなどを3D空間に短時間で綺麗に表現できる技術がUnity初級者が感じる基本部分でないかな、と感じている。
WebPlayer版

動画

ゲームとしてどうかというより基本に忠実で絵の綺麗さと上手に映像表現に活用できているところが素晴らしいい!

2012年10月25日木曜日

Unity 圧縮音声のループ再生について


皆さんはiOS/Androidの音声でループ再生を試みたことがあるだろうか?

よくある落とし穴についてUnity Answersに回答あったので紹介する:



http://answers.unity3d.com/questions/127767/gapless-looping-on-ios.html

Apr 08,2012 at 09:51 AM

質問
WAVファイルをUnityのPCビルドでインポートしたが、Audio Importer上で圧縮音声にした場合もHardware decodingおよびGapless loopingをクリックすることが出来ない。これらはiOS専用なのか?シームレスなループ再生のmp3ファイルを作成したが、mp3が2分のファイルのうち1分43秒までしかインポートされないので違和感を感じている。

回答
Hardware decodingは圧縮mp3オーディオ専用である。Gapless loopingはWAVファイルがあり、かつオーディオフォーマットを圧縮(MPEG)に変更した場合のみ選択できるようになる。Unityはその場合にWAVファイルをMP3ファイルに圧縮し、音が跳ねることない長さで音声クリップのループ再生を行う。
---------

マニュアルを隅々までみていれば分かることだが、知らないと案外とハマるもの。小さなテクニックも身につけようぜ!

2012年10月24日水曜日

3Dモデル作成 Scultpris 入門ビデオ

筆者は3Dモデリングについてはメタセコイア、Blenderのみ使用してきたのですが、やはりリアルな表現をするうえでは法線マップを使用できるZBrushやSculptrisも時間をみつけながら勉強してきたいな、とおもっていました。

ScuptrisはZBrushと異なって2012年10月時点は無料。

出来るモデルはハイポリゴンとなり何十万の頂点数となることもあるため、ゲームにそのまま移行するのは困難ですが、その後はバンプマップにすることで頂点数を減らしたモデルにすることも可能。
さいわいに日本語の入門ビデオを作成した方がいて、これを数分見てみるだけでも全体像が良く掴める。

http://vimeo.com/28664342

まさに粘土を伸ばすように、という表現に偽りなし!Sculptrisで3Dモデルの表現力を高めようぜ!

2012年10月23日火曜日

Unity waypointスクリプト

Unity3dフォーラムで動作の制御スクリプトがあり、コメント入れなども丁寧にされているものであったので紹介したい。

今回紹介するのはwaypointという動作の制御スクリプト。敵キャラクターなどにいくつかのポイントをランダムに行き来させるような使用例があるとおもう。

どんな動作をするか例示するためにスクリプトでボールが動き回る簡単なシーンを作成した。


さらにフォーラム投稿されているコードを翻訳したものを紹介する:

コード中に英語コメントがありすぎて少し見づらかったためあえて省いたが、英語に自信ある方はリンクから丁寧なコメントもみてもらったほうが理解は進むとおもう。


waypointを実現する簡単なJavascript。

使用するときのステップ:
1.RigidBody,Colliderのあるゲームオブジェクトにこのスクリプトをアタッチする。
2.Size変数を使用したいwaypointの数に更新する
3.waypointオブジェクトをSizeの下の空きスロットの位置にドラッグ&ドロップする
4.waypointオブジェクトにColliderがあること再確認する(Sphere Collider推奨)
5.waypointオブジェクトのis TriggerチェックボックスをOnにする
6.サイズ調整(Sphere Colliderの場合は半径)を行う
7.変数の値の調整。スピードなどイメージに合うまで調整する。

var accel = 0.8;
var inertia = 0.9;
var speedLimit = 10.0;
var minSpeed = 1.0;
var stopTime = 1.0;
private var currentSpeed = 0.0;
private var functionState = 0;
private var accelState : boolean;
private var slowState : boolean;
private var waypoint : Transform;var rotationDamping = 6.0;
var smoothRotation = true;
var waypoints : Transform[];
private var WPindexPointer : int;

function Start ()
{
   functionState = 0;
}

function Update (){
   if (functionState == 0)
   {
      Accell ();
   }
   if (functionState == 1)
   {
      Slow ();
   }
   waypoint = waypoints[WPindexPointer];
}

function Accell ()
{
   if (accelState == false)
   {
      accelState = true;
      slowState = false;
   }
   if (waypoint)
   {
      if (smoothRotation)
      {
         var rotation = Quaternion.LookRotation(waypoint.position - transform.position);
         transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * rotationDamping);
      }
   }
   currentSpeed = currentSpeed + accel * accel;
   transform.Translate (0,0,Time.deltaTime * currentSpeed);
      if (currentSpeed >= speedLimit)
   {
      currentSpeed = speedLimit;
   }
}

function OnTriggerEnter ()
{
   functionState = 1;
   WPindexPointer++;
   if (WPindexPointer >= waypoints.Length)
   {
      WPindexPointer = 0;
   }
}

function Slow ()
{
   if (slowState == false)
   {
      accelState = false;
      slowState = true;
   }
   
   currentSpeed = currentSpeed * inertia;
   transform.Translate (0,0,Time.deltaTime * currentSpeed);
   if (currentSpeed <= minSpeed)
      {
      currentSpeed = 0.0;
      yield WaitForSeconds (stopTime);
      functionState = 0;
   }
}
----

Unityフォーラムのスクリプトをゲーム開発に生かそうぜ!

2012年10月22日月曜日

iPhoneカメラだけで3Dモデル作成、表示が出来る!!

3Dモデルを作成する場合は3ds Max, Maya, Blender, メタセコイアなど専用のソフトウェアを使用して作るのが通常の手順であるが、いきなりiPhoneカメラだけで3Dモデル作成、表示が出来るアプリがあることを知ったので紹介したい。

ソフトウェアは123d Catchで大手のAutodesk社が昨年より提供されていたものであるが、日本のAppStoreのiPhoneアプリ「123d catch」としてリリースしたのはどうやら今年の9月頃のようだ。

本家サイト
http://www.123dapp.com/catch

まずは会員登録することが必要となる。2012/10時点では無料である。

使用方法は簡単で椅子を撮影する例でいうと最大40枚ほど異なる角度からiPhoneカメラで撮影し、アプリから直接サーバーにアップロードするのみ。サーバーとの通信やサーバー側でのモデリング処理は10分以上かかることがあるが、アプリから3Dモデルを表示できるようになる。

実際に作成されているモデルなど会員登録してみていただくと良いが、リアルに表現ができている!
  • iPhoneアプリで作成した3Dモデルはズーム、回転が手軽にできる
  • ウェブ会員ページでOBJファイルとしてダウンロードすることが可能
  • ハイポリゴン(1万頂点数ぐらい)すぎるのでそのままゲームには使用は難しい
これだけでもかなり楽しめる!撮影時にコツはかなりあるので以下ビデオでチェックすると良いとおもう。

iPhoneの123d catchアプリで現実空間を3Dモデルにしようぜ!

2012年10月19日金曜日

Unity AIの実現にUnitySteerを活用する~その4

少し前にUnity SteerでAIが実現できることを紹介したが、より具体的なことについて本家サイトに記載があったので紹介したい:

http://arges-systems.com/blog/2010/07/03/unitysteer-changes-and-re-organization/
7/3/2010

Unity Steerのデモをみていくこととして、群れ行動を表現したいと仮定する。この場合、必要なSteerは3種類ある:
  • 隣接する物体と並ぶSteer
  • 隣接する物体との距離を保つSteer
  • 隣接する物体と凝集するSteer
MonoBehaviourでコードを書いてく代わりに、簡単にアセットに含まれるSteerスクリプトをゲームオブジェクトにアタッチする。結果的に図のような構成となる:
各々のクラスはそれぞれのロジックを綺麗に分離しており、新たなSteerが必要となった場合もコード数の短いクラスを新たに作成するのみである。(例えばある場所付近に拘束するためのスクリプト)

このアプローチの便利なところはそれぞれのスクリプトがゲームオブジェクトに対して加えている力の大きさが明白であることだ。また拘束(Tether)スクリプトがある場所から離れすぎた場合のみに実行され、障害物を回避するSteerは衝突しそうなときのみに実行される。

このようなアプローチでアセット作成を行うなかで、不要なメソッドや使うことのないクラスは隔離するようにし、残したコードにコメント入れを意識した。まだ加えたい変更はあり(障害物回避を改善するとか、サンプルとなるシーン数を追加するなど)、今後追加していく予定としている。
(訳者注. 2012/10/18時点ですでに追加済み)
-------

これまで何回かに分けて紹介してきたUnity Steerはスクリプトをアタッチするだけであり、プログラミング経験の少ない人でも分かりやすい仕様なので応用を利かせやすいとおもう。

さてAIとひとくちにいっても、紹介してきた範囲はきわめて限られた範囲だがAI専門で幅広く情報を提供している会員制のサイトもあり、そのなかの無料コンテンツについては機会あれば紹介してみたいとおもう:
http://aigamedev.com/

Unity Steerでゲームに自分だけのAIを追加しようぜ!

2012年10月18日木曜日

Blender 異彩を放つスマホのイラストレーションを創る

宇宙のイラストはいつも未来を感じさせる先進性がある。暗い宇宙空間のなかで表現される光は美麗で見るものを惹きつけるところがある。

今回はそんなイメージをBlenderで再現するにはどうしたら良い?ということで何度かこのブログで取り上げているBlender Guruに同様のテーマがあるので紹介したい。

いつもどおりリンク先のトップにビデオチュートリアルがあるので、それを見ていただけば一目瞭然だが、説明文について翻訳をした:

September 14, 2011

このチュートリアルで学ぶこと:

・スマートフォンをモデリングする
・光線を作成する
・星空をクイックに追加する

視覚的に記憶に残る広告は思い出せるけれども、まったく記憶に残らない広告も無数に存在する。

企業は何千ドルもの資金を広告に投資し利益をあげることを期待している。成功であれば企業はあなたの広告をまた使ってくれるであろう。だけど逆にブラックリストの載せられてしまったら二度とあなたを企業は使ってくれない可能性もある。

もしあなたが成功するフリーランスになりたいのであれば「売れる」広告にする必要がある。諺にあるようにお客様第一なのである。そしてフリーランスとしてお客様があなた自身のクライアントと言って良い。期待に応えなければいけない!

このチュートリアルではサムソンのGalaxy SⅡの広告を作成するつもりで進めていく。
-----

いつもどおりに、漫然と全体を見続けるには長いので、ビデオチュートリアルのポイントをまとめてみた:


1:50 作成開始。Blender以外で使用すべきツールとしてはPhotoshopを推奨する作者。「戻る」ボタンとか簡単に作成するなどの説明がついているためという。

4:40 エッジの修正
9:00 モディファイァの変更
14:00 UVマッピング
18:00 サムソンのロゴ。Arialで再現。
33:00 スマートフォンの周りの光の枠を作成。単純な操作で複製、拡大の繰り返しだが、最後に均等となるよう調整
38:00 背景の星空を作成
39:50 スマートフォンからの光を発光するよう押し出しで枠を作成。さらにテキスチャに白のグラデーションを反映
48:50 発光量の調整
52:30 Photoshopで追加レイヤーを追加し、ネオンのように複数の色が光っているように見せる


センスが凄いなー、といつも感じながらみているのだが、今回は33分以降のスマートフォンの周りの光らせるテクニックが参考になると感じた。

何度か見てみることで自分のテクニックにないものが身につけられるとおもう。

Blenderで光を自在に表現しよう!

2012年10月17日水曜日

Unity AIの実現にUnitySteerを活用する~その3

前回に続いてUnity Steerについて紹介したい。

情報源としては2009年までさかのぼるが、当時にUnitySteer全体像について作者が説明した内容の紹介をさせていきたい。過去情報の翻訳であるため、すでに不要となっているものもあるため、その点はご留意いただきたい(Radar Prefabの使い方など一部すでに変更となっています)
2009/7/8

UnitySteerはゲームキャラクターや乗り物がシーンを自動操縦するためのクラスを含む。
どれぐらい加速するか、どれぐらい持続するか、乗り物の特徴にあわせどのように曲がるか障害物をよけるときにどのように行動すべきか、他の登場人物からどれぐらい距離を保つべきか、等々。いくつかのビヘイビアはきわめてかんたんであるが、より複雑な動作を実現するには組み合わせることが有効である。

このライブラリはOpenSteerおよびOpenSteerDotNetをUnityに移行したものであり重複したクラスを省いたり必要に応じてUnityのメソッド呼び出しを適宜おこなっている。乗り物のクラスは初期化の際にTransformかRigidbodyを設定するオプションがあり、乗り物が値を直接更新することが出来たり、その後、コードの書き直しを通じて経路探索にも応用されている。

移行の際にもとの乗り物サンプルを拡張し、可能なかぎり統合しながらいくつかの追加機能を加えている:
  • 乗り物連結(Vehicle tethering)
  • レーダープレハブにてトリガーベースの近接検知(Radar prefab)
  • 重み付けによりステアリングBehaviorの優先順位づけ
  • Angry Ant Pathとの統合

現状乗り物のクラスとしてあり、MonoBehaviourスクリプトが準備されているのは
  • 群れ行動(Flocking)
  • 障害物回避(Obstacle avoidance)
  • 徘徊行動(Wandering)
  • 追跡行動(Pursuit)
  • 乗り物連鎖(Chains of vehicles)
すべて2D, 3D動作が提供されている。
------

百聞は一見に如かずなので前回までとはまた異なるWeb Playerサンプルを参考にしていただきたい。


AIをゲーム開発に生かそうぜ!

2012年10月16日火曜日

NGUI 2.2.3

NGUI2.2.2バージョンアップ情報です:

http://www.tasharen.com/forum/index.php?topic=11.15
October 15, 2012, 06:28:17 AM

2.2.3:
-修正:UIAnchorのクリップされたパネルコンテナに微修正(yuewahさんに感謝!)
-修正:Unity Remoteを使った際の不具合を修正、マウスイベントとタッチイベント双方を送信しないよう回避
-修正:UIGridのhideInactiveプロパティが正しく機能しない不具合を修正
------

NGUI作者もここのところ外国に出掛けていたこともあり、さすがに少しペースは落ちたというところだろうか、今回はマイナーバージョンアップの様子。

まだまだユーザから要望はあるのでどんどん直してくれること期待したいぞ!NGUI!

Unity AIの実現にUnitySteerを活用する~その2



前回の続きでUnity SteerでどのようにAIを使うことが出来るか引き続き紹介をしたい。

まずは前回も紹介したWeb Player Demoを再掲する:

紹介リンク
http://arges-systems.com/blog/2010/10/19/unitysteer-20-multiple-agents-example/

デモでどのようなAIを使用しているかというと:

ビヘイビア(振る舞い)を状況に応じて切り替え、キャラクターを制御している。

シーンに4種類のビヘイビアスクリプトがあり、全てのキャラクターにアタッチされている。
・自由に方向を変えながら移動する=放浪(SteerForWander)
・他のキャラクターを回避する=隣人回避(SteerForNeighborAvoidance)
・他の障害物を回避する=障害物回避(SteerForSphericalObstacleAvoidance)
・キャラクターがお互いに離れすぎないようにする=束縛(SteerForTether)

なお、
デモで「1」を押すとデフォルト設定にて77キャラクターが登場するか「2」を押すと154キャラクターで同様のシーンが表示され、処理負荷が重くなるが十分処理出来る環境かが確認できる

最初のキャラクター生成時の配置はランダムに行われており、延々とキャラクター同士はぶつからずに進んでいく。

デモから学べることは至極単純で、Unity Steerでは複数のビヘイビアスクリプトが用意されていて、使用したいものをキャラクターにアタッチすることで様々なキャラクター制御がなされる仕組みとなっている。

どういう組み合わせにするかをは自身のゲームに必要な動きを考えることになるが、パックマンで例えると、ずっと追いかけてくるゴーストが特別アイテムの入手をきっかけに一転して逃げるようになる行動を取らせることなどイメージしやすいのではないかと思う。

次回はさらに他にどのようなスクリプトが用意されているかについて引き続き紹介したい。

AIを組み込むことで開発者も楽しみながら学べるぞ!

2012年10月15日月曜日

Unity AIの実現にUnitySteerを活用する~その1

UnityでAIを実現する方法はいくつかあるが、今回はC++でフリーのライブラリOpenSteerをUnityに取り込んだUnitySteerを紹介したい。

AIについては百聞一見にしかずでまずは紹介リンクにあるWeb Player Demoを見ていただきたい。

紹介リンク
http://arges-systems.com/blog/2010/10/19/unitysteer-20-multiple-agents-example/

OpenSteerは2002年にCraig Reynolds氏がソニーコンピュータエンターテインメントアメリカに所属していた際に開発されている。その後、SCEA, SCEIなどのサポートをえてオープンソースで公開されることとなった。現在の最新に至るまでに数多くの協力者によって出来上がったライブラリといえる。

Unity SteerはRicardo J. Méndez氏などArges SystemsのメンバーがOpenSteerをUnityに移行したアセットであり、MITライセンスとして提供されている。

アセットストアにも置かれているが、より最新のソースコードはGitHubにアップされているため、自身の環境で確認したいという方は是非ダウンロードしてみていただきたい。

ダウンロードリンク
https://github.com/ricardojmendez/UnitySteer/tags

応用がかなり効き、ポテンシャルはきわめて大きいライブラリなのだが、まだドキュメントが少ないのが現状であるため、使い方が分からないところが難点である。

有難いことに作者のRicardo J. Méndez氏に公式サイトのブログコンテンツ翻訳の承諾を得たので次回の投稿よりもう少し詳細について紹介していきたい。

AIをUnity3Dゲームに活用しようぜ!

2012年10月12日金曜日

NGUI 解像度調整機能が縦(Height)にしか対応してない

最近iPhone5が縦長になったことにより、NGUIで解像度調整に苦労する事例が増えている。

テラシュールウェア:[Unity3D]NGUIで作った画面をiPhone5の解像度に手っ取り早く合わせる
http://terasur.blog.fc2.com/blog-entry-285.html

根本原因は明らかで、NGUIの解像度調整機能が縦(Height)にしか対応していないことが要因だ。しかし、どうやらこの問題も次回バージョンでは対応される可能性が出てきた:
本件はNGUI2.2.6で修正されました:
http://gamesonytablet.blogspot.com/2012/11/ngui-224-225-226.html

~2012/11/17追記~
しかし、NGUI 解像度調整機能について、2.2.6バージョンではWidth対応まではしておらず回避策を含めたのみだ。

詳しくは、機会あれば別記事としたいが、理由は現時点だとコードが複雑になり影響範囲も大きいためとのことでよりエレガントな解決策が見つかれば対応する、と将来的な課題になった。
~追記ここまで~


http://www.tasharen.com/forum/index.php?topic=1933.0
October at 04:41:22 AM

【質問のまとめ】
iPhone5だと上記のとおりボタンがはみ出てしまう。iPhone5の解像度にあわせて調整する機能はないだろうか?

現行機能はAutomaticとHeightの組み合わせしかインスペクタに表示されないけど、Widthもインスペクタに表示してHeightと同等の機能はつけられないだろうか?

【回答】
なるほど。10/12以降どうするか検討してみることにするよ!
-----

しかし、質問のタイミングが絶妙だな??誰かテラシュールウェアの記事を見た人による機能追加リクエストかもしれないな・・・

みんなの意見でNGUIをより便利にしていこうぜ!

2012年10月11日木曜日

【ちょっと一息】PhotoshopからNGUIにインポートするプラグイン

NGUI公式フォーラムでPhotoshopからNGUIのAtlasに取り込みできるプラグインを開発している方の紹介が話題を集めていたので紹介します。

需要がある機能か私は「?」なのですが、フォーラムではアルファー版を試したいという方が多いようです:

http://www.tasharen.com/forum/index.php?topic=1906.0

October 04, 2012, 01:00:06 PM

こんにちは、Monster Juiceのリード開発者のBruon Mikoskiです。PSDからUnityのNGUIにダイレクトにGUIをインポートできるプラグインを開発しました!。他の方にも便利となるようベータテストを行っていきたいと考えてます。

アルファー版のビデオおよび操作方法
http://youtu.be/UDvoYx1N2e0

ダウンロード先リンク
https://docs.google.com/open?id=0Bx3gW3IbiR_sdVlBRDlkTHJBaUE

機能
  • フォトショップのPSDで作成したGUIを完全にUnity3Dに移行し同じ結果が得られる
  • 配置(Positon)の調整に時間と手間をかける必要がなくなる
  • アンカーは空のGameObejectで作成
  • GUIを手動で作成するより十倍早い
  • PSD上の編集で配置(Positon)を更新する
  • 頭文字で自動判定してウィジェットを作成する(例 "btn"を頭文字にした場合にImageButton作成)
---------

ビデオをチェックすると、Fontをインポートするのはまだ出来ない様子。まあ、まだ今後に期待ってとこかな?

2012年10月10日水曜日

【ちょっと一息】Unity 活用しているゲーム会社のインタビューから

ドイツのUnity InsiderがUnity 活用しているゲーム会社のインタビューをYoutube公開していたので内容について紹介したい:
http://www.youtube.com/watch?v=d17-ywG1Jos

インタビューの対象はISOTX社でIron Gripシリーズが代表作。

社長インタビュー

  • ゲーム会社を見つけて契約する形からSteamやiTunesで販売するようになり負担が減少
  • ハードウェアの性能を最大限に活かし、高品質なグラフィックス描画を研究していたらゲームエンジンのUnityが候補となった
  • ウェブブラウザで遊べて、グラフィックスも文句なしだったので理想的な開発環境
  • 組織はあまり大きくしたくない、なぜなら15本同時にゲームを開発するというような状況ではひとつひとつのゲームの品質が維持できないため
  • 現状の組織の中で品質の高さを維持していっているが、知見のないところだけ最低限で契約を結んでいっている。例えばアジア向けでは知見がなく、サポートがもらえるようにしている。

ディレクター、開発者インタビュー

  • ゲームで過去遊んだ情報はローカルにキャッシュさせてロード時間を短縮するようにしている
  • パッケージソフトウェアだと12GBとかで提供できるゲーム容量がiOS向けにすると40MBなどになるよう収めているので、どうしても工夫が必要
ところどころ開発現場(デザイン、モデリング作業)で分担して作業を進めている様子が映されている。

プロの仕事を参考にインディゲーム開発を進めよう!

2012年10月9日火曜日

Unity WIki Tips - メッセージ通知センター

たくさんの敵キャラを作成して、衝突するつどにSendMessageを使ったコーディングをしていると、後々でコードのメンテナンスが面倒になることがある。

Unity Wikiでこれを解決するNotificationCenterという良い方法があったので翻訳を紹介したい。

C#スクリプトはリンク先の一番下に直に記載されているためコピーしておくと良い。

http://wiki.unity3d.com/index.php?title=CSharpNotificationCenter



用法
これは自動でインスタンス化されるシングルトンクラス。オブジェクトにアタッチする必要はなく、プロジェクトのアセットに入れてDefaultCenterに呼び出しを行うのみ。 このstaticメソッドの呼び出しにより:ゲームオブジェクト作成、NotificationCenterコンポーネント追加、コンポーネント参照作成が自動的に行われる。

PostNotification()により通知を投稿(Post)することが出来る:
NotificationCenter.DefaultCenter.PostNotification(this, "OnBumperCollision");
NotificationCenter.DefaultCenter.PostNotification(this, "OnBumperCollision", anyObject);
NotificationCenter.DefaultCenter.PostNotification(new Notification(this, "OnBumperCollision"));
NotificationCenter.DefaultCenter.PostNotification(new Notification(this, "OnBumperCollision", anyObject));

PostNotification()メソッドは、いくつかの呼び出し方法がある。 必須のパラメータは2つのみ(送信者、通知名)。 オプションでデータオブジェクトもパラメータとして受取りが出来るものであり、送受信されるものでさえあれば何であっても良い。 例えば、OnBumperCollision通知がCollisionに関する情報を送信しても良いし、Collisionオブジェクト自体を送ることも出来る。 多くの場合では、データオブジェクトはハッシュテーブルとして使用され、データオブジキーと一対で様々な情報を格納できるようにする。
留意点として、PostNotification()は個々のパラメータを渡すことも出来るし、Notificationオブジェクトを渡すことも出来る。 通知オブジェクトは、サブクラス化することができる(通知データのセットを作る場合など)。さらにNotificationオブジェクトは、必須のパラメータは2つのみ(送信者、通知名)でありオプションでデータオブジェクトもパラメータとして受取りが出来る。

addObserverメソッドを呼び出すことで通知を受け取るよう登録できる:
NotificationCenter.DefaultCenter.AddObserver(this, "OnBumperCollision");
DefaultCenter()は、デフォルトのNotificationCenterのインスタンスを返すstaticメソッドであり、存在しない場合は、自動でインスタンス化される。 AddObserver()通知は2つのパラメータが必要である(受信したいオブジェクト名、登録する通知名)。 登録する通知名は、イベントで実行する関数名である。

RemoveObserver()メソッドでオブザーバを削除できる:
NotificationCenter.DefaultCenter.RemoveObserver(this, "OnBumperCollision");
RemoveObserver()は指定された通知イベントのオブザーバのリストからオブジェクトを削除する。

通知を受信するには、通知名を持つメソッドを実装する:
using UnityEngine;
using System.Collections;
 
public class Test : MonoBehaviour {
 
   // Use this for initialization
   void Start ()
   {
      NotificationCenter.DefaultCenter.AddObserver(this, "OnBumperCollision");
   }
 
   void OnBumperCollision ()
   {
      // do something...
   }
}
------
実際にNotification Centerの考え方を応用したゲーム開発を推奨しているサイトはみつかった。しかし、多くのコンテンツが有料になっているため、詳細確認までは出来なかったのが残念なところだ:
http://www.digitaltutors.com/11/training.php?vid=12512&autoplay=1

色々な考え方をUnity Wikiから取り入れてゲームで有効活用しよう!

2012年10月6日土曜日

NGUI 空白だらけのAtlasを解消する

今回の投稿はNGUIで無駄に空白だらけのAtlas作成を未然に防ぐ方法について。

公式フォーラムより翻訳します:

http://www.tasharen.com/forum/index.php?topic=1608.0
September 10, 2012, 07:17:14 PM

質問
SD、HD両方の解像度の英字フォントを作成してひとつのAtlasにまとめたんだけど、空白だらけになってさらに巨大化(2048x2048)になってしまったのだけど、どこで間違えちゃったかな?

回答
一般的なコツは2のべき乗サイズより1ピクセル小さいサイズにすること。たとえば1024x1024をターゲットにしているなら1023x1023にする。

ただ、添付してくれた画像をみるとこの場合は600x600ぐらいにしたら完璧じゃないかな。
-----

へえー。1ピクセルだけ下げとくのは余白を1つとる、ということなのかしら?いまひとつ理由が書かれてないのが残念だけど、何かのときに試す価値ありそうだな。

小さなテクニックを積み重ねてNGUIをマスターしようぜ!

2012年10月5日金曜日

NGUI 2.2.2

NGUI2.2.2バージョンアップ情報です:

http://www.tasharen.com/forum/index.php?topic=11.15

October 3, 2012 at 08:40:56 AM

2.2.2
-新機能:UIRootで最小値と最大値の高さ設定を指定できる機能を追加
-新機能:ラベルのShadowおよびOutline距離を修正できる機能を追加
-新機能:UIButtonActiveを追加、簡単なスクリプトによりクリック時に何かをActivate, Deactivateが出来る
-新機能:UIを新たに作成することで自動的にKinematic RigidbodyがUI Rootに追加され、Physicsチェックを高速化
-新機能:ゲームオブジェクトをNGUITools.Destroyで破棄すると親子関係も自動解消される機能を追加
-新機能:UIEventListenrにOnKeyデリゲートを追加
-修正:スプライトのプレビューで幅が長いスプライトが正しく表示されない不具合を解消
-修正:InspectorでAtlasでのコピー&ペーストでエラーが発生する不具合を解消 (athosさん、サンキュー!)
-修正:UIGridが破棄されたゲームオブジェクトを参照してしまう不具合を解消
-修正:その他、軽微な修正を反映
-----

10月のメジャーバージョンアップはまだこれからか?期待しているぞNGUI!

2012年10月4日木曜日

NGUI 描画順について

公式フォーラムでNGUIの描画順について作者からの説明があったため翻訳内容を共有したい:

http://www.tasharen.com/forum/index.php?topic=1858.0
October 01, 2012, 04:55:59 PM


FAQに書いても人がそれを読んでくれないことが良くわかったのでフォーラムの目立つ位置に付箋を貼ることにしたよ。いまでも毎日この質問が出てきて困っているんだ。

問い合わせ
Depthをウィジェットに設定しても前後関係がおかしいことあるけど何で?

Depthプロパティは同一パネルの同一Atlasのウィジェットの描画順を判定するのに使用される。異なるAtlasを使用してるのであればTranformのZ座標を変更してウィジェットをカメラの一番前に移動してほしい(Zをマイナス値にする)。もし異なるパネルを使用しているのであればパネルのTransformのZ座標を一番前に移動したいパネルについてZ値をマイナス値のより小さい値に設定してほしい。そもそも、出来ることならばAtlasがひとつになるように管理できれば理想的で、その後の負担も多いに減る。

技術解説
通常UnityはすべてをTransformのZ座標でソートを行う。カメラに近いオブジェクト(より小さいZ座標)はより遠いオブジェクト(より高いZ座標)の前に重なるようになる。これはUIが平らでOrthoカメラであれば何ら問題はない(2D UIの場合)。しかし3D UIについては少しでもウィンドウを回転させることはウィジェットへの距離を変更するため、このアプローチの意味がなくなる。この理由によりDepthという概念を作成した。固定の値であるため、Transformの値変更にかかわらず一定の値となる。残念ながら異なるDraw Callの場合にDepthを強制的に参照させることができないため(別パネル/Atlasは異なるDraw Callになる)、どうしても異なるパネルやAtlasの場合はZ座標を調整するしかない。
--

正直、日本語サイトですでにこの問題は丁寧に検討されたスライドが存在していて、あえて付け足すところはないようにおもう。

「もののけ大戦“陣”」製作事例
http://www.slideshare.net/RyoheiTokimura/ss-14048278
※スライド#44~#50あたり

ただ、スライドをみてもこれについて悩んでいる人は多いと感じる。作者のほうでも新たな手立てを考えてくれないかな??

2012年10月2日火曜日

NGUI2.2.0以降のUIAtlas変更について

このブログで記載したNGUI2.2.0のバージョンアップについて質問をいただいた事項があったので私自身の回答を含めて投稿します。

なおいつものブログ投稿内容とちがって、公式フォーラムの回答ではないので何か間違っているかもしれません。その点ご承知おきください。

【質問】
UIAtlas の Show ポップアップリストで、Sprite と Atlas を切り替えてプレビュー出来たと思うのですが、その機能はなくなってしまったのでしょうか?

【回答】
結論からいうとこの機能はなくなっている。

まず、質問にあるとおりNGUIでは2.20より前のバージョンのUIAtlasでShowの横をクリックするとポップアップリストが表示されていた。
しかし、NGUI 2.20のバージョンアップにてUIAtlasに大きな変更が入った。

NGUI 2.2.0
http://gamesonytablet.blogspot.jp/2012/09/ngui-220.html


NGUI2.2.0以降ではSpriteしか表示されず、「Select a Sprite」という別ウィンドウにて検索窓つきで表示される方式になる。
 残念ながらこの方式だとAtlas全体をみることが出来ない。

ただしオブジェクトのImport Settingsをみれば今までどおりプレビューぐらいはみることができるし、別ウィンドウでスプライトを変更する都度にInspectorのDimensions, Border, Settingsは動的に変更されるようなので困ることまではないのかもしれない。

では作者はそもそも新UI Atlasで何を改善したかったのか、ということになる。

これはNGUIメニューからCreate Widgetを選択すると違いが明らかになる。

2.2.0より前のバージョンではパネルに追加される画像が表示されない。以下の例ではSpriteの名称のみHoneycombとだけ表示されるため、追加してみるまでどのようなSpriteであるか分からなかった。

一方、2.2.0より後のバージョンではNGUIメニューからCreate Widgetを選択するとさきほどのSelect a Spriteという画面からパネルに追加する画像が表示されるように変更になっている。
うん、確かに画像が表示されたほうが便利なのは明らか。

しかし、質問者のいわれるとおり、Atlas全体を表示する機能をなくす必要がなかったのではないか?との疑問は残る。ここは推測になるが、Import SettingsでAtlas全体はもともと参照できるので、個別にSpriteを表示する画面はCreate時と共通にしたかったのかもしれない。
----

最後のあたりはどういう背景かのことなので、推測になるがどうしても必要な機能があるならばNGUI公式フォーラムで仕様変更希望(feature request)を英語で記載すれば作者が直す意向があるかは質問した日に回答してくれる傾向にある。


やっぱりNGUI作者のアセット修正の意欲はすごいなー!

2012年10月1日月曜日

Unity ダンジョンマップを作成するアセット

Unityでゲームを作成する時、キャラクター以外の背景を作り込むことになる。

3DのFPSやRPGにする場合、ダンジョンマップを作成するが本格的なキャラクターをAssetとして購入した場合、同様にダンジョンもショボいものではバランスが崩れてしまう。

Unity Asset Storeで美麗なダンジョンマップをカスタマイズできるAsset「MakeYOURlevel」があったので紹介したい:


MakeYOURlevel
http://u3d.as/content/pixtim/make-yourlevel/38R

Assetストアの紹介にビデオチュートリアルやWebPlayerサンプルがついているので軽く目を通してみるとよいとおもう。eb Playerサンプルは本格的とのこともありダウンロードにしばらく時間がかかってしまうので注意。

ビデオチュートリアル
http://vimeo.com/45239935

Web Playerサンプル
http://pixtim.com/pixtim_test/WebPlayer_makeYOURlevel_env01_biglightmap/WebPlayer_big-lightmap.html

説明文
カスタマイズできるゲームレベルを部品からクイックに作成できる。シーン全体のマテリアルをわずかなクリック数も一括変更に対応。UV展開のテキスチャを80以上含まれるサンプルから選択することでシーンを自由にカスタマイズ出来る。
パッケージに含まれる3Dモデルは通路、部屋、階段、エレベータ、丸天井、ドア、窓、照明、その他。

ドキュメント
http://pixtim.com/stock/makeYOURlevel_English.pdf




サンプルをみていただくと分かるが本当に綺麗な仕上がりになる!ただ2012年10月現在で$35と決して安くはないので気になるポイントも列挙してみた:

  • 頂点数は少ないようにみえるけどモバイルで活用できるレベルか不明
  • ライティングも綺麗だがUnity Freeだとどこまで表現されるか不明

イケてるアセットでダンジョンマップを美麗にしようぜ!

ブックマークに追加

このエントリーをはてなブックマークに追加

自己紹介

自分の写真
Unity3D公式マニュアル翻訳やってる人がスマホ(iPhone, Android)のゲーム開発しています。気軽に面白く初心者が遊べる内容がモットー。Blogでは開発情報をひたすら、Twitterではゲーム作成の過程で参考にしている情報を中心につぶやきます

ページビューの合計

過去7日間の人気投稿

ブログ アーカイブ