タグ

ブックマーク / marupeke296.com (8)

  • Spineデータを作成してからゲーム導入までざっくりと

  • その2 ShaderLabでUnityシェーダの下地作り

    ホーム < ゲームつくろー! < Unity/Shader編 Shader編 その2 ShaderLabでUnityシェーダの下地作り Unityには「固定機能シェーダ」「サーフェイスシェーダ」そして「頂点/フラグメントシェーダ」という3種類のシェーダタイプがあり、そのどれもがShaderLabというUnity独自のフォーマット下で記述されます。 ShaderLabのリファレンスはこちらになります: Unity.ShaderLab sintax: http://docs.unity3d.com/Documentation/Components/SL-Shader.html ① ShaderLabの役割 ShaderLabはUnityとシェーダコードとの仲立ちをするコードです。シェーダは何か入力情報が無いと動かす事ができませんが、その「入力情報」はUnityGUIやスクリプトで与えます。マ

  • その1 UnityにおけるShaderとは?

    ホーム < ゲームつくろー! < Unity/Shader編 Shader編 その1 UnityにおけるShaderとは? Unityはいわゆる「固定機能」という描画方法を持ち合わせていません。つまり、Unityで何か世界に物を描画しようと思ったら、必ずシェーダを書かなければならないんです。「え?でも、Unityで皆サクサクゲーム作ってるじゃない…。皆が皆シェーダを書いているようには思えないんだけど…」と疑問に思う方もいらっしゃると思います。それはその通りでして、多くの方はUnityが沢山用意してくれているデフォルトシェーダを利用しています。ちょっとしたゲームであれば、それらシェーダを利用するだけでも十分です。でも、凝った事をしようと思うとオリジナルなシェーダも書きたくなるんです。 そこで、UnityにおけるShaderについて試行錯誤してみようと思います。 ① 世界一簡単にUnityでシ

  • その1 Unityのパーティクル「Shuriken」

    ホーム < ゲームつくろー! < Unity/パーティクル編 パーティクル編 その1 Unityのパーティクル「Shuriken」 パーティクル(粒子)は小さな点を沢山発生させて動かす仕組みです。その点の位置に板ポリゴンやモデルを置く事で、煙や炎や魔法効果などを演出する事ができます。Unityには「Shuriken Particle」というパーティクルエンジンが最初から搭載されています。これを使うととても簡単でそして効果的な演出が作れます。ただ、パーティクルは機能よりも「使い方」「応用の仕方」がとっても大切なんです。 そこでこの章では、Shurikenパーティクルの「機能」についていっきにざざっと見て行き、後の章で使い方を色々研究してみましょう(…と自分に言い聞かせてみました(^-^;)。 ① とりあえず世界に置いてみよう Unityを起動して新規のプロジェクトを立ち上げます。ヒエラルキに

  • FBX習得編

    ホーム < ゲームつくろー! FBX習得編 FBXは3D製作ツールの筆頭であるMayaやMaxでお馴染みAutodesk社が提唱している汎用フォーマットです。3Dモデルの頂点やポリゴンの情報はもちろんのこと、アニメーションやライト、カメラその他様々な情報を格納できます。大半の3DモデルツールがFBXのエクスポートをサポートしているのも魅力です。3DモデルのフォーマットとしてはXファイルがありますが、親元であるMicrosoftがDirectX10でこれを不採用にしてしまったために幸先不安になってしまいました。代替となる有力フォーマットとしてFBXは知っておいて損は無いわけです。 嬉しい事に、AutodeskはFXBファイルとプログラムを結びつける「FXB SDK」を無償で提供していまして、この編ではこのSDKを使って3Dの情報を読み込んでみようと思います。

  • その52 デバイスのロストに対処する!

    ホーム < ゲームつくろー! < DirectX技術編 その52 デバイスのロストに対処する! DirectX9では「デバイスのロスト」という厄介な問題に対処しなければなりません。デバイスのロスト(消失)とはその名の通り描画デバイスが消失してしまう事で、一切の描画ができなくなってしまいます。それだけでなく、描画のために確保していたテクスチャやレンダリングターゲットなども使えなくなってしまいます。何も対策しなければ、ロストが起きた時点でゲームを続ける事はできなくなります。 では、デバイスのロストに対してアプリケーションはどう対処すれば良いのか?この章ではデバイスのロストの対処について試行錯誤してみたいと思います。 ① デバイスのロストはいつ起こるのか? 描画デバイス(IDirect3DDevice9)は通常「処理可能状態」にあります。これはいつも通りに描画できる状態の事です。しかし、例えばフ

  • その18 ステンシルバッファって何?

    ホーム < ゲームつくろー! < DirectX技術編 < ステンシルバッファって何? その18 ステンシルバッファって何? ステンシル(stencil)というのは「型板(かたいた)」「型抜き染め」という意味です。blow a pigment over the stencil(型紙を置いた上から染料を吹き付ける)などの例文にあるように、下にある絵を覆う紙や板をステンシルと言います。Direct3Dでのステンシルバッファというのも正にそれでして、描画の際に点を塗るか塗らないかを決めてくれます。ステンシルバッファをどうやって設定するのか?この章ではそういうステンシルバッファの基を見ていくことにします。 ① ステンシルバッファで出来る事 ステンシルバッファは描画の際に色を画面に表示するかしないかを決める「マスク」の役目を成します。これはポリゴンの前後関係を保持するZバッファよりももっと直接的な

  • その8 4分木空間分割を最適化する!

    ホーム<ゲームつくろー!<衝突判定編 2D衝突編 その8 4分木空間分割を最適化する!(理屈編) ゲーム空間に置いたオブジェクトを総当りで衝突判定する事ははっきりと非効率だと言えます。ちょっと計算してみましょう。60FPSのゲームの1フリップ約16.6ミリ秒の内衝突判定に10%の時間余裕(1.66ミリ秒)を与えられたとします。もし1000回の衝突判定に1ミリ秒かかるなら(1000回/msec)、判定回数は1660回以下に抑えないと間に合いません。総当りだとこれは58オブジェクトくらいで限界です。判定時間が200回/msecならオブジェクトはたった18個で限界。これはどう考えても節約が無いとゲームになりません。 オブジェクトの全ての位置が決まった時、自分とぶつかる可能性があるのは自分の周りのオブジェクトだけです。遠い所にある物は判定する必要すらありません。そこで「空間をある程度制限してその中

  • 1