タグ

ブックマーク / nn-hokuson.hatenablog.com (10)

  • 【Unityシェーダ】Shader Graph超入門 - おもちゃラボ

    Unity2018からシェーダをノードベースで作れる「Shader Graph」という機能が提供されています(まだPreviewですが)これまでは、ノードベースでシェーダを開発しようとするとShader Forgeとかの有料アセットを使う必要がありましたが、これからは「Shader Graph」に一化されそうですね。 ここでは、2018年5月の段階で、とりあえずShader Graphを触ってみる、というところまで解説したいと思います。目次は次のとおりです。 プロジェクトを作成する Shader Graphをインストールする Shaderとマテリアルを作成する Shader Graphを使ってテクスチャブレンドする ノードを配置する ノードを接続する もう少し便利にする インスペクタからシェーダの値を変えられるようにする 結果確認 プロジェクトを作成する 「Shader Graph」はU

    【Unityシェーダ】Shader Graph超入門 - おもちゃラボ
    cignoir
    cignoir 2018/05/09
  • 7日間でマスターするUnityシェーダ入門 - おもちゃラボ

    この記事は、これまでにおもちゃラボで紹介してきたUnityのシェーダ入門記事40のまとめです。 1日に5記事読めば7日間で読み切れるはず...今のところ(笑) シェーダって時々聞くけど難しそう・・・というイメージをお持ちの方も多いと思います。でも、Unityを使えばかなりのメンドウな部分はUnityにおまかせできちゃうので、当に必要な部分のシェーダを書くだけでイメージ通りの絵作りができるようになります。 使用するシェーダ Unityで使えるシェーダにはsurfaceシェーダと頂点/フラグメントシェーダの2種類があります。ここではこの2つのシェーダの他、ライティング・ポストエフェクトの内容も解説しています。それぞれの各記事へのリンクを下にまとめておきます。また、Unity2018からはノードベースでシェーダを作成できるShader Graphという機能も提供されるようになりました。これか

    7日間でマスターするUnityシェーダ入門 - おもちゃラボ
    cignoir
    cignoir 2018/02/15
  • 【Unity】テクスチャ1枚で立体的な雲を作る - おもちゃラボ

    雲と言ってもゲームで使う雲には様々な種類の雲があります。地上から見上げるような雲や、コンバットゲームで使われるような平面上に描画される雲、360度どこからでも立体的に見える雲などがあります。 Unityでは雲の表現にはSKyboxがよく使われるようですが、ここでは360度どこから見ても立体的に見える雲(Volumetric Cloudを作ってみましょう。 立体的な雲(Volumetric Cloud)の作り方 ボリュメトリッククラウドって・・・名前だけは難しそうですが、作るのは全然簡単です(笑)まずは一枚雲のテクスチャを用意します。 見にくいので背景を黒色にしていますけど、実際は透明です。 これを立体的な雲に仕立て上げるには・・・雲のテクスチャをパーティクルで放出するだけです。パーティクルは基的にBillboardで表示されるので、どこからみても雲に見えるというわけです。 ビルボードの説

    【Unity】テクスチャ1枚で立体的な雲を作る - おもちゃラボ
    cignoir
    cignoir 2017/08/30
  • 【Unity】水面の表現を無料で簡単に作る - おもちゃラボ

    池や海などの水面を作ろうとすると、シェーダを書いたり波動方程式を計算したり大変だ・・・!というイメージがありますが、Unityを使えば超簡単に無料で水面を作ることができます 地形を作る まずは雰囲気を出すため(笑)地形を作っていきます。今回はAsset Storeで配布されている「Stones and buried treasure」というローポリのアセットを使わさせていただきました。 いい感じに岩や木、石を組み合わせて池を作ります。箱庭みたいで楽しい・・・ このままでは、まだまだ池の雰囲気のかけらもありませんね。いま作った池に水を張っていきましょう〜。 水面のアセットをインポートする 池ができたところで水面のアセットをインポートします。水面のアセットはStandard AssetのEnvironmentに含まれています。 ツールバーからAsset→Import Package→Envir

    【Unity】水面の表現を無料で簡単に作る - おもちゃラボ
    cignoir
    cignoir 2017/08/03
  • 【Unityシェーダ入門】オブジェクトが重なった部分をくり抜く - おもちゃラボ

    特定のオブジェクトと重なった部分を透明にくり抜くシェーダを紹介します。このシェーダを使えば、次のように、好きな形で別のオブジェクトをくり抜くことができます。 オブジェクトの形にくり抜くためには 今回のシェーダの原理は非常に簡単です。まずは抜きたい形のオブジェクトをA、抜かれる側のオブジェクトをBとしておきましょう。 まずは、オブジェクトAをデプスバッファにだけ書き込み、カラーバッファには書き込まないようにします。これにより、画面には表示されないけれどもデプスバッファには書き込まれた状態になります。 続いて、オブジェクトBを通常通り描画します。デプスバッファにはすでにオブジェクトAの情報が書き込まれているため、この部分だけは描画されないことになります。 シェーダの作成 まずはシーンビューに抜くオブジェクト(球)と、抜かれるオブジェクト(立方体)を配置しておきましょう。 続いてシェーダとマテリ

    【Unityシェーダ入門】オブジェクトが重なった部分をくり抜く - おもちゃラボ
    cignoir
    cignoir 2017/06/02
  • 【Unity】バネの動きを実現する3つの方法 - おもちゃラボ

    Unityでバネのアニメーションを作る場合、大きく分けて3つの方法があります。 Spring Joint 2Dを使う方法 Animationを使う方法 バネの挙動をスクリプトで書く方法 バネの挙動をシミューレートできるSpring2DコンポーネントはPhysicsの物理挙動に従って計算するため、リアルな挙動にしたい場合はこれを使うと良いでしょう。ちょっとバネバネアニメーションを付けたい、という場合には大げさで取り回しが悪かったりします・・・ また、Animationを自分で組み立てる方法もあります。この場合、バネの強度や移動方向など、値が決め打ちになってしまうので、挙動を変えたい場合にはすこし手間が大きい方法です。 最後に、もっとも柔軟性の高い方法として、バネの挙動をスクリプトでシミュレートする方法があります。スクリプトでバネの動きを実現するのは意外と簡単なので、オススメの方法です。 では

    【Unity】バネの動きを実現する3つの方法 - おもちゃラボ
    cignoir
    cignoir 2017/05/24
  • 【Unityシェーダ入門】シェーダで旗や水面をなびかせる - おもちゃラボ

    ゲーム中で、旗や水面は静止していることはあまりなく、風にあおられてなびいていることが多いですね。 リアルになびかせようとすると、シミュレーションやボーンアニメーションをする必要があります。この記事ではUnityの頂点シェーダを使ってお手軽に旗や波などを動かす方法を紹介したいと思います。 今回の記事の内容は次のとおりです。 旗や水面をなびかせるアルゴリズム 3Dモデルの配置とシェーダファイルの作成 シェーダプログラム 実行結果 旗や水面をなびかせるアルゴリズム 旗をなびかせるためには、平面オブジェクトの頂点を移動させることで実現します。3Dで考えると難しいので、2Dで考えてみましょう。 平面オブジェクトを横から見ると次のように一直線に頂点が並んでいます。 この頂点を波の形に移動させることで、平面オブジェクトがなびいているように見せかけることができます。 全体的には波打っているように見えますが

    【Unityシェーダ入門】シェーダで旗や水面をなびかせる - おもちゃラボ
    cignoir
    cignoir 2017/04/26
  • 【Unityシェーダ入門】シェーダを使って世界に雪を降らせよう - おもちゃラボ

    季節はどんどん夏に向かっていっていますが・・・今回はシェーダを使ってUnityで雪を降らせる方法を紹介したいと思います。 雪を積もらせるアルゴリズム 深さのある雪を積もらせる場合は色々と計算が大変ですが、表面に薄っすらと積もらせるだけであれば、テクスチャの色を変えるだけでそれっぽく見せることができます。 こんな、新緑(?)の風景が・・・ こうなります! ただ、テクスチャの色を変えると言っても、テクスチャを真っ白にするだけでは画面一面真っ白になってしまうだけです。 屋根の裏側や葉っぱの裏側には雪を積もらせないようにするには、オブジェクトの法線と雪が降ってくるベクトル(大体上向き)の内積を取ります。 この内積の値が1に近ければば面が上を向いていると判断してテクスチャの色を白色にします。そうでない部分は面が横や下方向を向いているので、オリジナルのテクスチャ色を使用します。 雪のシェーダプログラム

    【Unityシェーダ入門】シェーダを使って世界に雪を降らせよう - おもちゃラボ
    cignoir
    cignoir 2017/04/26
  • 【Unity】Unity5.6で綺麗な画面を作るための5つの手順 - おもちゃラボ

    Unityでキレイな画作りをしたいときの、基的な設定手順を5つに分けて紹介します。Cinematic Filterやカラースペースの変更は処理が重いので、スマートフォン向けではないかもしれません。 完成までのステップは次のようになります。 手順1 オブジェクトを配置する 手順2 カラースペースをリニアにする 手順3 スカイボックスを設定する 手順4 アンビエントオクルージョンを表現する 手順5 Cinematic Image Effectを使う 手順1 オブジェクトを配置する シーンビューにオブジェクトを配置してから、マテリアルを作成&設定します。マテリアルの設定は、基的にMetalicとSmoothnessで調整します。 このままでは、「ただ配置した感」が拭えませんね・・・ 上の金色とピンクゴールドの玉の設定は次のようにしてみました。 金属っぽい見た目にしたい場合は次のページが参考に

    【Unity】Unity5.6で綺麗な画面を作るための5つの手順 - おもちゃラボ
    cignoir
    cignoir 2017/04/11
  • 【Unity入門】60分でつくるシューティングゲーム 全6回 - おもちゃラボ

    会社でUnityを使うことになったんだけれども「何から手を付けてよいかわからない」とか「Unityの基操作は分かったけど、自分のゲームに応用できない」とかいう方は多いと思います。 私もUnityを触り始めたときは、あまりに機能が多くて何から始めたら良いのか・・・さっぱり分かりませんでした。 そこで、初心者の方にも理解しやすいように、ここでは簡単なシューティングゲームを作りをとおして、Unityを使ったゲーム作りの方法を紹介していこうと思います。 どんなゲームを作るのかというと・・・こんな感じ。 上から降ってくる隕石を、ロケットを動かしながら破壊するというよくあるサンプルです。ですが、Physicsや当たり判定、UI、エフェクトなどゲーム作りに必要な一通りの要素は入っているので、Unity入門にはちょうど良いかと思います。 記事は第1回〜第6回まであり、次のような流れになっています。 第1

    【Unity入門】60分でつくるシューティングゲーム 全6回 - おもちゃラボ
    cignoir
    cignoir 2017/03/14
  • 1