みかづきメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

Roslyn Analyzer で特定プリプロセッサを有効にした状態で解析を行いたい

C#

前回に続き、今回も Roslyn Analyzer のお話。 今回はちょっと通常使用外?な感じの使い方です。

Roslyn Analyzer で良い感じにテストしたい

C#

ここ数ヶ月くらい、ずっと VRChat 向けの Roslyn Analyzer を作って得られた知見を放出していく系私です。 今回は、ユニットテストのお話。 ちなみに宣伝しておくと、作った Analyzer はこれで、 Unity + VRChat Udon 向けに作られています。 もし興味がある…

Blender の Smooth Shading で謎の影が付くのをなんとかしたい

Blender でポチポチモデリングしていて、 Smooth Shading に切り替えたとき、なんか良く分からない所に影が付いていることがある。 そういうときの解決法。

NightwindCSS で TailwindCSS のダークモード対応を楽にしたい

考えることを極力減らしたい、そんな私ですが、ダークモード対応も面倒ですよね。 そんなときに使えるのが NightwindCSS という TailwindCSS のプラグインがあります。 それを使ったダークモード対応のお話。

TailwindCSS で Container のサイズを調節したい

CSS

相変わらず CSS を書きたくないので TailwindCSS を使っているわけですが、 今回は .container の設定を変更するお話です。

TailwindCSS で新しいバリアントを追加したい

CSS

私は CSS を書きたくないタイプの人間なので、基本的には Bootstrap や TailwindCSS みたいな、 CSS フレームワークを使って Web サイトを構築するタイプの人間です。 ということで、今日はそのうちの TailwindCSS のお話

Unity 2018.x で自動的に UPM パッケージをインストールしたい

BOOTH とかで商品を配布していて、共通の部分とかを配布するときに、 UPM 経由で依存を入れたいときとかの方法。 UnityPackage に含めると他のと被った場合、古いものをインポートされると困る!的な場合、 (個人的には) UPM 経由でインストールさせるのがよ…

Unity で EBUSY: resource busy or locked とでてパッケージがインポートできない

UPM 経由でパッケージ入れたり、再構成したりするとタイトル通りのエラーが出て、 まともにインポートされなくなってしまいました。 修正は簡単で、とりあえずディレクトリのロックを取っているプロセスが何処かにあるので、 競合するものを閉じてあげれば動…

Unity で monorepo っぽいものをなんとかしたい

なんやかんやあって Unity のパッケージで、1レポジトリで複数のパッケージを管理しているのですが、 もろもろ自動化したかったので、 Node.js 界隈でよく見る monorepo 風に管理してみました。 誰か正しい方法知ってたら教えてください。 だって package.js…

Unity のカスタムシェーダー GUI で、Tiling & Offset を良い感じに表示したい

最近は Toon Shader の勉強をしている私です。 Unity のシェーダーでは C# コードで GUI を自分で組めるのですが、 Tiling と Offset に対応していると、邪魔だと感じるときがあるので、良い感じに表示するための方法。

Git の各種コマンドで条件を満たすパスを非表示にしたい

Git

git status だとか git diff だとかで、たまに Git でトラッキングはしたいけども、 コマンド実行結果上は一時的に非表示にしたいファイルがあるときがあります。 そういうときは、 pathspec を指定することで、表示するファイルを制御することが可能です。 …

Canvas Image を Mesh に変換したい

なんでそんな必要があるのかって? Canvas 使いまくったものが送ってこられて Vket 入稿できなかったからです。 そういう需要があるにはあるので、放流します。

UdonSharp コンポーネントをエディターから動的生成したい

Prefab からのセットアップ自動化みたいな想定で、 UdonBehaviour (U#) の中身をいじりたい。 そんなときのいじりかた。

UdonSharp の特定のクラスのみを受け入れる入力フィールドを作りたい

そんなことをする必要があるかどうかはさておき、やりたくなったので。

ReSharper で EditorBrowsable が付いたものを非表示にしたい

なぜデフォルトで ON になっていないのかは知らないのですが、下のようなコードがあったとき、 [EditorBrowsable(EditorBrowsableState.Never)] public void HogeHoge() { // noop } なぜか ReSharper の IntelliSense を使っていると表示されてしまいます。…

Unity でカメラが近づいたら消えていくシェーダーを作る

最近シェーダーを書くことが増えてきた私です。 ということで今回は「近づくと消える」シェーダーを書きました。 Vertex Shader は変わりないので、 Fragment Shader のみ float4 fs(v2f i) : SV_TARGET { const float d = abs(length(i.worldPos - _WorldSp…

Unity だけでメッシュを作ってアセットとして保存したい

危うく今月の学びがなくなるところでした。 ということで、 Blender などを使わずに任意のメッシュを作成して保存する方法。 やり方は簡単で、以下のコードで 1 tris なメッシュが作成・保存されます。 // see: https://www.wikiwand.com/ja/%E6%AD%A3%E4%B8…

Unity で File (Local) ID を元に Object を検索したい

まあ普通にやっていてそんなケースは無いと思うのですが、以下の場合。 Unity のシーンファイルを解析中 YAML のタグ情報は使えない みたいな場合、 GetComponentsInChildren<T> からがんばって探すことになります。 そういったときのやり方。</t>

Docsify CLI を使って快適にドキュメントを書きたい

Markdown to Documentation Tool として Docute を使っていたけれど、 知らないうちにアクティブにはメンテナンスされなくなっていたので、 Docsify に乗り換えました。 今回はそのお話です。

JavaScript で型定義ファイルを Global に宣言したい

TypeScript 使うまでもない単体の JS ファイルでも d.ts を使いたい時ってあるじゃないですか。 そういうときのあれ。 例えば、 window に Docute というオブジェクトを生やしたこんな型定義があって。 // @types/globals.d.ts // 面倒なので一部だけ type D…

Unity で Animator Controller を動的生成したい

前回、 Animation を動的に生成しましたが、 Controller の方はテンプレートでした。 今回はそこも C# Script から生成してみました。 ちなみに動機は同じですが仕様上不可能だと分かったので供養としておいておきます。

Unity Editor のカスタムエディター上で配列を良い感じに扱いたい

配列を出すためのメソッドが標準で用意されていなかったので、メモしておきます。 例えばこういう配列があったとして。 [SerializeField] private VRCAvatarDescriptor[] _avatars; これをカスタムエディター上で良い感じに表示して欲しいとき、 下のように …

PowerShell で動的に関数を定義したい

PowerShell で動的に関数を定義して、それを使えるようにする方法。 実のところ前の記事に出てきてるのだけれども。 # こんな感じで $ Set-Variable -name DynFunc -value 'function dyn() { echo "Hello" }' -scope global $ Get-Variable DynFunc -ValueOn…

Valve Index のエラーとの戦いの記録

数日ぶりに Index を立ち上げたら認識エラーになって動かなかったので、 動かすまでの戦いの記録。 もしかしたら誰かの役に立つかもしれないので残しておく。

Oculus Rift S で Knuckles + Full-Body Tracking をやりたい

興味本位で Oculus Rift S + Knuckles (Index Controller) のキメラ構成でやってみたかったので、 試しにやってみたメモです。 テストしたのは VRChat ですが、ちょっとちらつく以外は SteamVR で動いたので、 その記録として残しておきます。

Windows の Terminal 環境を整えたい

整えるというか、普段仕事で使っている macOS / Ubuntu に合わせるって言うのが近いけども。 Windows の環境をいろいろいじっていくメモ。

Unity で Animation を動的生成したい

元は VRChat 関連だけど、アバターの GameObject のツリー構造に依存せず、 自由にギミックを仕込む為の仕組みを作りたかった。 ただ、そのまま anim を配布しただけだと対応できないので、動的に生成してみました。

VRCSDK2 から VRCSDK3-AVATARS へ移行したときに気をつけること

VRChat の Avatars 3.0 なるものがでるようなので、早速入れて触ってみました。 が、既存のプロジェクトをアップグレードすると動かない、なぜ。 原因は Define Symbols にありました。 Unity の Player Settings から、 Configuration セクションにある以下…

Parcel Bundler を使ってるときに、 manifest.json までビルドされるのをなんとかしたい

つい最近気がついたのだけども、どうやら Parcel で manifest.json を含んだ index.html をビルドすると、 JavaScript としてコンパイルされてしまうらしい。 それに気がつかず約半年 ServiceWorker を消すスクリプトが動いていなかったようだ それの防ぎ方…

TypeScript で配列かどうかを型付きで判別したい

下のような型をもつ変数 obj が提供されていて、 これが number なのか number[] なのかを区別したいとき。 type Value<T> = T | readonly T[] | undefined | null; declare const obj: Value<number>; こういう文法が使えるのを必要がなかったので知らなかったのだけど</number></t>…