土屋つかさの技術ブログは今か無しか

土屋つかさが主にプログラミングについて語るブログです。

Vue.jsを理解するシリーズ

ここ最近Vue.jsでの開発を延々しています。最後にJavaScriptをまともに勉強したのがRuby on rails用のCoffee Scriptな物で、Node.jsベースのモダンなWeb開発のスタイルがさっぱりわかりませんでした。一か月くらい浦島太郎状態が続いて、最近になってようや…

UnityTips 2019.1にプロジェクトを移行した時に出たエラーと対応処理

Unity2018.2で開発していたプロジェクトを2019.1で開くと「TextMeshProがどうたら(ちゃんと読んでない)」というエラーが大量に出て実行できなくなりました。これ、前にも起きてその時は色々操作してたらなんとかなったんですが、正しい解決方法を確認した…

Unityシェーダープログラミングの教科書3 ライティング&GI(大域照明)解説編

告知です。新刊同人誌「Unityシェーダープログラミングの教科書3 ライティング&GI(大域照明)解説編」のPDF版を、BOOTHさんに登録しました。 s-games.booth.pm また、本書の物理書籍版を、4月14日(日)に池袋で開催される技術書典6で頒布…

"unity シェーダー"で土屋のシェーダー本にリーチしないのが悔しい

悔しいのでエントリ名にしました。本文とは関係ありません。 シェーダー本3の作業が佳境に入っていましてブログを書く余裕がありません。小ネタを幾つかまとめて。 ハマりポイント:VisualStudioのアップデート Unity2018.3でちょっとしたC#コードをビルド…

#unity 2018.2と2018.3でLightingウィンドウのタブ切り替えボタンの仕様が変わってる

小ネタ。タイトル通り。シェーダー本3用にUIをスクショしている時に気づきました(マジかよ)。 2018.2まではこちら。ライトマップが、RealtimeもBakedもGlobal Mapsのタブに表示され、Object Mapsには選択中のオブジェクトの情報が表示されます。 2018.3…

#unity ShadowmaskモードとDistance Shadowmaskモードの違いについて

はじめに 現在、技術書典6に向けてシェーダー本の第3巻を執筆中です。当初の予定では、第3巻は「ライティング&GI(大域照明)編」と題して、Unityライティングシステムの解説と、エディタ上の各パラメータをシェーダーコード上で使用する方法について…

#unity Renderer.lightmapScaleOffsetプロパティ私訳

Renderer.lightmapScaleOffsetプロパティのについて正確な情報が必要になり、ドキュメントを訳出しました。2018.3版だと部分的に公式訳がなくなっていたので、欠落分を2017.3版から取得しています。原文:https://docs.unity3d.com/2018.3/Documentation/Scr…

#unity TextAssetを使ってcsvファイルをアセット化しUnityで読み込む

急にダミーデータが必要になり「csvファイルを最小工数でUnityに展開する方法ないかなー」とググッていたら、テキストアセット(TextAsset)なる物があると知りました。 note.mu これを使おうとしてしょっぱなでハマったのでメモ。 TextAssetアセット ドキュ…

#unity "Precomputed Realtime GI"の「事前計算」はいつなのかという話

UnityにおけるGI(Global Illumintaion. 大域照明)は、"Baked GI"という、ビルド時(あるいはもっと前)にシーンの間接光を計算し、そのカラー値をライトマップと呼ばれるテクスチャに書き込む(「ベイクする(焼き付ける)」と言います)物を指します。…

MeshRendererコンポーネントのLight Probes(ライトプローブ群)のドキュメント私訳

MeshRendererコンポーネントのパラメータであるLight Probesは、そのメッシュがライトプローブの影響をどう受けるかをOff/Blend Probes/Use Proxy Volume/Custom Providedの4つから選択します。この値は内部的にはMeshRenderer.lightProbeUsageプロパティに…

Unity 2018.3からMesh Rendererインスペクタのレイアウトが大幅に変更されてた

ふとUnityを眺めていたら、Mesh Rendererインスペクタのレイアウトが2018.3から、レイアウトが大幅に変更されていたことに気づきました。 左が2018.2、右が2018.3です。プロパティの構成要素自体は変化してませんが、いくつかの名称が変更されていたので、以…

Unityライセンスはバージョンごとに紐付けされているという話

※すみません以下のエントリ勘違いかも。追記参照。 Unityは去年からPlusの年間ライセンスを購入しています(もちろん個人で)。とはいえ、去年は結局アプリをリリースすることがなかったので、ダークUIテーマにして楽しむくらいしか意味なかったですけど………

Unity2019.Xについての根拠の無い国内展開予測12個

ツイッターで「今年の技術発展予測をして年末に答え合わせすると自己認識のキャリブレーションになる」というのを見て、面白そうだったのでUnityについて考えてみました。Unity2019.Xが採用する技術と、その国内での展開の予測です。当然ながら(?)主にシ…

Standard ShaderのEmissionを自作シェーダーに組み込みたかった(過去形)

Standard ShaderにEmissionという項目があります。 docs.unity3d.com これはオブジェクト自体を発光体にする物で、オプション選択で、ライトマップにベイクしたり、ライトプローブにリアルタイム反映させたりできます。とはいえ、その「ライトマップにベイク…

Unityライティングモードリファレンスカードを和訳

Unity Lighting Modes Reference Cardという公式が提供しているスプレッドシートがあります。これは、UnityでのGI(グローバルイルミネーション)において、光を投影するライトと、その光を受けるオブジェクトのそれぞれが動的/静的だった場合に、ライトと…

モバイル環境での遅延シェーディングがアリになったタイミングの話

モバイル環境での遅延シェーディング(ディファードシェーディング)は、元々非サポートだったのが少し前からアリになったというのは小耳にかじっていたのですが、ドキュメントを読んでいたら、2017.4から解説が更新されている事に気づきました。2017.3 http…

円形のエリアライト(Unity2018.3からの新機能)の話

シェーダー本3の執筆中に気づいたこと。2018.3から、エリアライトに円形(Disc)が追加されました。これまでは矩形(RectAngle)しかなかったので、表現の幅が広がったと言えましょう。 https://unity3d.com/jp/unity/whats-new/unity-2018.3.0 これにとも…

LightmapParametersクラスの話

LightingウィンドウにLightmapParametersという指定項目がありまして、通常は下記のリストから選択するんですが、LightmapParametersアセットを作成してカスタマイズもできます。LightmapParameters https://docs.unity3d.com/2018.3/Documentation/ScriptRe…

Unityゲーム プログラミング・バイブル

はてなダイアリーからはてなブログに移行しても、特に大きな変化はないんですが、Amazonアフィリエイトリンクを貼れるようになったのは大きい気がする。というわけで今年土屋が参加した本を貼っておきます。なにげに商業テクニカルライティングは今回が初で…

ShaderでBlendの引数をカスタマイズしたいという話

StandardShaderでは、PassによってBlendやZWriteが以下のように記述されていて、外部から設定可能になっています(ただし、ここに出てくる_SrcBlendなどのプロパティはインスペクタ上は非表示なのでユーザーは直接変更できません。) Name "FORWARD" Tags { …

ScreenCapture.CaptureScreenshot()のバグ

ScreenCapture.CaptureScreenshot()でスクリーンショットを出力すると画像がぶっ壊れてる現象に遭遇し結構悩んでいたのですが、Unityのバグだったようです(マジか)。SCREENCAPTURE.CAPTURESCREENSHOT PRODUCES BLURRY SCREENSHOTS WHEN THE 'SUPERSIZE' AR…

Unityフォワードレンダリングにおけるライト割り当てルールまとめ

下はUTS2を適用したモデルの周りを複数のポイントライトが周回する動画です。ライトの位置によって、モデルの色がパキッと割れるのが観察できる良いサンプルだと思います。このフリップは、Unityがプリミティブごとに適用するライトの種類と個数を自動的に設…

Bash on Windows上に構築したPostgreSQLにWinデスクトップ側からアクセスしたい

のだけど、できないんだろうか?(linuxもpostgresqlも初めて触るので勝手が全然わからない)。 あと、psqlでパスワードを要求されるのだけど、パスワードを作った覚えがねーんだが、これはなにかミスってるのか? ←pstgresqlユーザーにパスワード追加して、…

Rubyで指数表現なしで数値を出力する

コードを書いていると頻繁に指数で管理している数値を指数なしの十進表現で出力したい時があると思いますが(※ない)、rubyでこれをやる方法を毎回忘れてしまうのでメモっておきます。 require 'bigdecimal' #プランク長長さ(1.61622938*10^-35)を指数表記…

Utf8JsonをUnityで使ってみる(2)

前回ドキュメントから適当に拾ったデシアライズのサンプルコードがdynamic型を使うことが前提になっていてどうなんだろうと思いましたが、単に対象のJSONデータの構造が未知の場合にはdynamicを使うことになるという事のようです(そりゃそうだ。rubyに慣れ…

ForwardAdd Passのコードを書く際の注意点

以前から、スポットライトを受けるシェーダーを検証している最中に、プレーンが変な形に切り抜かれることがあって、これはいったいなんなんだろうと思っていたのですが、ようやく「そのライトが当たらないフラグメントについてはForwardAddパスが実行されな…

Utf8JsonをUnityで使ってみる(1)

(以下、スクショのスケールやトリミングができてないんですが、面倒なのでいつかやるかも、くらい。あとごめん、コードは微妙に実際に使ったものと違うのでそのままでは動かないかも。これは後で確認します) 司エンジン(土屋が開発しているコード注入式ス…

「Unityシェーダープログラミングの教科書2 【反射モデル&テクスチャマップ編】」本文サンプル公開&BOOTHでPDF版頒布開始しました

BOOTHでの頒布開始しています。が、記事を書く時間的余裕が全然ない! もうしばらくお待ちを〜(2018/10/18)Unityシェーダープログラミングの教科書2【反射モデル&テクスチャマップ編】(via BOOTH) https://booth.pm/ja/items/1032141 シェーダープログラ…

「ユニティちゃんトゥーンシェーダーの コードをひたすら読む本(PDF版)」内容紹介

仕事が忙し過ぎて更新できないまま技術書典4を迎えてしまったため、その時の新刊「ユニティちゃんトゥーンシェーダーの コードをひたすら読む本 (Ver2.0.3対応版)」の紹介記事をまだブログにアップしていなかったのでした。にもかかわらず、気づけば5月…

ユニティちゃんトゥーンシェーダーのUIを改修するエディタ拡張を作ってみた

カスタムマテリアルエディターの勉強の過程で、ユニティちゃんシェーダーのUIを改修するコードを書いてみました。以下主な特徴です ソースコードの配置場所 ソースコードは下記にアップしてあるので欲しい方はご自由にどうぞ。あくまで土屋が使いやすいよ…