なつねこメモ

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

2022-01-01から1年間の記事一覧

Unity の Vector3 を Newtonsoft.Json でシリアライズ・デシリアライズしたい

ちゃんとした Unity アプリケーションを作っていると、 Json でアプリケーションデータを永続化したくなることがあると思います。 ただ、 PlayerPrefs はゴミらしいのと、 Unity 標準の JsonUtility だと物足りない......!となると、やはり Json.NET が選択…

OpenVR SDK でデバイスのアイコンパスを取得したい

今回は、 OpenVR SDK にてコントローラーや各トラッカーなどのデバイスのアイコンの場所を取得してみようと思います。 といっても、やり方はカンタンで、ランタイムパスと GetStringTrackedDeviceProperty で取得できるパスを組み合わせれば OK です。 とい…

OpenVR SDK で SetOverlayTransformTrackedDeviceRelative した座標の絶対値が知りたい

DLL Injection の記事はどうした!と言われそうですが、この後に書く予定です。許してください。 ということで、この記事では、 OpenVR SDK で SetOverlayTransformTrackedDeviceRelative あと適用した座標についての絶対値をとる方法についてメモです。 と…

DLL インジェクションして任意の処理を差し込みたい 2

前回の記事の続きで、今回は任意の場所に、任意の処理を差し込んでみようと思います。 使うライブラリは Hooking.Patterns と Injectors の改変版です。 使い方はカンタンで、うさみみハリケーンとかで任意のプログラムのメモリーをダンプし、該当する処理が…

DLL インジェクションして任意の処理を差し込みたい 1

任意の Windows アプリケーションにたいして、 DLL Injection を行って処理を差し込んでみよう!という記事です。 あくまで DLL Injection についての解説記事であって、ウィルスの作成だったりチートを助長するような目的ではありませんのであしからず。 DL…

Blender でガタガタした面を滑らかにしたい

こういったちょっとでこぼこしてしまったメッシュがあるとき 滑らかにしたい場合は右クリックから [Smooth Vertexes] を選ぶと滑らかになります。 こんなかんじ ということで、メモでした

C# でリフレクションに ref パラメータを使いたい

C#

たとえば以下のような ref パラメータを持ったメソッドがあったとして、 private static void ShaderErrorListUI(Shader shader, ShaderMessage[] messages, ref Vector2 scrollPosition) { // ... } これをリフレクション経由で呼びたい場合は、多分普通に…

VS Code で Blender の Add-on 開発をしたい

Blender のアドオン作りたくなったので、 VS Code で作るためのやり方。 まずは、必要最低限の環境を整えていきます。 ということで、 Blender Development 拡張機能を入れます。 このとき、 Blender 2.8x を対象に作成する場合は、不具合があるようなので 0…

ブログを一部はてな記法に対応させてみた

ブログの一部分をはてな記法に対応させてみました。 こんな感じの記述をすることで、 URL を展開してくれた便利機能のことです。 https://www.youtube.com/watch?v=dPX0_IEXVRo:embed リンクだとこんな感じ https://www.youtube.com/watch?v=dPX0_IEXVRo:tit…

SWC の特定バージョン以前では class-transformer が正しく動作しない

JavaScript / TypeScript の高速な Rust 実装コンパイラーである SWC ですが、特定バージョン以前だとデコレーター・クラス周りの処理があるらしく、 デコレーター・クラス周りの処理をバリバリ使っている class-transformer を使用していると、以下のような…

Keybase の GPG 鍵を GitHub でも使いたい

Git

わたしは GPG 鍵は基本的には Keybase に管理を任せているのですが、 Keybase で管理している鍵で GitHub のタグに対して署名したかったので、その方法について。 まずは scoop 経由で gpg をインストールしておきます。 すでに入っている場合はスルーで OK…

Git で大文字小文字の変化を認識させたい

Git

Windows とか macOS とかで使う分には、ファイルシステム的に大文字小文字を無視しても良いんですが、 Linux だと大文字小文字は無視できない違いになります。 ただ、 Windows とかから大文字小文字だけを変えたものを commit しても認識されないので、それ…

コンパイルエラー CS8032 / CS8033 を修正したい

Roslyn の Source Generator 系を作っていると出てくる事がある CS8032 系の修正方法について。 そもそも CS8032 / CS8033 ってなんぞやって言うのは、こんな感じ。 CS8032: An instance of analyzer NAMESPACE cannot be created from Analyzer.dll. CS8033…

Git LFS サーバーを自作して、 S3 などのストレージにデータをストアしたい

みなさん Git LFS を使用していますか? わたしは VRChat のアバタープロジェクトをまるまる GitHub へあげているついでに、 Git LFS で 3D モデルやテクスチャーも状態を保存しています。 そこで困るのが、 GitHub のストレージ課金です。 50GB で 60USD/ye…

M1 Mac の Rosetta 2 を使用している状態でハードウェアアーキテクチャを取得したい

Rosetta 2 上とかで古い Node.js 経由とかでシェルスクリプトを呼び出した場合、 Rosetta 2 を使用している状態が引き継がれます。 その状態で、 uname -a とかすると、 Intel Mac と同様に x86_64 を返してしまいます。 それだと困るケースがあったので、ハ…

JavaScript でメンバーがすべて undefined かどうかを調べたい

クラスやらオブジェクトのメンバーがすべて undefined かどうか調べたいときは以下のコードで出来る。 const obj = { a: undefined, b: undefined, c: undefined, }; const obj1 = { ...obj }; const obj2 = { ...obj, d: null }; const checkAllMembersAreU…

PowerShell で既存のコマンドをラップする感じにエイリアスを貼りたい

最近 Asterisk っていうコマンドラインツールを作ったのですが、そこで PowerShell で既存コマンドに対してエイリアスを貼る必要があったので、その方法の紹介。 基本的には、こんな感じで関数を定義して、それに対してエイリアスを貼ってあげれば良い。 $ S…

clap で排他的なコマンドオプションを実装したい

clap crate で排他的なコマンドオプションを実装するときのメモ。 なんか直感的ではなくて悩んでしまったので。 例えば、 --is-interactive と --name, --description の片方のペアのみを受け入れたい場合は下のようにします。 use clap::{ArgGroup, Parser}…

AWS Tools for PowerShell で Wasabi の Pre-signed URL を作成したい

AWS

FANBOX で支援してくれている方向けに期限付きファイルの配布をしようと思って、 Wasabi にあげているファイルに対して Pre-Signed URL を作成したので、その方法についてのメモだよ。 適当に AWS Tools for PowerShell をインストールする。 $ Install-Modu…

Express で application/json じゃないけど JSON で振ってくるものを良い感じにパースしたい

Git LFS のプロキシサーバーを Vercel に投げつけたんですが、そのとき req.body が undefined だったので、その対処法としての方法を紹介します。 Express (Vercel) を使ってる場合、 app.use(express.json()) で JSON に対応できるようになっています。 し…

Roslyn で EditorConfig を使ったテストをしたい

今日は Roslyn の記事です。また触っているのでね。 今回は、比較的最近対応していた (気がする)、 Roslyn 経由での EditorConfig の扱いについてお話しします。 Roslyn では、コード内で以下のようにすることで、 EditorConfig から設定を引っぱってくるこ…

contentlayer でらくらく Markdown ブログサイト構築

ここ最近は Unity の記事ばかりでしたが、今回は Node.js のお話と言うことで、最近お気に入りのライブラリー、 contentlayer について紹介します。 contentlayer は名前の通り、 Next.js などのコンテンツ周りを良い感じに取得してくれたり、コンパイルして…

Unity の UXML で作成した独自のコントロールで、子要素を取得したい

前回は UXML で独自のコントロールを作成しましたが、今回は子要素を取得していろいろやってみようと思います! 渡し方は Unity 公式ドキュメントで触れられている slot ではなく、単純に以下のような子要素 (ここでいう TabContent )となります。 <controls:Tab> <controls:TabContent title="全体設定"> </controls:TabContent> </controls:Tab> とい…

Unity の UXML で独自のコントロールを作成したい

前回はコールバックを作成しましたが、今回は独自のコントロールを作ってみましょう! ということで、早速 UXML と C# スクリプトを書きます。 たとえば、こんな感じのメッセージボックスを作りたい場合は、 以下のような UXML になると思います。

Unity の UXML で Binding したフィールドの変更を受け取りたい

C# + UXML でエディター拡張を書いている際、 Binding 中の変数に対して、値が代入されるタイミングである処理を呼びたい、みたいなことはあると思うんですが、その方法の紹介です。 といっても Unity 2019 と 2020 では微妙にやり方が変わっているので、今…

Unity の UXML + USS で Media Query を実現する

みなさん Unity 2019 辺りから搭載されてる UXML と USS 使っていますか? Web で調べてもほぼほぼ情報が出てこないこいつ、 Web 界隈であり WPF 界隈でもあったわたしからすれば天国のような開発環境なんですが、 CSS の弱めのサブセットということでしかな…

Rust から Ethereum の JSON RPC を呼び出したい

なんやかんやで仕事で Ethereum に関わっているんですが、こいつの JSON RPC を呼び出したいときがあるので、その方法のメモ。 なぜわざわざ Rust 経由でやっているのかは数日後~数週間後にわかります。きっと。 ちなみに 1 度だけこれを言ったらミュートに…

Blender で頂点の位置を特定の軸に揃えたい

Blender で頂点の位置を特定の軸に揃えたいということがまぁまぁあるような気がするんですが、それの方法のメモ。 やり方は簡単で、 揃えたい頂点を選択 スケール編集モードに入る (S) 揃えたい軸を指定 (X, Y, Z) サイズを 0 にして決定 これだけ。簡単! …

Next.js でサイトマップを生成したい

サイトマップ送信しないと永遠にインデックスされなさそうなので、作って Google に投げつけるよ! ということで、いつも通りライブラリーの導入から。 $ yarn add next-sitemap --dev 今のところ next-sitemap で検索すると日本語記事では build の最後にや…

UnityPackage を Unity なしで作成できる GitHub Actions を作ったよ

昨日は仕事でも趣味でもひたすら GitHub Actions と戦っていましたが、その成果! ということで、 Unity なしで UnityPackage を作成できる GitHub Actions を作りました。 使い方は簡単で、こんな感じにするだけで、 UnityPackage を作れます。 name: "Auto…