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

  • その3 パーリンノイズとフラクタル

    ホーム < ゲームつくろー! < アルゴリズム編 その3 パーリンノイズとフラクタル ~ フラクタブルな地形を作る基盤 ~ ① ノイズのお話 オープンワールドを採用しているゲームでは壮大な地形が用意されています。山あり川あり海ありと、地球上のどこかに当に存在しているかのようなその仮想世界は当に美しく、ゲームを忘れただひたすらに駆け回りたくなってしまいます。そういう地形の中にはもちろん開発者が丹念に作り上げているものもありますが、例えばマインクラフトのワールドなどは開発者が最初から地形を用意しているわけではなく、完全に自動生成されています。マイクラをやった事のある人なら、その地形がとてもプログラムが作り上げ得たとは思えない程自然っぽくてパターンぽい所が見受けられず変化に富んでいる事を知っているはずです: MineCraftの地形。矩形だけども美しい(^-^) 上のスクリーンショットのよう

    その3 パーリンノイズとフラクタル
    crist18
    crist18 2019/08/09
  • その18 ステンシルバッファって何?

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

    crist18
    crist18 2017/10/10
  • その1 Isnpectorが変わる!

    ホーム < ゲームつくろー! < Unity/カスタムエディタ編 カスタムエディタ編 その1 Inspectorが変わる! UnityのGameObjectにスクリプトをくっつけると、そのGameObjectが機能を持つようになります。そして、その機能を調節するパラメータがInspector上に表示されます。例えば、ワールドに球を沢山発生させるジェネレータを作るとしましょう。ObjectGeneratorというスクリプトに「freq」という発生頻度を調節するメンバ変数をpublicで作り、このスクリプトをGameObjectにくっつけると、Inspectorはこう表示されます: まぁ、もちろんこのFreqに何らかの値を与えればいいわけですが、このままだとどんな値でも入ってしまいます。頻度なのにマイナス値も入れられますし、とんでもなく大きな値も可能です。例えばこの数値が1秒間あたりに出現する

    crist18
    crist18 2015/09/17
    Unity エディタ拡張の基本
  • その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やスクリプトで与えます。マ

    crist18
    crist18 2015/03/25
    ゲームつくろー!さん 神か。
  • その2 トリガー駆動のタイミングでSEを鳴らす

    ホーム < ゲームつくろー! < Unity/サウンド編 サウンド編 その2 トリガー駆動のタイミングでSEを鳴らす 前章でUnityでのサウンド再生の根っこを見てきました。Audio ClipがくっついたAudio Soundを世界にポイっと投げれば勝手に音が鳴るんですから簡単です。でも、ゲームで実際に使うにはもう少し考える事があります。 SEは何らかのきっかけで初めて音が鳴ります。例えばマリオがジャンプしたら「ぴゅい~ん」とジャンプ音がしますよね。「ジャンプをしたら」というのが「きっかけ」で、そういうきっかけの事を「トリガー」と言います。お手元のゲームを観察すると分かると思いますが、SEはトリガー駆動が殆どです。 ではUnityでトリガー駆動なSEを再生するにはどうしたら良いか?試行錯誤してみます。 ① まずはトリガーを作ろう まずはトリガーそのものを作ってみましょう。実際はあらゆるト

    crist18
    crist18 2014/12/17
    Unity SE
  • その1 Unityのサウンドの根っこ

    ホーム < ゲームつくろー! < Unity/サウンド編 サウンド編 その1 Unityのサウンドの根っこ ゲーム制作をしているといつも「音が入ると途端にゲームらしくになる!」と感動します。音はゲームを印象付ける極めて大切な要素だと再認識させられる瞬間です。 そんな大切な要素「音」、Unityは簡単に鳴らす事が出来る仕組みが整っています。簡単なのですが、それ以上の所が無いのもまたUnity。そこで編ではゲームで使えるサウンドシステムを考えてみます。 何はともあれ、Unityでどうやって音を鳴らすかをざっと見て行く事にしましょう。 ① まずは音を用意 音の素となるのはもちろんサウンドファイルです。UnityがサポートしているサウンドファイルのフォーマットはOggVorbisと非圧縮のwavです。mp3などもリソースとしてインポートできますが、時間かかるは劣化するはなので、なるべく対象フォー

    crist18
    crist18 2014/12/17
    AudioSource, AudioListener
  • その1 UnityにおけるShaderとは?

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

    crist18
    crist18 2014/11/18
    シェーダの種類
  • その1 Unityのパーティクル「Shuriken」

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

    crist18
    crist18 2014/09/17
    手裏剣
  • Unity編

    ホーム < ゲームつくろー! UnityUnityゲームエンジンの一つで世界中で爆発的人気を誇っています。それはUnityが非常に使いやすい事、そして多くが無料版でも作れてしまうという間口の広さにもあるかなと思います。Unityは視覚的に作り込みができるため、3Dのゲームでのキャラクタ姿勢制御やゲームそのものの作りを学ぶのにも最適なツールのように思います。 如何せん、ゲームエンジンは一にも二にもその「使い方」を学ぶ事が必要不可欠です。とは言え、何せ人気のあるエンジンですから世の中に使い方がゴロゴロと転がっています。基的な所はそういうサイトの情報に任せます。ではマルペケのUnity編では何を紹介するのか?それは「Unityのニッチな所」についてです。 ちなみに、一部Pro版が含まれる事もあります。またUnityのバージョンアップに伴い記事通りに行かなくなる事も考えられます。その時は…

    crist18
    crist18 2014/09/13
    ゲームつくろー!さんがUnityの記事も書いてる!
  • その3 コルーチンで状態遷移をLuaで制御

    ホーム < ゲームつくろー! < Lua組み込み編 その3 コルーチンで状態遷移をLuaで制御 Luaが持つ素晴らしい機能の一つに「コルーチン(coroutine)」があります。コルーチンは「関数の途中で戻ってきて、続きからまた実行出来る」という仕組みです。 こう聞いても「ん?」とハテナが付くと思います。私もそうでした。C言語にはコルーチンの機能がありません。なので、C言語に慣れている人だとピンと来ないんですよね。 例えば、キャラクタの位置を連続的に動かす事を考えてみます。最初10フレームは右へ1ステップずつ動き、次の5フレームで上へ、さらに次の7フレームで左下に移動するとしましょう。これをC言語でベタに書くとこんな感じになります: int state = STEP_1; int curFrame = 0; int step() { switch(state) { // 右へ10フレーム1

    crist18
    crist18 2014/09/08
    “関数の途中で戻ってきて、続きからまた実行出来る”
  • デバッグ技術編

    ホーム < ゲームつくろー! < デバッグ技術編 デバッグ技術編 「作った関数がうまく動かないんですが…」と質問される事があります。これには「え!?」となるんです。原因部分が関数内という極々狭い範囲にある事がわかっている幸運な状況ならば、後はそこを動かしてチェックすれば良いじゃないかと思うわけです。しかし、よくよく話を聞いてみると、どうもその「チェックの仕方」、すなわち「デバッグ方法」が十分ではないようなんです。なるほど、原因を追究する技術がわからなければ、作ったプログラムが正しいかどうか不安になるのは当然です。 複雑な仕組みで動くゲームプログラムの製作中にバグが発生するのは当たり前です。これをどう追求してどう取り除くか?知っている人にとっては当たり前。でも知らない人にとっては目から鱗のデバッグ技術はたくさんあります。1つでも多く知っていると特になるデバッグ技術。行ってみましょう~。 (尚

    crist18
    crist18 2014/09/03
    デバッグ
  • デザインパターン習得編

    ホーム < ゲームつくろー! デザインパターン習得編 コンセプト デザインパターン事始め 生成に関するパターン Abstract Factory 一塊のオブジェクト群を沢山の種類用意する Builder 同じ生成過程で完成する色々なオブジェクト Factrory Method 子オブジェクトを親クラスの関数で作る Prototype 原型を用意して、後はコピーコピーコピー Singleton 存在するオブジェクトは1つだけ 構造に関するパターン Adapter 変換コネクタパターンです Bridge インターフェイスと実装の分離入れ替え自由自在 Composite 入れ子の入れ子の入れ子の入れ子の・・・ Decorator 知らずに着飾るオブジェクト Facade ユーザに優しいシステム操作人 Flyweight ゲーム製作でおなじみのオブジェクト使い回し法 Proxy オブジェクトへのア

    crist18
    crist18 2014/05/17
    ゲームプログラマでデザインパターン学びたい段階に差し掛かってる人にオススメ
  • 1