読者です 読者をやめる 読者になる 読者になる

トップページ

更新情報 (2017/04/20)トップページを整理しました (2017/04/23)Blender×Unityワークフロー:ミラーモディファイアとシェイプキーを共存させる(+左右に分離) - UnityShader 入門 (2017/04/30)Mosketchメモ、ショートカット一覧を投稿しました 入門コンテンツ …

Mosketch Lightショートカット一覧

2017年4月30日現在の、mosketch light 0.14のショートカット一覧表です。 カメラ操作 タッチ入力可能なWacomタブレットと組み合わせて使うと、より直感的に操作出来るようになっています。 ズーム マウスホイール or 2本指ドラッグ オービット回転 Alt+左ド…

Mosketchメモ

概要 ボーン上をスケッチすることで直感的にモーションを作成できるソフト、Mosketchについての個人的資料(メモ)です。 メモ Mosketch Lightショートカット一覧 - UnityShader 入門 FBXでキャラをインポート(ボーン、マテリアル、テクスチャ等そのままインポ…

Blender×Unityワークフロー:ミラーモディファイアとシェイプキーを共存させる(+左右に分離)

はじめに キャラクターの顔をモデリングする際、Mirror modifierを使って左右対称にモデリングする方は多いと思います。更に表情もBoneではなく、ShapeKey(unityではBlendShape、一般的にはMorph:モーフ)で作成するのも、分かり易くて良いですよね。 落とし…

Blender×Unityワークフロー

はじめに ここでは、主にBlenderとUnityを組み合わせたワークフローを提案していきます。対象は主に個人開発者向けです。安価で手軽、シンプルに。それでいてスケールアップにも対応できる柔軟なワークフローを目指していきます。 同一トポロジメッシュ間で…

第5回.(上級)法線転写による滑らかなシェーディング

はじめに 今回は、頂点の法線を球体(Sphere)の法線に変形させることで、細部の陰影を弱め、顔に不要な陰が出ないようにするテクニックを紹介します。 本記事で解説される新要素 VertexModifier関数でオブジェクト空間での法線を修正する 法線を編集する意味 …

第4回.(中級)頂点カラーで線の太さを制御する

はじめに 今回は頂点カラー(R)を使ってエッジの太さを調整してみます。ついでにエッジの色と、距離に応じた太さ調整も入れてみましょう。 本記事で解説される新要素 VertexModifier関数で頂点カラーを使用する オブジェクト原点とカメラとの距離を求める ソ…

第3回.(中級)オフセットテクスチャで陰影を調整する

はじめに 今回はオフセットテクスチャを使って陰影を調整してみます。 本記事で解説される新要素 SurfaceShaderの入出力構造体をカスタマイズする オフセットテクスチャとは Ramp処理を施す前(陰影をクッキリさせる前)に、シェーディング結果をオフセット…

第2回.(初級)反転ポリゴン押し出し法で輪郭線を出す

はじめに 今回は反転ポリゴン押し出し法で輪郭線(エッジ)を出してみようと思います。 前回のシェーダーに追加のパスとして、輪郭線パスを加えます。 本記事で解説される新要素 マルチパスレンダリング 頂点モディファイア関数 カリング設定 パスとは パス…

第1回.(初級)カスタムライティング関数でRampシェーダーを作る

はじめに 今回はライティング関数をカスタマイズして、陰影をクッキリさせるシェーダを作ります。このように陰影の滑らかさを調整できるシェーダをRamp(傾斜)シェーダと呼ぶみたいです。 環境はUnity5.6.0f3です。 本記事で解説される新要素 カスタムライテ…

第0回.アニメ調レンダリングとは

はじめに 今回からアニメ調レンダリングを通してUnityShaderを更に深く解説していこうと思います。 実装はUnityですが、考え方は他のレンダラにも適用可能なので、Unity関係なくトゥーンレンダリングに興味のある方にも有用かと思います。 呼び方 アニメ調レ…

アニメ調レンダリングで学ぶUnityShader

(予定)第6回.(上級)ステンシルバッファを使って輪郭線を制御する(予定)第7回.(上級)綺麗な髪の影を落とす (予定)第8回.(上級)ハッチングシェーダーを作る(予定)第9回.(上級)モザイクシェーダーを作る (予定)第10回.(上級)眉毛を髪の上に描画する

第6回.初めてのSurface Shader…を徹底解剖

はじめに これからShaderプログラムについて解説していきます。 今回作るのはSurface Shaderというもので、難しいライティングの計算やテッセレーションなどをUnity側で全て自動でやってくれるようお膳立てされたShaderになります。NPR(Non Photorealistic R…

第5回.スクリプト(C#)を使って動的マテリアルを作る

はじめに さて、今回から実際のプログラムに入ります。とはいっても、Shaderを書くわけではなく、スクリプトからMaterialを制御する方法について解説します。 Materialはパラメータの塊 第1回で、Materialは現実世界における素材と同じ立ち位置にあると説明…

第4回.Post-processing Stackを使う

(2017/03/01)GitHubではなくAssetStoreからダウンロード出来るようになりました。 ●はじめに 前回はイメージエフェクトの使い方を簡単に説明しました。 今回はPost-processing Stackの使い方を説明します。 ●Post-processing Stackとは? Unityのイメージエ…

第3回.Image Effectを使う

●はじめに 今回はイメージエフェクトについて解説します。 ●イメージエフェクト(ImageEffect)とは? 一言でいえば「画面全体に掛かる効果」のことです。ポストプロセス(PostProcess)と呼ばれることも多いです。 アニメでは撮影、映画ではコンポジットなどと…

第2回.Standard Shaderを使う

●はじめに 今回はUnity5から導入された、Standard Shaderの使い方を解説していきます。 ●Standard Shaderってなんですか? 一言でいえば、何でも描ける万能のShaderです。 Unity4以前は、DiffuseShaderやTransparentShaderなど大量のShaderがあり、Material…

1から始めるUnityShader(全6回)

第1回.Unityのマテリアルとシェーダー

●はじめに 今回はUnityにおける「マテリアル」と「シェーダー」という二つの用語を解説します。 ●マテリアル(Material) マテリアル(Material)は日本語にすると「素材」「原料」などの意味になります。例えば木の椅子であれば、素材は木ですので、木=マテリ…

HoloLensファーストインプレッション

HoloLens買いました。5-6時間ほど装着してみた感想です。 色んな項目を☆の数(最大5個)で評価してみます。 画質 ☆☆☆~☆☆☆☆ 解像度 ☆☆☆☆☆ 解像度はかなり高く見えます。現行のVR(Vive,Oculus,PSVR)に比べるとピクセルが4倍~8倍くらいに増えた感じがします。 …

頂点空間表面下散乱(VSSS:Vertex Space Subsurface Scattering)

最近色々忙しくて全然更新できていませんでしたが、 ちょうどいいネタを思いついたのと、アドカレが期限超過で1枠空いてたので代わりに投下します。 実装に丸1日、記事書くのに1日くらいかかりました。 目次 表面下散乱(Subsurface Scattering)とは? SSSで…

液タブを安く(2万ちょい)簡単に作る方法

はじめに Unityとは全然関係ありませんが(ペンタブのVR化とかはやったけど)、1週間くらい前 togetter.com が話題になりましたね。私は空気が読めない男なので、冗談を真に受けてリアルに作ってみました。 用意するもの 時間 スムーズにいけば90分、普通なら…

Unityの価格改定について検証してみた

はじめに Unityの価格改定が6月頭に発表されましたが、様々な意見を受け、更に修正が入ったようです。 blogs.unity3d.comどのユーザーにとって値下げ、あるいは値上げになるのか、計算してみることにしました。Unity5の各永久ライセンス価格を194,400円、ア…

HoloLensについて考えたこと

はじめに 【イベントレポート】【速報】Microsoft、HoloLensの技術「Windows Holographic」をパートナーに公開 - PC Watch にある通り、Microsoft以外のメーカーでもHoloLensのようなデバイスが作れるようになるようです。これによりバッテリーをたくさん積…

BlenderなどのDCCツールからVR空間に3Dモデルを転送して立体的に観察しながらモデリングする方法

前回 HTC ViveでペンタVR上でクリスタが使えるように改良する その3(DesktopCaptureが頻繁に落ちるのを修正する) - Unityシェーダ入門 HTC ViveでペンタVR上でクリスタが使えるように改良する その2(解像度問題の解決策を模索する編) - Unityシェーダ…

HTC ViveでペンタVR上でクリスタが使えるように改良する その3(DesktopCaptureが頻繁に落ちるのを修正する)

前回 その1 HTC ViveでペンタVR上でクリスタが使えるように改良する - Unityシェーダ入門 その2 HTC ViveでペンタVR上でクリスタが使えるように改良する その2(解像度問題の解決策を模索する編) - Unityシェーダ入門 はじめに 前回までは Unity で Deskto…

HTC ViveでペンタVR上でクリスタが使えるように改良する その2(解像度問題の解決策を模索する編)

前回 その1=>HTC ViveでペンタVR上でクリスタが使えるように改良する - Unityシェーダ入門 はじめに 前回あまりにも適当だったので、今回はシェーダーも絡めてペンタVRをさらに実用的なものにします。 ミップマップを有効にする 前回の仕組みでは、テクスチ…

HTC ViveでペンタVR上でクリスタが使えるように改良する

はじめに Viveが来たんですよ!Viveが!さて、今回はわっふるめーかー氏=>waffle_maker@TBA (@waffle_maker) | Twitterが開発した『ペンタVR』に関して、 少ない手間で大きな成果をあげられそうなことを思いついたので、実験してみました。 (今回開発したも…

SurfaceShaderやImageEffectを改造してお手軽トゥーン表現

このコンテンツは、『ユニティちゃんライセンス』で提供されています この記事は Unity 2 Advent Calendar 2015 - Qiita の13日目の記事です。 12日目はtnayukiさんの「知る人ぞ知るUnity 5のネイティブオーディオプラグインについて - Qiita」でした。 ●は…

iPadPro + ApplePencilレビュー

iPadProとApplePencilを購入して少し具合がわかってきたので、Cintiq24HDとの比較をしてみます。 ペンのズレ Cintiqではペン先と表示面の間に結構な厚みがあり、調整しても1mm以上ズレます。ペンの傾きによってもズレ量が変わります。 ApplePencilではそうい…

Ray-Based TemporalReprojection for ScreenSpaceReflection

概要 Stochastic Screen-Space Reflectionsでは、サンプル数を増やすためにTemporalReprojectionが使われています。 しかし普通のTemporalReprojectionを使うと、平行移動時に歪みが発生してしまうので、特別なReprojectionをしているようです。 この資料の…

ゲームグラフィクスアルゴリズム資料一覧

(最終更新:2015/09/27) ゲームグラフィクスに興味のある人向けに資料を分類して集めました。 新しいの見つけたら増やしたり分類し直したりします。※以下は応用的な内容なので、復習も兼ねて基礎的なアルゴリズム(CG数学、パイプラインとかシャドウマップ…

ステレオレンダリングの効率化

自分で計算しようかと思ってましたが、すでに考え付いてた人がおりましたので、ただの紹介です。When there's no need to render twice | Stereoscopic 3D | Oculus VR Forums 平均的なIPDの場合、52m以上離れると差が1ピクセル未満になるようですので、左目…

Unityでドット絵シェーダ その3

このコンテンツは、『ユニティちゃんライセンス』で提供されています 前回のドット絵シェーダはスクリプトからドット粒度を変えられるようになりましたが、 ドットの粒度が画面全体ですべて同じになってしまうという特徴(欠点)がありました。 これではカメ…

Unityでドット絵シェーダ その2

このコンテンツは、『ユニティちゃんライセンス』で提供されています Unity5のフリー版が発表されましたね。 Unity4の無料版では使えなかったImageEffectが使えるようになっていますので、かなり表現の幅が広がったのではないかと思います。 というわけで前…

Unityでドット絵シェーダ

このコンテンツは、『ユニティちゃんライセンス』で提供されています Blenderでドット絵シェーダを作っている方がいましたので、Unityで実装方法考えてみました。 ドット絵シェーダー v1.0 - 3Dモデルをドット絵風に描画するシェーダーが公開!試行錯誤した…

Unityシェーダ入門 #006 FowardRenderingでの影

UnityのForward Renderingでは1つのDirectional Lightからのみ、リアルタイム影を落とすことが出来ます。影をカスタマイズしたい場合があるので、処理の流れをまとめてみました。 1. シャドウマップを生成します。 QualitySettingのShadowCascadesによって、…

LPV(Light Propagation Volume) メモ

UE4のリアルタイムGIは重量級のSVOGI(SparseVoxelOctreeGI)ではなく、処理の軽いLPV(LightPropagationVolume)に変更され実装されているようです。 (UE4を採用しているFableLegendsのGI実装→Blog - Latest News from Lionhead : Dynamic Global Illumination …

リアルタイムレンダリング最初から その1

次世代機も出たタイミングで自分自身の知識の整理も兼ねて、レンダリング手法について何回かに分けてなるべくわかりやすくまとめてみます。 1.何もない世界 ゲームの世界には何も存在していませんので、何も見えません。 真っ黒なディスプレイが表示されてい…

2014年抱負

ああもう2014年になってしまいました。去年から始めたブログで、これまでは技術的なものがメインでしたが、Twitterでは書ききれない長文など、必ずしもUnityやCGに関係ないものも書いていこうかなと思います。 それでは今年の抱負です 1.イラスト描き 当初は…

UnityでOIT(Order Independent Tranceparency)

通常半透明オブジェクトをレンダリングする際には、ソート(奥から手前に向かって)が必要になります。しかし、Unityではオブジェクト単位でのソートはしますが、ポリゴン単位でのソートは行いません。(Unityに限った話ではありませんが) 従って、正しく半…

Unityシェーダ入門 #005 Multiple Render Target

以下はUnity4.3.0f4、DX11で行っています。 1回のレンダリングで複数の値を出力するMRT(MultipleRenderTarget)をやってみます。手順は1.複数の値を出力するシェーダを作成する(SurfaceShaderではなく、展開されたシェーダじゃなきゃ駄目っぽい。やり方が今の…

Unityシェーダ入門 #004 Replaced Shader

通常ユーザが編集するSurface Shaderは、画面上に見える部分の色や形を変えることが出来ます。しかし、シェーダが使われるのは直接画面に見える部分だけではありません。1.シャドウマップレンダリング用シェーダ(影を落とすためのシェーダ) 2.影かどうか判…

Unityでの半透明オブジェクトの描画順序の変更

ガラスなどの半透明オブジェクトの内側に、さらに半透明のオブジェクトなどがある場合に、Unityが描画順序を正しくソートしてくれない事があります。正しい描画順序が予め決まっている場合(例えばガラスビンの中の液体など)は、シェーダーを少しカスタマイ…

ZBrushでのテクスチャ作成メモ

Blenderで作成したモデルのテクスチャをZBrushを用いて作成する。 Blender 1.モデリング 2.UV展開(Smart UV Project機能) 3.OBJ形式でモデルをエクスポート ZBrush 4.Toolにインポート5.Tool > TextureMap > CreateのNew From~でテクスチャ作成 (解像度はTo…

Unityシェーダ入門 #003 #pragma debug

Unityシェーダ入門3回目です。 今回はUnityが標準で作成するサーフェイスシェーダと、頂点シェーダ、フラグメントシェーダの関係を説明します。 #pragma debug 前回説明したコードの中に#pragmaというのが有りました。これはコンパイラに命令を出すためのキ…

Unityシェーダ入門 #002 サーフェイスシェーダ

Unityシェーダ入門2回目。 前回は大まかなグラフィックス処理の流れを説明しましたので、今回からソースコードを出して、具体的な内容に入っていきます。 プログラマブルシェーダ 前回紹介した頂点シェーダ、ラスタライズ、ピクセルシェーダですが、この中で…

Unityシェーダ入門 #001 グラフィックスパイプライン

これからUnityのシェーダについて、1から学べるように書いていきたいと思います。 ・グラフィックスパイプライン 画面に3Dキャラクターなどのモデルを表示する際、最初の材料としてポリゴンを受け取り、いくつかの流れ作業を経た最終結果として、ディスプレ…