note.x

Unity – Game Development Tool

気になってしょーがなかった Unity を試してみた。
Flashでのリアルタイム3D表現は引き続き勉強するとして、ちょっとレベルの高い環境にも触れておこうと思った次第。
Unity – Game Development Tool

.NET(Mono)ベースなのに、OSX専用という奇特なゲーム開発環境。
興味を持ったのは、OSX / Win 共にWebPlayerが提供されてて、作ったコンテンツがブラウザでも動かせること。
有償の製品だけど、機能制限版のIndieライセンスだと20,000円ちょっと、フルスペックのPro版でも175,000円と、かなりコストパフォーマンス高い。おまけに.blendがネイティブで読み込めるので、ShockWave3Dのように、Director + 3dsMAX揃えないと開発できないなんてこともない。

WebPlayerをダウンロードして、オフィシャルなデモを見て頂ければどんなことが出来るか解ると思う。

とりあえず、indieのデモ版がダウンロードできるので、これを使ってデモ作ってみた。
デモ版でも普通にWebPlayer用のビルドが出来るのはありがたい。
OpenGLに対応したビデオカード積んでれば動くと思うけど、動かなかったら御容赦ください。ハードウェアの恩恵が得られる反面、動作環境に色々左右されるのはちょっと不安。

Hello Unity(要:Unity WebPlayer)
※各キューブはマウスでドラッグできます。

Unity Maze(要:Unity WebPlayer)

  • マウスで視点移動
  • [W or ↑]キー:前進
  • [S or ↓]キー:後退
  • [A or ←]キー:左平行移動
  • [D or →]キー:右平行移動
  • [Space]キー:ジャンプ

触ってみた感じは、タイムラインが無くなった Director っていう印象で、それなりに使いやすい。付属のチュートリアル読むだけでそこそこのことが理解できるし、ドキュメントも親切で助かった。今回作ったデモは、どっちもスクリプト書かずに出来ちゃった。絵を書いたりモデリングするのが得意な人が使う環境としてはかなりイイ感じだと思う。

Flash系3Dエンジンじゃ到底出来ないような負荷のかかる処理もサラっとできてしまうので、アイディアやエレメントの作り込みがキチンとできてないとアラが浮き彫りになる。そういう訓練を積む意味でもAway3Dと平行してあれこれ試してみよっと。


Trackback URL : http://blog.r3c7.net/misc/226/trackback/

COMMENTS

  1. mBort - 2008.09.22 22:04:22

    Hello there.
    I work for a brazilian digital agency that holds axe´s account in brazil.
    We hired a group of unity 3d developers for the lastest campaign and the result you can see at:
    http://www.axe.com.br/billions/site/#/game
    *just click on the button “Jogar Agora” which means “play now”.
    As a flash developer I think that is a good example of how far 3D in flash is behind Unity 3d.

    bye.

  2. miya - 2009.03.24 0:50:13

    rectさん、はじめまして。
    PV3d関連の情報を探していたところ、恐らく、かなり身近にrectさんのような凄い方を見つけて驚いている、大崩(R150)の西在住の3Dモデラーです。
    webブラウザーベースの3Dビューアーを物色していたのですが、rectさんの記事のUNITYに出会い、プログラミングとは縁遠い自分に最適なソフトウェアーではないかと思い、早速試用版をダウンロードして試してみました。なかなか思い通りに行く訳もないのですが、3Dソフトウェアーからのスケルトン・アニメーションの書き出しも上手く行き、自分なりにUNITIYに今後の可能性を感じました。
    これからもrectさんの記事を参考にさせていただきたいと思います。
    UNITYとの出会いに感謝です。有難うございました。

  3. rect - 2009.03.24 11:33:55

    >miyaさん

    >大崩(R150)の西在住
    おおー、近いッスねー。小浜とか浜当目あたりですか?

    UNITYはむしろモデリング出来る人が使った方が威力を発揮できると思いますねー。
    現状まったく普及してないのがアレなんですが、Win版の開発環境が出てきたことで、ちょっと面白い感じになってきたかもしれません。

  4. miya - 2009.03.24 19:44:46

    rectさん、ありがとうございました。

    もうちょっと西でした。(焼津です)

    あれから半日UNITIYと格闘して、とりあえずの目標だった3Dモデルビューアーができました。
    プログラミング無しで、これだけ出来れば満足です。

    http://www.asahi-net.or.jp/~xt6s-myjm/unity/web02.html

    少しずつマウスイベントとかの勉強しながら発展させていこうと思います。
    WIN版が使えてラッキーでした。

  5. rect - 2009.03.25 16:44:17

    >miyaさん

    ロードレーサー!かっこいいー!!
    モデリングの上手い方が作ると、やっぱり締まりますねー。
    コンテンツとして完成する日を楽しみにしてます。

  6. miya - 2009.03.27 5:06:32

    rectさん、ありがとうございます。
    なにか今までほとんど知らなかったWEB3Dの世界にハマッてしまいそうです。
    UNITYもすばらしいと思いましたが、どうしてもPV3Dという奴もやってみたくなって、あれからずっとやって
    ました。PV3D.orgを参考にして、なんとかサイクリスト(だけです)のアニメの書き出しまでできましたが、
    自転車を同期させるとこまでは当分無理かもしれません。でもがんばります。
    (雑誌の連載記事もぜひ読ませてもらいます。)

    http://www.asahi-net.or.jp/~xt6s-myjm/3d/cyclist_test.swf

  7. rect - 2009.03.30 15:46:10

    >miyaさん

    すごい!これイイですねー。自転車が追加されたものも楽しみですが、むしろペダルも取ってしまって「エアサイクリスト」とかもシュールで面白そうとか思ってしまいました(笑)
    ここまでキッチリとアニメーション書き出し出来てるってことは、maxかmayaをお使いですか?

  8. miya - 2009.03.30 16:29:57

     rectさん、こんにちは。
    勢い余って、こんなもんでもリンクを張ってしまって後悔しました。もう少しまともな物ができるようになったら
    と思い、データを削除させてもらいました。すいません。
     サイクリストの元データはmaxで作成してあります。元々はOgre3Dと言うゲームエンジン用に作成しているデータのうち、LODの低いものを使ってテストしてみました。サイクリストの体のメッシュ構成は4つのサブ
    メッシュに別れているのですが(肌の部分とか服の部分に分かれてます。)、それぞれに違ったマテリアルを
    割り当ててます。Unityだとサブメッシュ(サブマテリアル)のままインポート出来たので、とても楽でした。
    PV3d用には、1メッシュに作り替えて書き出しました(DAEMCでアニメ)。Colladaのプラグインだと、アニメーションの書き出しの設定にサンプリングレートの設定とかが無いので、例えば自転車とのアニメーションの同期がどこまで上手くいくのか、いろいろとやってみないと判らないかもしれません。「エアサイクリスト」なら楽ですね!

  9. rect - 2009.03.31 23:14:48

    >miyaさん

    >サイクリストの元データはmaxで作成してあります。元々はOgre3Dと言うゲームエンジン用に作成しているデータのうち、LODの低いものを使ってテストしてみました。

    PV3DにもSimpleLevelOfDetailっていうクラスがあって、ディテールの異なる複数のオブジェクトを配列で保持して、必要に応じて切り替えることができますよ。とはいっても、まともにパフォーマンスの出る表示ポリゴン数が少ないんで、ローポリ→超ローポリって感じのLODにしかならないんですが;上手く使えば、miyaさんの作ったモデルが活かせるかもしれないですね。

    >PV3d用には、1メッシュに作り替えて書き出しました

    自分も同じ結論です。基本ワンスキンで、テクスチャの書き込み頑張るってのがいいんじゃないかと。
    モデル同士の前後関係が常に一定という条件が満たせれば、ViewportLayer使って深度を固定しちゃう手も使えると思います。

  10. miya - 2009.04.02 0:28:47

    rectさん
    アドバイス有難うございました。
    早速JavaScriptから勉強し始めました。(Unityにも使えそうなので。)

    PV3Dのサイクリストのほうは、手っ取り早く、サイクリストの体と自転車のフレーム、ホイール(前後)を1メッシュにして、フレーム、ホイールそれぞれにスキンをあてがいボーンを仕込んでしまえば同期の心配は無い
    (何よりもスクリプトを考える必要が無い)ので、とりあえずこの作戦で行こうと思ってます。

  11. miya - 2009.04.02 11:53:15

    rectさん、度々すいません。
    先の書き込みの、
    >サイクリストの体と自転車のフレーム、ホイール(前後)を1メッシュにして、フレーム、ホイールそれぞれにスキンをあてがいボーンを仕込んでしまえば
    は、「サイクリストの体と自転車のフレーム、ホイール(前後)を1メッシュにして、フレーム、ホイールそれぞれに
    ボーンを仕込んでしまえば」の間違えです。すいません。それらのボーンを使ってホイールなんかを回転させて
    しまいます。
    早速動作のテストをしてみました。なんとか動きました。
    http://www.asahi-net.or.jp/~xt6s-myjm/3d/CyclistTest.swf

    今の自分にできることは、ここまでです。
    今後はアルファ・クリッピングやZソートを課題として勉強していこうと思います。度々の書き込みですいません
    でした。

  12. rect - 2009.04.03 14:12:38

    >miyaさん

    現在消えてしまいましたが、昨日拝見した時の記憶でコメントします。
    ホイール部分のアルファクリッピングは、透過pngをテクスチャに指定するのが一番簡単だと思いますよー。
    あと、同一メッシュ内のポリゴン同士を破綻無くソートする方法として、QuadrantRenderEngineをレンダラに指定するっていう方法があるんですが、かなりパフォーマンスが低下するので、場合によっては自転車のフレームとサイクリストを分けて、前述したViewportLayerを使った方法が現実的かもしれません。
    それにしてもペースが速いですね〜。自分もまだまだなので、負けずにがんばります。

  13. miya - 2009.04.04 21:57:39

    rectさん、
    またまた貴重なアドバイスを有難うございました。
    私のプログラミングの知識では、これ以上は無理みたいですが、とても楽しいので、がんばって勉強します。

Leave a Reply