しゅみぷろ

プログラミングとか

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を確認するエディタ拡張

ボクセルゲーム制作

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

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

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

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 上記の記事で金属の反射モデルを紹介しています。この…

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

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

Unite 2016 Tokyo まとめ(2日目)

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

Unite 2016 Tokyo まとめ(1日目)

はじめに Uniteで聴講させていただいたものをとりあえず整理してまとめておきます。 2日分まとめて書こうと思ったんですがめちゃくちゃ長くなりそうなので分割することにしました。2日目はまた後日。本記事では1日目の内容を書いていきます。 個人的に興…

1つのカメラでMRT出力を用いたPostEffectを実現する

はじめに 今までにも何度かCommandBufferを用いたエフェクトについて書いてきたので今更なのですが、Unityのコミュニティでの会話でなんとなくきっかけがあったので書いてみることにしました。 今回は1つのカメラでMRTによる出力を使ったPostEffectをしてみ…

Screen Space Reflection for Unity

はじめに UnityでSSR(Screen Space Reflection)に挑戦しました。 が、実際に出来たのは「SSRっぽい何か」です。 コア部分のみの実装のため、いわゆる「破綻を誤魔化す処理」は付加していません。 条件によっては結構不自然だったりします。 これを改善するた…

Forward RenderingのShadowingについて調べてみた

はじめに ForwardRenderingのShadowingについて調べたことをまとめます。 github.com 今回のサンプルでは以下の様な絵が出てきます。左2つの球はそれぞれvertex/fragment lightingを適用し、shadingを行ったもので、shadowingを行っていません。一番右の球は…

RenderDocによるUnityシェーダーデバッグ

はじめに RenderDocでUnityのシェーダーをデバッグする方法を紹介します。内容はUnityマニュアルとほぼ同じですが、簡単に導入方法をメモしておきます。 docs.unity3d.com RenderDocは以下からダウンロードしてきます。 RenderDoc Downloads 使い方 RenderDo…

UnityでCommandBufferを使わないRaymarching

はじめに 以前、id:i-saintさんとid:hecomiさんの記事を参考にUnityでCommandBufferを使ったRaymarchを試しました。 こちらの記事で紹介させていただいています。 esprog.hatenablog.com 今回はCommandBufferを使わないRaymarchingについてです。 きっかけは…

VisualStudioによるUnityシェーダーのデバッグ

はじめに docs.unity3d.com VSによるデバッグの前にいくつか注意事項があります。 注意 Unity エディターは、内部に複数の子ウィンドウが含まれています。正しいウィンドウをキャプチャすることを確実にするために、「Maximize on Play」をチェックして、キ…

SceneビューでRaymarchingのプレビューをON/OFFする

esprog.hatenablog.com こちらで紹介したUnityでRaymarchingを行う際に使用しているスクリプトで、カメラに対してCommandBufferを追加しているスクリプトがあります。 これの問題点は、SceneビューではRaymarchingによる描画を見ることができないことです(実…

UnityでRaymarching

まえがき タイトルの通りで、UnityでRaymarchingを試してみました。以下でリポジトリを公開しています。 github.com 既にやっている方のを真似させて頂いただけですので、詳しく知りたい方はid:i-saintさんとid:hecomiさんの記事を参考にしてください。 この…

UnityでSceneビューのような視点移動ができるカメラを作る

つくったもの Unityでゲーム実行中(Gameビューで見てる時)、カメラをSceneビューと同じように操作できるようにするスクリプト書きました。 Gameビューでデバッグ用にカメラ移動して色々確認したりするのに便利です。 使い方 使い方はカメラに後述するスクリ…

Deferred Shadingについてまとめてみた

Unity5からの(Legacyでない)DeferredShadingについて自分なりにまとめてみます。 docs.unity3d.com Deferred レンダリングは、Orthographic プロジェクションを使用している場合はサポートされません。カメラのプロジェクション モードが Orthographic に設…