TextMeshPro の隠しタグ一覧

はじめに TextMeshPro には、 ヘルプ に載っていないタグやパラメータが一部存在します。 それらを紹介していきたいと思います。 本稿の内容は TextMeshPro 3.0.6 で確認しています。 ちなみに、タグの長さの上限は 128 文字です。 <link> タグなどで長い URL を直</link>…

TextMeshPro でピクセルフォントの影・縁取りをつける

はじめに TextMeshPro は、 Unity でテキストを扱ううえでもはやなくてはならない存在です。 その表現力の高さは皆さんもご存知でしょう。 ところが、ピクセルフォントを扱うとなると数々の難がある、ということはあまり知られていないかもしれません。 影・…

まもけん2 攻略シート

下に同じく、スプレッドシートのままだと検索に引っ掛からない可能性に思い至ったので、リンクを貼っておきます。 魔物娘と不思議な冒険2 (steam) シートへのリンク

Cuisineer 攻略シート

スプレッドシートのままだと Google 検索に引っ掛からない可能性に思い至ったので、ここにリンクを貼っておきます。 RTA のチャートを考えたいなどあればご利用ください。 Cuisineer (steam) シートへのリンク

Lerp 手法 5 選

はじめに Lerp というのは 線形補間 を行う関数で、直近の 2 点間を直線で結んだとき、位置 (の比率) t にある点の値を返します。 C# では System.Numerics.Vector3.Lerp や .NET 8 から実装される Double.Lerp があります。 これらよりは Unity の Mathf.Le…

Unity で C ネイティブプラグインから __m128(i/d) 値を送受信する方法

はじめに C プラグイン側にこういう関数があって、これを Unity (C#) 側から呼びたいとします。 __declspec(dllexport) __m128d nextDouble2(rng_t *rng, __m128d min, __m128d max) { // do something... } なお、 __m128d は double 型を 2 つつなげた SIM…

詳説 Ziggurat 法 ~ 正規分布・指数分布乱数の高速生成

はじめに 正規分布 や 指数分布 に従う擬似乱数を生成する際、 Ziggurat 法 を用いると高速に生成することができます。 本稿では、この Ziggurat 法の仕組みや実装について、できる限り詳しく解説していきたいと思います。 はじめに Ziggurat 法以外の手法に…

続・ UnityEngine.Random の実装と性質 ~ rotation(Uniform) の謎

はじめに 前回の記事 から調査が進んだので、 UnityEngine.Random の実装と性質についての追加情報をまとめました。 調査環境は Unity 2022.2.0b14 (Windows) です。 なお、調査は入出力の観測にて行っているため、実際の計算式や手順と異なる場合があります…

JDK 17 における擬似乱数生成と LXM ファミリについて

はじめに 2021/09/14 に GA となった JDK 17 では、 擬似乱数生成まわりの強化 が行われました。 更新点を見ると、 LXM という新しい擬似乱数生成器が実装されているようです。 しかし、このアルゴリズムについて聞いたことがなかったため (実装当時) 、調べ…

JDK にバグ報告してみたおはなしと、 Java における LXM の不思議な実装について

はじめに どの擬似乱数生成器が速いのかを BenchmarkDotNet で調べるために、いろいろな擬似乱数生成器を C# に移植して遊んでいたのが発端です。 Java では、JDK 17 から LXM ファミリという擬似乱数生成器が追加されています。 簡単に説明すると、線形合同…

Unicode の入力・表示テストに使える文字(列)

はじめに アプリやゲームにおいて、「自由入力」のテキストボックスやそれを表示するラベル (ユーザ名・コメント欄・etc.) などを安易に設置すると、想定の斜め上を行く妙な文字(列)を入力され、意図しない表示・処理になることが多々あります。 本稿では、…

ブルアカ二次創作 STG を作った ~ 開発裏話

はじめに #ブルアカ シューティングゲームが完成しました…! https://t.co/pJT1RXB3ZB モモイ/ミドリ/アリス/ユズ を操作してミレニアムのつよい人たち+αと戦います。 PC のブラウザから気軽に遊べますのでぜひ #ゲーム開発部からのお願い pic.twitter.com/r…

.NET 6 (Preview) における System.Random の実装変更

はじめに 2021 年 2 月 に、 .NET 6 Preview 1 が公開されました 。 なんとここで System.Random の仕様に大きめの追加・変更があったようなので、紹介します。 ※ 本記事の内容は .NET 6 Preview 2 で確認しています。.NET 6 のリリース版では内容が変更され…

SCP-1214-EX ~ SCP-1214 の再現実験

補遺1214-4: 20██/██/██ に、 SCP-1214 の再現実験に成功したと主張するウェブサイトが財団の Web クローラによって発見されました。 + 公開されていたウェブサイトの内容: という体で始めます。 本記事では、 SCP-1214 - 特異乱数生成プログラム (オリジナ…

.NET System.Random の実装と欠陥について ~ 重箱の隅をつつきたおす ~

はじめに .NET (C#) には、組み込みの擬似乱数生成器 System.Random が用意されています。 ここでは、 System.Random の実装と性質・ひいては欠陥について、可能な限り深くまで調べて難癖をつけていきます。 結構いろいろあって内容が増えてしまったので、雰…

YouTube の動画をアラームにして、推しの声で目覚める

はじめに 私は VTuber をしばしば観る人なのですが、寝る前に「朝配信」の予約枠を開きっぱなしにしてアラーム代わりにすることで、快適に起床できた経験がありました。 (人の声が良い感じなのでしょうか…?) しかしこの手法には、朝の時間帯に配信がない…

.NET 標準ライブラリの新機能と、乱数生成における利用

はじめに 2020/11/10 に .NET 5 がリリースされました。 何気なく MSDN を見ていると、結構便利なメソッドがちょくちょく追加されていることに気づいたので、擬似乱数の実装(または、何らかの数学的処理や黒魔術)で役立ちそうなものを実例と合わせてピッ…

Z3 Solver で擬似乱数の内部状態を復元する+α

はじめに 擬似乱数の出力列から内部状態を復元することができれば、未来予測が可能になります。 以前の記事 でその一部を紹介しましたが、その構造についてよく理解して解析する必要があるなど、手間がかかっていました。 ここでは、ツールを使っていい感じ…

乱数を巻き戻す

はじめに (ほぼ) 最大周期を実現している擬似乱数生成器は、状態を巻き戻す(逆方向に進める)ことができます。 例えば xoshiro256 が、以下のように一見ランダムな内部状態を持っていたとしましょう。 var state = new ulong[] { 0x010F4C454914CD78, 0x83A…

UnityEngine.Random の実装と性質

はじめに Unity では、組み込みの擬似乱数生成器として UnityEngine.Random が用意されています。 この記事では、その実装や特徴について追っていきます。 ※本記事の内容は Unity 2020.1.3f1 の Windows Editor にて確認したものです。 内部実装 UnityEngine…