テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Shader

【Unity】LWRPの2Dパイプラインで、ShaderGraphを使ってみる

今回はLWRPの2DRendererでShaderGraphを使用してみます。 2Dパイプライン Shader Graph 使ってみる 注意事項 2Dパイプライン コチラを参照 tsubakit1.hateblo.jp Shader Graph この2Dパイプラインでは、単純なLit/Unlitのシェーダーだけでなく2D用のマスター…

【Unity】Visual Effect Graph(VFX Graph)をLWRPで使用する

Visual Effect GraphがLWRPに対応したので、その設定方法と、対応方法についてです。 Visual Effect Graph Visual Effect GraphがLWRPに対応 LWRP対応の手順 おまけ:Legacy Render Pipelineの対応 感想 関連 Visual Effect Graph Visual Effect Graphはノー…

【Unity】AssetBundleからモデルをロードする際の最適化ポイント

ゲームでキャラクターをロードしたりする際、画面がカクつくというのは割とよく見る光景です。今回はその辺りの対処法についてメモしておきます。 Async Upload Pipeline(非同期アップロードパイプライン)の活用 シェーダーのウォーミングアップ シェーダ…

【Unity】ShaderGraphで頂点シェーダーを使用してみる

Unity 2018.2から使用できるShaderGraph 3.0から頂点シェーダーの機能が使用できるようになったので、使ってみました。 ShaderGraph3.0 とりあえず上下に移動するだけのシェーダーを作る 旗も作ってみる 感想 ShaderGraph3.0 これを動かすには、ShaderGraph…

【Unity】なんか影が出ない問題の対策

サンプルを色々といじっていた所、どうも影が出なくなる現象に当たったので、その原因と対策についてココに書いておきます。 影が出ない ”影”を無効化する設定 光が影を出していない 物質が光を遮らない SceneViewの設定 それでも駄目なら 関連 影が出ない …

「楽しい!Unityシェーダー お絵描き入門! 」

見て楽しい、覚えるに便利という、控えめに言って神なスライドが公開されていました。 シェーダーお絵描き入門勉強会の資料を公開しました #spzcolabhttps://t.co/kwRANl48uC — setchi (@setchi) 2018年4月11日 内容は板ポリにシェーダーを割り当ててちょっ…

【Unity】複数パーツで構成されたSpriteを半透明にしても違和感をなくす方法

今回は最近のスケルタルアニメーションでよく見られるような、複数パーツで構成されたSpriteを、違和感なく半透明にするアプローチについてです。 若干限定的な所があるので、そのあたりは自分で何とかする必要があります。 2Dのスケルタルアニメーション ス…

【Unity】アプリ内課金やAssetBundle、ランキングの例を含むサンプルゲーム、Endless Runner Sample Game

https://www.assetstore.unity3d.com/#!/content/87901 少し前に、Unity公式の完成プロジェクト「Endless Runner Sample Game」が公開されてました。 Endless Runner Sample Gameといふゲーム AssetBundleでキャラクター・ステージの切替 Shaderで色々な画面…

【Unity】物理シェーダーベースのパーティクル向けシェーダー、Standard Particle Shader

物理ベースシェーダー的なパーティクルエフェクトが作られたみたいです。 Standard Particle Shader Standard Particle Shaderは、PBRベースなパーティクルシェーダーみたいです。 通常のStandard Shaderよりライティング周りを簡略化した代わりにパフォーマ…

【Unity】Unity 5.5以降のRender Pathの設定

Unity 5.5でRender Path(ForwardやDeferredを設定してたアレ)の表示がPlayer Settingsから別の場所へ移動しました。 新しいRender Pathの設定場所 Standard Shader Qualityの設定も 関連 新しいRender Pathの設定場所 新しい場所は、Project Settings > Gr…

【Unity】パーティクルにモデルを使いたい

今回はパーティクルにモデルを使用する方法と、モデルを使用した際「色」を設定出来るシェーダーについてです。 パーティクルをモデルで表現する パーティクルに色を設定したい パーティクルの色を設定するには パーティクルにメッシュを使用する問題点 Unit…

【Unity】StandardShaderをAssetbundleに格納した際にNormalやAlphaが動作しない問題の回避方法

AssetBundleにシェーダーを格納し常にロードしておく事で、シェーダーのコンパイルやGPU転送コスト、それにシェーダーのメモリ消費を回避出来ます。特にシェーダーのコンパイル・GPU転送等は地味に馬鹿にならないコストを要求するので、出来れば積極的に排除…

【Unity】マテリアルのInspector表示を拡張するエディタ拡張

Materialの、正確にはShaderのInspectorを拡張するエディタ拡張についてです。下のように、マテリアルの設定について情報を追加したり、入力内容を整理したりすることが可能になります。 MaterialのInspectorを変更するテスト pic.twitter.com/sppjoZ3tjx — …

【Unity】ステンシルバッファを使った2D面白表現を色々と試す

ステンシルバッファをUnityで利用した表現で、面白かった2D的な表現について書いてみようと思います。 ステンシルバッファとは? ステンシルバッファで色々と試す 壁の向こうにいるキャラクターのシルエットを表現 2Dマスク ImageEffectがかからないスプラ…

【Unity】二つのカメラをクロスフェードで切り替える

二つのカメラをクロスフェードして切り替えます。 概要 カメラのフェード実装方法 フェード実装時の注意点 絵が上下反転する ScreenOverlayで代用 uGUIとの連携 参考 概要 やり方はなんてことは無い、ImageEffectとRenderTextureの合わせ技です。もう一つの…

【Unity】Unityでトランジションを使用した綺麗な場面転換(uGUI対応版)

以前に紹介した「場面転換」をよりスムーズな感じで行う処理ですが、uGUIに対応させるついでにUI単位で削除出来るようにしました。 UnityでuGUIのトランジション。パターンはマスク画像(白黒画像)を使用。トランジションするUIの下にあるUIも一緒に消える …

【Unity】uGUIのシェーダーを改造してシェーダーを練習…のススメ

目次 目次 シェーダーの用意 シェーダーのカスタマイズの準備 シェーダーの改造(色を変える) パラメータをシェーダーの外から設定する その他 関連 シェーダーの用意 まずはuGUI用のシェーダーを用意します。 UnityのビルトインシェーダーはUnityのダウン…

【Unity】影だけ映る地面を用意し、かつ地面の下が見えないようにする

ARを試す際、カメラの映す背景を使いたいけど影も表示したい…そんな場合があります。というか、近々これが必要になりそうな気がするので作りました。 ついでに地面の奥、つまり影を描画している地形の下にあるモデルが見えてしまわないようにしました。 やっ…

【Unity】モデルを透明にする (2)

今回はよりアニメ寄りというか、正しくないが見た目の良い透明の表現について色々とやっていきます。 前回のエントリー(単純に透明マテリアルを設定する方法)はこちら。 tsubakit1.hateblo.jp 目次 目次 透明なオブジェクト Depthバッファへの書き込み Dep…

【Unity】パーティクルで紙ふぶきを散らす

紙ふぶきを散らすパーティクルのメモです。 手順 HierarchyビューのCreate>Particleでパーティクルを作成します。名前はParticleとでもしておきます。 ProjectビューのCreate>Materialでマテリアルを作成します。名前はpaperparticle パーティクルの形状を変…

【Unity】モデルより奥にあるスプライトやUIをモデルより手前に表示させる

モデルよりUIやスプライトの方を手前に配置したい時があります。例えば、ダメージエフェクトであったり、その他諸々であったり。 これを実現するもっともシンプルな方法は、カメラをもう一台用意して追記する事です。Layerを分ける必要が出ますが、後から追…

【Unity】指定のシェーダーを使用しているマテリアルの一覧を取得/選択するエディタ拡張

需要があるかは微妙でしたが、あるみたいなのでココにも置いておきます。 PC版とモバイル版・あとはコンソール版でシェーダーを使い分けたい時に使えるかもしれないエディタ拡張です。 使い方は、シェーダーを選択した状態で右クリック→Find→ shader <- mate…

Unity 5 Graphics Smörgåsbord(Unity5 グラフィックス クッキング)

GDCで発表された資料が公開されていました。 以下のサイトからダウンロード出来ます。 Talks and Presentations - Aras' websitearas-p.info 内容 大雑把にこんな感じです。 PBS(スタンダードシェーダー)についての概要 Standard Shaderにおける「透明」の…

スタンダードシェーダー楽しい

Unity5に物理ベースレンダリング(通称PBL)の機能が追加されます。 その辺りはStandard Shaderで設定出来るようになっています。 Unity - The Standard Shader Unity - The Standard Shader Unite2014: Mastering Physically Based Shading in Unity 5 from…

Unityのシェーダーを実行時モバイル向けに変更して描画パフォーマンスを稼ぐ

今回もSample Assetsについて。 新 Standard Assets候補、Sample Assets (beta) - テラシュールブログ 新 Standard Assets候補、Sample Assets (beta) - テラシュールブログ シェーダーを差し替えるAutoMobileShaderSwitch Sample Assetsにシェーダーを一括…

Unityで実行時にマテリアルの差替え/追加(ロックオンエッジ的な表現)

ゲームを作っている内に、特定のオブジェクトのシェーダーを差替えたくなるケースが有ります。例えば、対象をロックオン・選択してる的な表現したり、今まで光っていなかった物を光らせたり等のケースです。 これについては、やり方が色々とあります。 ある…

UnityのuGUIのUIにシェーダーを適応する

uGUIのUIは今までのUIと違い、独自のシェーダーを適応することが出来ます。例えば、下のように「y軸で縞模様を作る」のようなエフェクトを付与・動的に変更する事が出来ます。 やり方は単純です。 まずUnity 4.6のダウンロードページからBuilt-in Shaders fo…

AssetBundleとシェーダー、ロードが遅い場合の対策

またまた素晴らしい資料が公開されてた。アセットバンドルとシェーダー内容はAssetBundleを使用した際に非常に大きなローディングがかかる場合の原因と対策。大雑把に言えばこんな感じ。シェーダーのビルドはランタイム。しかも重い。 (シェーダーのビルド…

テクスチャの暗号化

テクスチャの暗号化について、面白いアプローチがあったので紹介。これは、適当なテクスチャに難読化処理をかけたもの。左がエンコードした画像、右がデコードした画像になる。単純にカードを隠したい場合にはそれ程有効ではないが、カードの絵柄を隠したい…