しゅみぷろ

プログラミングとか

Google Tangoで遊んでみた

はじめに 買っちゃった・・・ ということで、Google Tangoで遊んでみました。 とりあえずは Google Tango Unity Support Library Tutorial 上記リンクから色々読んだり、サンプルのプロジェクト動かしてみたりすると割とスッと使えるようになります。 InkPai…

Tessellationを用いたなんちゃってスカルプト

はじめに 何かが衝突した影響でモノが変形したり…といった表現は結構巷にあふれていて、その手法も様々です。 一番シンプルに思いつく実装方法といえば、衝突の際に実際にジオメトリを変形させることでしょうか? 今回は実際の頂点データを弄らず、GPUで頂点…

Why is it painted in multiple places?

Introduction esprog.hatenablog.com This is an answer to questions about InkPainter. Why is it painted in multiple places? You may encounter this situation while using InkPainter. Is this a bug? Please be relieved, it is not a bug but a spe…

What is "Property" of InkCanvas??

Introduction esprog.hatenablog.com This is an answer to questions about InkPainter. What is “property” ? InkCanvas which is a component of InkPainter. What should we put in this “Property”? … For this “property” input, the texture variable…

InkPainterがリリースされました

おしらせ InkPainterを正式にGitHubおよびAssetStoreで公開しました。 GitHub - EsProgram/InkPainter: Texture-Paint on Unity. Asset Store もともとUnityTexturePaintとして販売し、国内外様々な方から色々な意見、レビューをいただいていたのですが、あ…

雨の日のカメラを作る

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

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

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

シンプルなMatcapシェーダーを書いてみる

はじめに UnityでMatcapシェーダー書いたのでメモ。 Matcapシェーダーは考え方とか実装がめちゃくちゃ簡単なので、シェーダーの勉強に良さそうです。 Matcapの特徴はとにかく軽量で良い感じに写実的な表現が行える上、実装が簡単なことだと思います。 Matcap…

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 こんな感じで、歩いた箇所の雪を凹ませるやつ作ってみま…

ハイトマップから法線情報の生成

はじめに esprog.hatenablog.com 以前の記事で、ハイトマップを参照して動的に変形するオブジェクトのサンプルを作りました。 サンプルでは、シェーディング計算が適当でしたが、今回はちゃんとシェーディングを行うために必要になる法線情報を計算してみま…

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

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

テッセレーション基礎

はじめに UnityでTessellationについて勉強したので基本的なところを纏めておきます。 Tessellationとは GPUを利用して頂点の分割を行う技術です。 D3D10でのレンダリングパイプラインは MSDNより引用 となっていました。 大抵の場合はVertex-ShaderとPixel-…

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

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

UnityTexturePaintで出来ること

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

C# Interactive 便利に使おう -その2 UnityAssemblyの参照-

はじめに esprog.hatenablog.com 以前のC# Interactive記事では、DLLの参照について書きました。 今回はUnity + Visual Studioで開発を進めている方向けに、Unityに特化したDLL参照について書き残します。 できること C# Interactiveで、現在Unity Editor上…

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

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

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

ボクセルゲーム制作

はじめに 完全個人でのゲーム企画を考えています。 個人でゲーム制作やってく上で問題になるのがリソース。 作ってくれる人なんていないので自分で作らなきゃです。 2Dゲームならばイラストさえなんとかなればなんとかなるのですが、3Dゲーム作りたい・・・ …

リングセレクトシステムとモーフォング

はじめに 今回はリングセレクトシステム(と呼んでいきます。正式名称とかあるのかは知らないです。)とモーフィングについて書いてみます。 Unityで実装しています。 リングセレクトシステムはアイコンがくるくる回って、その中の1つを選択するみたいなアレ…

C# Interactive 便利に使おう -その1 DLLの参照-

はじめに esprog.hatenablog.com 前回の記事ではC# Interactiveをちょちょいと使ってみました。 REPLめちゃくちゃ便利で重宝してます。 ということで今回はC# Interactiveを便利に使うための個人的Tipsの1つ「複数のDLLの参照を容易にする」を紹介します。 D…

C# Interactive

はじめに C# Interactive、便利ですよね。 普段からVSで開発しているのでお世話になってます。 今回別にとりあえず何か記事書いとかなきゃってことで書いてるので適当です。 C# Interactive Roslynの機能で、REPL(Read-Eval-Print Loop)と呼ばれているらし…

「塗り」を表現する技術

はじめに 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: バンプマッピング…

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

はじめに Unity WebGL Player | スプラトゥーンもどきをやってSplatoonやりたい欲が高まってまいりました。 Splatoonしたいけどお金なくてWiiU買えない貧乏苦学生なので、「無ければ作ろう!」という精神でSplatoonの塗りをコンセプトに取り入れたゲームを作…

クック・トランスの金属反射モデル

はじめに この記事は esprog.hatenablog.com の延長です。 なるべくパラメーターを渡す部分等はスクリプトから渡していますが、Propertiesから設定した方がいい部分もあります。 esprog.hatenablog.com 上記の記事で金属の反射モデルを紹介しています。この…

行列の性質について

はじめに esprog.hatenablog.com こちらの記事で、頂点の法線をModelSpaceからViewSpaceに変換する際に 法線の拡大縮小変換は、この変換の逆数をとる必要があるので $$A=R_{V} S_{M} ~ ^{-1} R_{M}$$ となります。回転行列の転置行列は自身の逆行列と等しく…

Unityでなるべくシェーディング処理を自作してみる

はじめに 以前記事にした esprog.hatenablog.com esprog.hatenablog.com こちらの知識を使って、なるべくUnityのライトやShaderLibrary(.cginc)を使わずシェーディングを行ってみました。 Unityのグラフィックスを勉強するには結構いい題材だったかなと思い…

シェーディングまとめ

はじめに esprog.hatenablog.com 引き続き、CGの基礎的なところをおさらいしていこうと思います。 Forward Renderingについてまとめてみた - しゅみぷろ の内容と関連がありますので参考までに。 今回はこちらの本を参考に、シェーディングについてまとめま…

コンピューターグラフィックス基礎のメモ

はじめに 基礎から勉強し直しています(というより基礎すらままならない状態なので...)。 ということで今回は座標系、変換行列、ビューイングパイプラインについて簡単にですがメモしておこうと思います。 変換行列や各座標系に関してはDirectXやOpenGLで多少…

Unite 2016 Tokyo まとめ(2日目)

はじめに Unite2日目で自分が聴講したものについてまとめます。 個人的に興味深かった講演については後日もっと深く掘り下げようと思っています。今回は大雑把にどんなことをお話しされていたか等を残しておきます。 講演の資料はこちらからDLできます。 Un…