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

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

ユニティちゃんシェーダーを読む(輪郭線1)

ようやく精神的に余裕が生まれはじめまして、シェーダー本2の執筆を始めようと思ったものの、今から初めても技術書典4への新刊はどうにも間に合いそうにありません。 そこで、前からやろうと思っていた「ユニティちゃんシェーダーのコードを全文読む」を不…

メモ:解決できてない課題

Canvasは非常に便利なんですが、3Dモデルが配置されている空間とスケールがあまりにも違いすぎて(Canvasのスケールに合わせると3Dモデルが米粒になってしまう)、往復して作業するのが非常にめんどくさいのだけど、これどうにかならんのかな?

メモ0220

Humanoidモデルに対して、モーションデータで追加のボーン(髪とか)を動かしたい場合、Animationの設定でそれを明示する必要があります。 具体的な手順は以下(モデル側も、モーション側も必要だと思います)。・Animationタブの下の方にある"Mask"を開く …

メモ:現状解決できていない課題

現状解決できていない課題をメモっておく・Mayaからモーションデータだけを"*.anim"形式で書きだした場合、これはUnity側で取り込めないのか? Mayaから直接される.animと、Unity上でfbxから抽出した.animは別フォーマットのデータっぽい

メモ0127

シェーダー本でClip()の説明が抜けていることに気付きました。申し訳ありません。clip (DirectX HLSL) https://msdn.microsoft.com/ja-jp/library/bb509579(v=vs.85).aspxなんで抜けたのかのこれ……。他の関数も再確認した方がいいな。ちなみになんで気付いた…

メモ0126

背景モデルをインポートして、グローバルイルミネーションで照らす為にstaticに変更すると、ライトマップがベイクされた後に画面に黒いドットがばらまかれたような変な絵になってしまうことがありました。 これの原因がどうにも分からなかったのですが、ひと…

メモ0125

clothコンポーネントの仕様が2017.3から機能追加されている(英語のドキュメントのみ最新) https://docs.unity3d.com/Manual/class-Cloth.html 頂点がやたら大きなボールで表示されていて、これを小さくする方法がすぐにはわからなかったので保留。

Unity Tips(17:ユニティちゃんリップシンク)

下記のサイトを見ながらユニティちゃんモデルでリップシンクさせてみました。ユニティちゃんが声に合わせて口パクしてくれるリップシンクアセットを作ってみた http://tips.hecomi.com/entry/2014/07/21/125319 作業中どうにもうまく動かなくて悩んでいたの…

Tsukasa4U開発日記 2

ANTLR4の勉強をすると決めたはいいものの、どうにも日本語で読めるまとまった資料が見つからなかったため、仕事始め(現在某ゲーム会社さんにフルタイム勤務でお手伝いしてます)から出勤時間に"The ANTLR mega tutorial"を読んでます。The ANTLR mega tutor…

Unity Tips(16:Animatorコントローラーのセットアップ)

1からセットアップしたモデルデータにAnimatorコントーローラーアセットを登録する時毎回必要な作業を忘れて焦るのでメモしておきます。1・モデルのHumanoidセットアップを済ませる 2・AnimtorControllerアセットを作成 3・AnimtorControllerアセットを…

Tsukasa4U開発日記 1

あけましておめでとうございます。今年もよろしくお願いします。 2018年は昨年に引き続きUnityの勉強を継続していく予定で、技術書典4にサークル当選したら、シェーダー本の続編を作るつもりでいます。ただ、それはサブ目標で、今年のメインはUnity版司…

3Dリアルタイムレンダリングにおいてベクトルの内積の性質を知っていることがどれだけ重要かについて解説する

今年も様々な方に有形無形を問わずお世話になりました。感謝の気持ちを込めて大晦日に多少長めの記事を書いてみました。よろしければごらんください。 課題の提示 まず、こちらの画像をご覧ください。 シーンに球体とポイントライトを一個配置しています。デ…

Unity Tips(15:セキュリティソフトとの競合の注意)

これは単なるメモ。 Unityを起動してプロジェクトを選択するとHold Onのダイアログで「Compiling Scripts」と表示されたまま先に進まなくなるという現象が頻発していました。この状態になるとプロセスを落とすしか解決策がなく、プロジェクトのLiberallyとTe…

DXTnm形式とはなにか。あるいは、法線マップが青紫色な理由

「Unity #2 Advent Calendar 2017(https://qiita.com/advent-calendar/2017/unity2)」7日目になります。6日目はTeachさんによる「画像の色相を変更する.(https://qiita.com/Teach/items/52883127033885a95e82)」 でした。 自己紹介(飛ばしてOK) ちょ…

Unityのシェーダー記述言語ShaderLabのVisualStudio用プラグイン「ShaderLabVS」導入手順

VisualStudioでshaderファイルを編集する際に、インテリセンスを機能させるためのプラグインでいいのが見つからずにいたのですが、ようやく実用レベルになるプラグイン「ShaderLabVS」を見つけました。以下導入手順を書いておきます。 導入手順 ShaderlabVS …

Unity Tips(14:スカイボックスについて)

自分用メモ・「スカイボックス」というのは、Unityではマテリアルのことである。「マテリアルである」というのは「シェーダーである」とほぼ同じ意味である。 ・スカイボックスマテリアルは、Window>Lighting>Settingsの、Environment>Skybox Materialに設定…

Alloy Physical Shader Framework導入手順解説

「Alloy Physical Shader Framework」という、Defered Shading用に特化して開発され、UnityCGなど標準ヘルパーコードまで(多分)改造して作りこんでいる、有料シェーダーアセットがあります。これが、つい最近突如無料化し、界隈で話題になっていました。 h…

Unity Tips(13:テクスチャを重ねて描画する)

これまで食わず嫌い的に3Dプログラミングを避けて通ってきたこともあって、「こういう処理は3Dプログラミングでは通常こういうアプローチを取る」というのがわからず、難しいことではないのに解法にたどりつけない事がよくあります。今回もそのパターン…

Unity Tips(12:Skyboxの作り方)

公式ドキュメントのスカイボックスの作り方(https://docs.unity3d.com/jp/current/Manual/HOWTO-UseSkybox.html)だと、なぜか6面に個々に別の画像を使用する旧形式しか解説されていないので、Cubemapテクスチャ(https://docs.unity3d.com/jp/current/Man…

「Unityシェーダープログラミングの教科書 ShaderLab言語解説編」本文サンプル公開&BOOTHでPDF版頒布開始しました

10月22日に開催される技術書オンリー即売会「技術書典3」にて、「Unityシェーダープログラミングの教科書 ShaderLab言語解説編」を初頒布します。表紙は盟友のふゆの春秋さんに描いて頂きました。「若者(学生)が武器(Unity)を手にした」というモチ…

近況報告

気がつくと1カ月あけてしまって反省。つらつらと近況報告。 Unityシェーダープログラミング本書いてます 「Unityシェーダープログラミングマスターブック〜ShaderLab完全解説編〜」という同人誌を今書いてまして、次の技術書典で初頒布予定です(間に合えば…

Unity Tipes(11:マニュアル再翻訳シリーズ:レンダリングパス周り)

飛び飛びで読んでいるので他にもあるかもしれません。気づいた時に更新しておきます。https://docs.unity3d.com/ja/current/Manual/RenderTech-DeferredShading.html 「Deferred Shading レンダリングパス」内「要件」第2パラグラフの訳がおかしく、こちらも…

モダン3Dゲームグラフィックプログラミングについて色々誤解していたという話

この2週間はUnityシェーダープログラミング本を書くために、3Dゲームグラフィックスの技術漬けになっていました。 もともと3DCGは避けていた(ADV畑の自分は今後も2Dのゲームしか作らないだろうと思っていたから)のもあり、10年分くらいの知…

ANTLR4をVisualStudio上で使う際の注意点

C#

tsukasaスクリプトをC#コードに変換するトランスパイラを作っています。当初はrubyのparsletで書こうと思っていたのですが、parsletが気軽に動かせる代わりに字句解析器と構文解析器が分離していない点や、C#のプロジェクトに統合できない点から中止し、ANTL…

Unity Tips(8:MonoBehavior派生クラスのコンストラクターが呼びだされるタイミングについて)

MonoBehavior派生クラスに設定されたpublicフィールドは、Inspector上から値を設定できます(SerializeField属性を設定すれば非publicフィールドでも編集できる)。設定された値は、ゲーム実行時にスクリプト側から取得できます。サンプルなどで非常に多用さ…

Unity Tips(7:処理タイミング関係)

Debug.break()は何をしているのか Debug.break()を実行すると、Unityエディタでポーズボタンを押した時と同様に処理が一時停止します。実行時には以下の2点に気をつけてください。 ・単にポーズがかかるだけで、デバッガがアタッチしていてもブレークが発生…

Unity Tips(5:CanvasとButtonの話)

RectTransformを持った空のGameObjectを作成する方法 canvas上で動作させるGameObjectは、通常のTransformではなくRectTransformを持たせる必要があるのですが、「RectTransformを持つ空のGameObject」を表すクラスは無いようで、動的に生成する場合は以下の…

ButtonのOnClickイベントが2回発生している(ように見える)バグに悩まされた話

コードを書いていて、どうにもおかしな挙動に悩まされた時の話。結論から言うと土屋の設定ミスだったんですが、Unityらしいハマり所と思ったので紹介しておきます。 不具合発生:3つのボタンのOnClickイベントが意図しない挙動をする。 canvas上にButtonを3…

Unity Tips(4:Unityマニュアル誤訳編)

Unityマニュアルのアニメーションの項は所々「誤訳では?」という所があるので気づいた所について。まあ、これだけの分量を日本語で読めるだけでもありがたい話ではあります。 以下幾つかの項目に私訳をつけていますが、各自の責任で運用してください。 Anim…

Unity Tips(3)

「Tips」と書いてはありますけど、単に土屋が導入時に気になった所をメモしてるだけです 【用語】アトラス ・複数の画像を1つの画像にまとめたもの。 ・複数の画像をアトラスにする作業を「アトラス化」とも言う。 ・UnityではSprite Packerなどで作成したS…