土屋つかさの技術ブログは今か無しか土屋つかさの技術ブログは今か無しか読者になる土屋つかさの技術ブログは今か無しか土屋つかさが主にプログラミングについて語るブログです。C#(以下、スクショのスケールやトリミングができてないんですが、面倒なのでいつかやるかも、くらい。あとごめん、コードは微妙に実際に使ったものと違うのでそのままでは動かないかも。(Ver2.0.3対応版)」の紹介記事をまだブログにアップしていなかったのでした。かかわらず、気づけば5月...2018-05-13ユニティちゃんトゥーンシェーダーのUIを改修するエディタ拡張を作ってみたUnityカスタムマテリアルエディターの勉強の過程で、ユニティちゃんシェーダーのUIを改修するコードを書いてみました。ソースコードは下記にアップしてあるので欲しい方はご自由にどうぞ。Unityではテクスチャを登録すると、そのテクスチャのミップマップテクスチャ群が自動生成され、リソースに追加されます。ミップマップテクスチャというのは、元の画像を25%ずつ縮小した画像群(通常9枚作成され、元...2018-05-01Unityで投影テクスチャマッピングを実装する際に抑えておくべき基礎情報Unityブログで告知する余裕がなかったのですが、10月22日に開催された技術書典4では既刊のUnityシェーダー本を過去最多部数の再販と、新刊コピー本の「ユニティちゃんトゥーンシェーダーのコードをひたすら読む本」を持ち込んだ所、技術書典始まって以来の晴...2018-04-19UnityのシェーダーでBINORMAL入力セマンティクスが機能しない話と回避する方法の話Unity技術書典4合わせで「ユニティちゃんトゥーンシェーダーをひたすら読む本」というコピー本を作りました。時間の関係で調べ切れなかった事を1個書いておきます。ああ、これも書きたかったな......。シェーダー本2に収録しよう......。Settings"のオプションを出す方法Unity一瞬戸惑ったのでメモ。Settings"の2項目を表示させるには、以下の設定が必要です。"FORWARD")を見て行きます。ここからフラグメントシェーダー関数になります。入力は、VertexOutput構造体と、VFACEセマンティクスがバインドされたfacingです。この記事で参照しているコードのverは2.0.3なのですが、Unityの小林さんから2.0.4ではごっそり修正してるというお話をツイッター経由で教えて頂きました。2018.1から、シェーダーの内部処理に大胆なメスが入りまして、スクリプタブルレンダーパイプライン(SRP)という機能が実装されました。いえ、S...2018-03-26ユニティちゃんシェーダーを読む(輪郭線1)Unityようやく精神的に余裕が生まれはじめまして、シェーダー本2の執筆を始めようと思ったものの、今から初めても技術書典4への新刊はどうにも間に合いそうにありません。そこで、前からやろうと思っていた「ユニティちゃんシェーダーのコードを全文読む」を不...2018-02-21メモ:解決できてない課題UnityCanvasは非常に便利なんですが、3Dモデルが配置されている空間とスケールがあまりにも違いすぎて(Canvasのスケールに合わせると3Dモデルが米粒になってしまう)、往復して作業するのが非常にめんどくさいのだけど、これどうにかならんのかな?2018-02-20メモ0220UnityHumanoidモデルに対して、モーションデータで追加のボーン(髪とか)を動かしたい場合、Animationの設定でそれを明示する必要があります。具体的な手順は以下(モデル側も、モーション側も必要だと思います)。...2018-01-26メモ0126Unity背景モデルをインポートして、グローバルイルミネーションで照らす為にstaticに変更すると、ライトマップがベイクされた後に画面に黒いドットがばらまかれたような変な絵になってしまうことがありました。Tips(17:ユニティちゃんリップシンク)Unity下記のサイトを見ながらユニティちゃんモデルでリップシンクさせてみました。作業中どうにもうまく動かなくて悩んでいたの...2017-12-313Dリアルタイムレンダリングにおいてベクトルの内積の性質を知っていることがどれだけ重要かについて解説するUnity今年も様々な方に有形無形を問わずお世話になりました。感謝の気持ちを込めて大晦日に多少長めの記事を書いてみました。よろしければごらんください。こちらの画像をご覧ください。シーンに球体とポイントライトを一個配置しています。Tips(15:セキュリティソフトとの競合の注意)Unityこれは単なるメモ。Scripts」と表示されたまま先に進まなくなるという現象が頻発していました。この状態になるとプロセスを落とすしか解決策がなく、プロジェクトのLiberallyとTe...2017-12-05DXTnm形式とはなにか。2017(https://qiita.com/advent-calendar/2017/unity2)」7日目になります。...2017-11-30Unityのシェーダー記述言語ShaderLabのVisualStudio用プラグイン「ShaderLabVS」導入手順UnityVisualStudioでshaderファイルを編集する際に、インテリセンスを機能させるためのプラグインでいいのが見つからずにいたのですが、ようやく実用レベルになるプラグイン「ShaderLabVS」を見つけました。以下導入手順を書いておきます。Tips(14:スカイボックスについて)Unity自分用メモ・「スカイボックス」というのは、Unityではマテリアルのことである。「マテリアルである」というのは「シェーダーである」とほぼ同じ意味である。Shading用に特化して開発され、UnityCGなど標準ヘルパーコードまで(多分)改造して作りこんでいる、有料シェーダーアセットがあります。これが、つい最近突如無料化し、界隈で話題になっていました。Tips(13:テクスチャを重ねて描画する)Unityこれまで食わず嫌い的に3Dプログラミングを避けて通ってきたこともあって、「こういう処理は3Dプログラミングでは通常こういうアプローチを取る」というのがわからず、難しいことではないのに解法にたどりつけない事がよくあります。Tipes(11:マニュアル再翻訳シリーズ:レンダリングパス周り)Unity飛び飛びで読んでいるので他にもあるかもしれません。気づいた時に更新しておきます。Tips(8:MonoBehavior派生クラスのコンストラクターが呼びだされるタイミングについて)UnityMonoBehavior派生クラスに設定されたpublicフィールドは、Inspector上から値を設定できます(SerializeField属性を設定すれば非publicフィールドでも編集できる)。設定された値は、ゲーム実行時にスクリプト側から取得できます。Debug.break()を実行すると、Unityエディタでポーズボタンを押した時と同様に処理が一時停止します。実行時には以下の2点に気をつけてください。canvas上で動作させるGameObjectは、通常のTransformではなくRectTransformを持たせる必要があるのですが、「RectTransformを持つ空のGameObject」を表すクラスは無いようで、動的に生成する場合は以下の...2017-06-27ButtonのOnClickイベントが2回発生している(ように見える)バグに悩まされた話Unityコードを書いていて、どうにもおかしな挙動に悩まされた時の話。結論から言うと土屋の設定ミスだったんですが、Unityらしいハマり所と思ったので紹介しておきます。不具合発生:3つのボタンのOnClickイベントが意図しない挙動をする。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。