【C#】その例外、使ってもいいけど使っちゃダメです

Sonar Lint を使わなければ気づかなかったシリーズ

Sonar Lint で警告を食らう度に記事を書いてる気がしますが、有用な情報なのでスルーしない方が良いと思います。

“【C#】その例外、使ってもいいけど使っちゃダメです” の続きを読む

山の牧場まとめと考察

私は北野誠の「茶屋町怪談」で聞いたのが最初だったと思います。
山の中にある不可解な牧場のお話です。

発見したのは【新耳袋】の著者、中山市朗 氏。
↑の動画で中山氏が話している内容を年代別にまとめました。
情報量が多いので、かなり長いです。

まとめの後、私が調べた内容を元に考察を行っていきます。
調査はネット情報(噂話などは除外し資料のみ)と書籍のみです。

この記事はまだまとめている最中なので、今後内容が変わる可能性があります。
いつどこが変更されたかが分かるよう、更新履歴を記載しています。

更新履歴

2024/05/05
「謎のエンジン音について。」にアポカリプティック・サウンドを追記。

2023/08/17
「北野誠が夜中に目撃した光は何か?」
「謎のエンジン音について。」を追記。

2023/08/13
公開

“山の牧場まとめと考察” の続きを読む

【UE5】プレイヤーを追いかける最小のAI

ナビメッシュを使ってパス検索しつつ、プレイヤーを追いかけるだけのAIを作ろうとしたのですが、

「最低限何をすれば良いのか?」

…という情報は、調べても出てきませんでした。

調査しながら試行錯誤して、動作するものを作成。
そこから不要な部分を削ることで、

「何が必要なのか?それは何故必要なのか?」

…が分かりましたので、本稿で共有したいと思います。

本稿は初心者向けです。
C++ は使用せず、ブループリントを使用します。

動作環境
UE 5.4 と 5.3.2
Windows 11 Home

“【UE5】プレイヤーを追いかける最小のAI” の続きを読む

【映画】『メッセージ』で描かれる時間の概念と未来人ネタ

こちらの映画の「時間の概念」についての考察です。

映画の内容については一切触れていませんので、ネタバレにはならないと思いますが、心配な方は本稿の閲覧をお控えください。
また、筆者は物理学全般についての詳しい知識がないため、本稿の内容は筆者の空想、あるいは、SF作品だと思ってください。

“【映画】『メッセージ』で描かれる時間の概念と未来人ネタ” の続きを読む

【.Net C#】Task をもっと手軽に使いたい

.Net には、マルチスレッドの処理を使いやすくした Task クラスがありますが、使いやすいとは言え、かなりの知見が必要になります。
System.Threading.Tasks 名前空間には、クラスだけでも以下の種類があります。

.Net 8.0 の System.Threading.Tasks 名前空間に含まれるクラスの一部
※タップまたはクリックすると大きい画像で表示します。

.Net のような、あらゆるシチュエーションで使えるように構成された API では、多種多様な機能を用意するのは正しいと思います。
ただ、スレッドプールの恩恵をつまみ食いしたいようなときには、学習コストが高すぎます。
そこで、学習コストをほとんど必要としないマルチスレッド用クラスを作りました。

“【.Net C#】Task をもっと手軽に使いたい” の続きを読む

古(いにしえ)の技術、固定少数点数とは?

少数を100倍とか10000倍とかして整数で扱う手法です。

浮動小数 3.14 ⇒ 固定少数 314

今のゲーム開発では使わなくなったんじゃないでしょうか。
正確には「固定少数点数」ですが、長いので「固定少数」と呼ぶことにします。

メリット
1.昔のハードウェアでは float や double より int の方が計算が速かった。
2.float や double 特有の誤差が出ない。

デメリット
1.int を float や double に変換するのが面倒。
2.速度の問題なら、今のハードウェアでは float か double で良い。
3.誤差の問題なら、誤差が出ない実数型を使えば良い。

“古(いにしえ)の技術、固定少数点数とは?” の続きを読む

【Python】参照渡しなんてなかった

検索すると「Python には参照渡しがある」という情報が多数ヒットするんですが、正しくは以下の記事の通り。

参照渡しと同じことをしたい場合はどうすれば良いのか?

Python は戻り値を複数返せる

20年以上前に MIDI でアレンジした悪魔城ドラキュラⅡの BGM が出て来た

KONAMI(C)

引っ越しで荷物を整理していたら、古い USB メモリが出て来たので、中身を見てみたら、20年以上前(1999年のものもある…)に作った MIDI ファイルが出てきました。

USB メモリが普及するまでは CD-ROM や DVD-ROM でバックアップしてきたファイルです。
USB メモリにコピーしたことをすっかり忘れていました。
当時のデータは、もうなくなったものだと思っていたので、ビックリするやら、嬉しいやら、恥ずかしいやら…。

『悪魔城ドラキュラⅡ~呪いの封印~』の BGM を MIDI でアレンジしたものや、オリジナル楽曲も入っていました。
せっかくなので、バックアップも兼ねて公開しようと思います。

“20年以上前に MIDI でアレンジした悪魔城ドラキュラⅡの BGM が出て来た” の続きを読む

【C#】OpenAI の GPT 3.5 を使って AI とチャットするプログラムを作る【.Net Standard 2.0】

興味があったので、こちらの記事を参考に ChatGPT と対話するコンソールアプリを C# で作りました。
今回作成したのは、OpenAI との通信部分だけで、アバターのモデル表示などは扱っていません。

本稿では、OpenAI の API を利用し、GPT 3.5 で通信する方法、OpenAI の API を利用する際の注意点などについて説明します。
本稿に掲載しているソースコードは、以下の環境で動作確認しています。

Visual Studio 2022
.Net Standard 2.0
C# 7
Windows 11 Home

“【C#】OpenAI の GPT 3.5 を使って AI とチャットするプログラムを作る【.Net Standard 2.0】” の続きを読む

【Unity】C#スクリプトをDLL化する手順

この記事では Unity の C# スクリプトをDLL化する手順と注意点について説明します。

執筆時に扱った Unity のバージョンは 2021.1.6f1 です。
プラットフォームは Windows 10 (64ビット版) を対象としています。

2023/10/15 修正
Visual Studio 2022 ではターゲットフレームワークを .Net Standard 2.0 に変更する方法が違うので記事を修正しました。

“【Unity】C#スクリプトをDLL化する手順” の続きを読む