【Unity】エディタ拡張で「Manager」的なものに使えるScriptableSingleton

Unityのエディタ拡張で「Manager」的なクラスを作るときに使えるScriptableSingletonという機能についてまとめます。

  • エディタ拡張で「Manager」的なクラス?
  • 再生したりスクリプトコンパイルしたりしても値を保持しておけるインスタンスを作る
  • Unityを再起動しても消えないようにする
    • 永続化ファイルの置き場
  • 参考
続きを読む

被写界深度ポストエフェクト実装の前提知識 - カメラレンズとボケの仕組み

被写界深度のポストエフェクトを実装する際の前提知識として、レンズとボケの仕組みについてまとめます。

続きを読む

チャンクを直接読み込んでPNG画像のファイルフォーマットを理解する

PNG画像のデータ構造を簡単にまとめて、Unityを使ってチャンクの読み込みを行う方法についてまとめます。

  • PNGファイルの構成
  • チャンクを読み込む
  • チャンクを書き換える
  • 参考
続きを読む

【Unity】【Rider】RiderでT4テキストテンプレートを使う

Unity x RiderでT4テンプレートを使う方法をまとめました。

  • T4テンプレートの基本的な使い方はこちら
  • Visual Studioとの相性の悪さ~RiderのT4テンプレートサポート
  • C# Project Generationにttを加える
  • テンプレートファイルを作る
  • テキストを生成する
  • 実行時テンプレートでコンパイルエラー?
  • 関連
  • 参考
続きを読む

【Visual Studio】【.NET】T4テキストテンプレートで文字列(ソースコード)を自動生成する方法まとめ

T4テキストテンプレートの基本的な使い方をまとめました。

  • T4テキストテンプレート?
  • シンタックスハイライトとコード補間を有効にする
  • テンプレートからコードを生成する
    • デザイン時テキストテンプレートと実行時テキストテンプレート
    • デザイン時テンプレートを生成する
    • 実行時テキストテンプレートを生成する
  • 基本的な使い方
    • 言語・拡張子・文字コードを指定する
    • 文字列を書く
    • 制御構文や関数などを使う - 標準コントロールブロック
    • 式コントロールブロックを使った書き方
    • テンプレート内で使う機能を定義する - クラス機能コントロールブロック
  • 知っておくべき使い方
    • アセンブリを読み込む - assemblyディレクティブ
    • 名前空間のusing的なことをする - importディレクティブ
    • 実行時テンプレートからテキストを作る際に入力値を与える
    • ファイルからテンプレート用テキストをインクルード - includeディレクティブ
    • エラーや警告を出す
  • 参考
続きを読む

【Unity】【シェーダ】プロシージャルな髪の異方性ハイライト(天使の輪)表現を作る方法

Unityのシェーダでプロシージャルに髪のハイライトを作る方法です。

  • やりたいこと
  • binormalを使ってハイライトを作る
  • jitterテクスチャを使う
  • 結果
  • 関連
続きを読む