しゅみぷろ

プログラミングとか

UnityTexturePaint

雨の日のカメラを作る

はじめに カメラのレンズに雨が付着した感を出してみました。 ささっと作ったのですが、ちょっといい感じになったので自分で驚いてます。 雨粒が付着した部分は背景の映り込みが歪むようになっています。 Unity Standerd Assetに含まれるガラスシェーダーを…

法線に影響される液垂れの表現

はじめに 液垂れ表現についてです。 最近Switchばっかやってて全然更新してなかったので久しぶりにネタ消化。 液垂れの基本的な部分は過去記事で。 esprog.hatenablog.com esprog.hatenablog.com 今回は法線マップに影響させる部分について軽くメモしていき…

UnityTexturePaint動画公開

UnityTexturePaintの簡単な紹介動画を公開しました。 最近ちょこちょこバグ取り修正を加え、FluidPaintのサンプルまでを含んだパッケージをAsset Storeで申請中です。 GitHubにはもう上がってるので、使ってみたい方は是非落としてみてください。 github.com

tex2Dでミップマップをサンプリングする際に端にノイズが出る

はじめに 画像のような感じで、ペイント時にブラシの端にノイズが乗ることがあります。 メインテクスチャとは別の、GenerateMipMapが設定されたテクスチャをShaderで収縮し表示すると起こるようです。 解決方法をとりあえずメモしておきます。 原因 理由は詳…

UnityTexturePaintがAssetStoreで公開されました

はじめに UnityTexturePaintがAsset Storeで公開されました! Asset Store : UnityTexturePaint 初めてのストア出品だったけど、特に滞りなく出すことができました。 Key Imageを描いてくださった@traitam様、お世話になりました。 また、ストア出展ですごく…

オブジェクト表面を垂れる液体表現 その2

はじめに ペイント後に垂らす処理 ロゴの表示演出(© UTJ/UCL) 複数色のテスト esprog.hatenablog.com オブジェクト表面を液体が垂れる表現をさせる試みの続きです。 前回の記事で基本的な部分を実装したのですが、複数の色をペイントすることが出来ないとい…

オブジェクト表面を垂れる液体表現 その1

はじめに 採用情報:仕事を読み解くキーワード24 - 23 もう一歩踏み込みたいより Splatoon動画の壁に塗ったインクが垂れるような表現がしたかったので作ってますというお話です。 まだまだ垂れる部分のアルゴリズムを試作中だったりしますが、ある程度形にな…

UnityTexturePaintのドキュメント公開

はじめに Asset Storeでの公開を夢見て、とりあえずドキュメント作らなきゃということでドキュメントを公開しました。 しゅみぷろ(このブログ)のサイドバーのリンクからUnityTexturePaintDocumentを辿ってもらえれば見れます。 Unity Texture Paint: Main Pa…

オブジェクトの一部のみ鏡面反射を行うようにする

はじめに オブジェクトにインクっぽいものを塗って、そのインク部分だけが反射するような表現がしたかったので作りました。 多用は出来ませんが、数カ所こういった特徴的な表現ができるとゲームがかなり尖ります(と思います。 UnityTexturePaintを利用してい…

アルファ値を弄るためだけのペイント処理

はじめに UnityTexturePaintでアルファ値のみのペイントが出来るようになりました。 大した追加ではないのですが、透明(半透明)なオブジェクトに使ってやると結構可能性が広がりそうです。 使い方は簡単で、ブラシのカラーブレンド設定でAlphaOnlyにするだけ…

歩いた場所の雪が凹むやつ作った

はじめに 雪が積もって高さがもとに戻っていくやつ書いた。Uniteでセツナの講演聞いててよかった。パーティクルの逆LODもやりたい。 pic.twitter.com/tGdu0RxZ41— Es (@Es_Program) October 26, 2016 こんな感じで、歩いた箇所の雪を凹ませるやつ作ってみま…

UnityTexturePaintでリアルタイムにオブジェクトを変形する

はじめに UnityTexturePaintは、リアルタイム(ゲーム実行中)にオブジェクトの持つテクスチャに対してペイントを行うアセットです。 UnityTexturePaintは以下で公開しています。 github.com 基本的には メインテクスチャへのペイント ノーマルマップへのペイ…

Splatoonの塗りみたいのを再現したい その8

はじめに esprog.hatenablog.com 前回はアンチエイリアスの実装やペイント時の色、法線情報の合成アルゴリズムを見直していきました。 実は他にもMeshColliderを不要にするために色々奮闘したりもしました(こちらで掲載しています)。 以前までの全ての関連記…

UnityTexturePaintで出来ること

はじめに esprog.hatenablog.com 上記記事でTexturePaintを公開しました。 公開当初より出来ることが多くなってきたためメモがてら機能を整理しておくのが今回のエントリです。 TexturePaintを使ってみたい場合は、GitHubから落としてきてUnityで開いてみて…

UV算出ロジックの穴

はじめに 特定のオブジェクト表面上の点(World-Space)の位置を中心に、ブラシで色を塗るためにUVを算出するロジックを作っています。 これができると何が嬉しいのかというと、UnityのOnCollision系イベントメソッドで衝突した点に対して、ペイント処理を施す…

戒めの暗黙的型変換

はじめに esprog.hatenablog.com esprog.hatenablog.com これらに掲載したコードで一部、誤っている箇所が判明したのでお詫びとご報告をするのが今回のエントリー(。 以前紹介してたコードでは、メッシュの持つローカルな頂点座標で$z=0$の場合にバグります(…

Splatoonの塗りみたいのを再現したい その7

はじめに 前回に引き続き進捗報告を。 実装内容は アンチエイリアス 色合成アルゴリズム選択機能 凹凸合成アルゴリズム選択機能 です。シェーダー周りをかなり整理したので今後色々と機能追加が捗りそう。 TexturePaintは以下で公開しています github.com ア…

Splatoonの塗りみたいのを再現したい その6

はじめに めっちゃまったりと進行してるインク処理についてめちゃくちゃ少しだけ進捗あったのでご報告。 といってもTexturePaintに何かあったとかではなく、インクを実際に描画する側のシェーダーでインクに関していい感じに反射するようにしましたよという…

UnityでUVを確認するエディタ拡張

はじめに 気が向いたのでパッと作ってみました。 UVがどう設定されているかを確認できます。 実装 コードはこんな感じ。 UnityでUVを確認するエディタ拡張

WorldSpaceからUV算出するののパフォーマンスチューニング

はじめに esprog.hatenablog.com 以前紹介した記事で、任意のワールド座標上の点からオブジェクト表面のUVを算出する手順を紹介しました。 このまま使ったのではあまりパフォーマンスがよくないため、今回はこれを高速化しよう、というお話。 以前は遅い原因…

TexturePaintをとりあえず公開します

TexturePaint公開 github.com 前々から公開するとか言っておきながら何もせずそのままだったのでとりあえず公開しておきます。 サボらなければドキュメント的なものとか、もっと色々な機能追加とかもやっていこうと思います。 バンプマッピングによる厚みの…

液体が滴るような表現をするために

はじめに 前に液体を付着させる表現を作ったので今度は付着した液体が垂れる表現をさせるためのアプローチについてメモ 実装はまだなので、アイデアだけ書き残しておきます。 夏休み終わってから実装始めます。 方法 以前作ったテクスチャペイントを応用しま…

「塗り」を表現する技術

はじめに Splatoonの塗りみたいのを再現したい その1 - しゅみぷろ Splatoonの塗りみたいのを再現したい その2 - しゅみぷろ Splatoonの塗りみたいのを再現したい その3 - しゅみぷろ Splatoonの塗りみたいのを再現したい その4 - しゅみぷろ Splatoonの…

Splatoonの塗りみたいのを再現したい その5

はじめに 塗り表現その5です。今回はとうとう、動的テクスチャペイントについて解説していきます。 サンプルはこちら(© UTJ/UCL)から遊べます Splatoonの塗りみたいのを再現したい その1 - しゅみぷろ Splatoonの塗りみたいのを再現したい その2 - しゅみ…

任意の点がモデル表面上に存在する場合にその位置のUVを算出する

はじめに esprog.hatenablog.com 上記の記事で行っているように、動的にUVを算出してその部分にエフェクトを掛ける場合などでは あるワールド座標上の点pがシーン内に配置されたモデルの表面上の点であるかどうか調べる モデル表面上の点である場合は、$p$の…

RaycastHitのTexcoordが常に0ベクトルを返すのですよ

はじめに RaycastHitのTexcoordが常に0ベクトルを返す問題に遭遇したのでメモとして残しておきます。 ちなみにUnity - スクリプトリファレンス: RaycastHit.textureCoordでも表記があるように、 コライダーがMeshColliderではなかった場合、 RaycastHitのTex…

Splatoonの塗りみたいのを再現したい その4

はじめに Splatoonの塗りみたいのを再現したい その1 - しゅみぷろ Splatoonの塗りみたいのを再現したい その2 - しゅみぷろ Splatoonの塗りみたいのを再現したい その3 - しゅみぷろ 細々と実装しつつとうとうその4まで来ました。 自作した動的テクスチ…

Splatoonの塗りみたいのを再現したい その3

はじめに esprog.hatenablog.com esprog.hatenablog.com 塗りを作るその3です。エフェクトを付けてベチャっと塗った感を出しました。 結構それらしくなってきた気がします。 エフェクト作る技術力が無かったのでこちらのアセットを使わせて頂きました。 実…

Splatoonの塗りみたいのを再現したい その2

はじめに esprog.hatenablog.com の続編、塗りの表現です。ちょっとだけ進化したので簡単にメモしておきます。 今回実装したのはブラシの法線マップをペイントに適用する処理です。法線マップについては 法線マップと接空間 - しゅみぷろ で紹介しています。…

法線マップと接空間

はじめに esprog.hatenablog.com 以前書いた記事で、テクスチャペイントするブラシに凹凸の表現を施したいと思い、法線マップについて勉強してみましたので纏めておきます。 以下のサイトを参考にさせていただきました。 wgld.org | WebGL: バンプマッピング…