【Fallout4 CreationKit】Mod Organizer v2.x で起動する方法

インストール方法

Fallout 4 の Creation Kit は Steam からダウンロードするようになりました。
Fallout 4 があるフォルダにインストールしないと起動しません。

Mo2への登録方法

Mo2 から起動する場合、以下の手順で登録を行います。

1
歯車のアイコンを押す
※マウスオーバーすると「Mod Organizer を経由して起動できる実行可能ファイルを構成する」を表示されます。

2
以下のように入力
タイトル Creation Kit
実行ファイル インストールした Creation Kit の実行ファイルを選択
開始フォルダ インストールした Creation Kit があるフォルダを選択
Steam AppIDの上書き…をチェックするとテキストボックスが表示されるので 1946160 を入力

3
追加、または、変更ボタンを押す

Mo2から起動する方法

Mo2 の「実行」ボタンの隣にあるプルダウンリストから Creation Kit を選択して、「実行」ボタンを押す

資料

Fallout4: Creation Kit の AppID が掲載されている Steam の公式ページ
https://steamdb.info/app/1946160/

【C++】Visual Studio Code で MinGW を使って C++ の boost をコンパイルする

・Visual Studio を無料で使える人数を超えてしまう
・エンタープライズ企業に当てはまる

などの理由で、会社や派遣先のクライアントが Visual Studio Professional のライセンスを用意してくれない場合に Visual Studio Code を使うことになります。
C# はわりと良い子なのですが、C++ のセットアップはすこぶる面倒です。
ググっても英語サイトや古い情報、不十分な情報の断片ばかりヒットするので、Cygwin や Linux 環境でコンパイルした経験がない人にはハードルが高いと思います。
個人利用とか、特にこだわりがないなら Visual Studio を使った方が断然良いです。

Visual Studio Code で C++ の boost が使えるようになるまで、2時間くらい格闘したので、セットアップ手順を書きます。

続きを読む 【C++】Visual Studio Code で MinGW を使って C++ の boost をコンパイルする

【.Net C#】Thread.Sleep と Task.Delay が遅い

ゲームを作るときに Unity を使ったりする場合は気にする必要がないのですが、そういったツールを使わない場合、FPS を固定させるために1フレーム未満で処理が完了したら残りの時間待つ…という処理が必要になります。

※本稿での FPS は、ファーストパーソンシューターの略ではなく、フレーム・パー・セカンド(毎秒のフレーム数)のことです。

そうしないと、フレームレートが一定にならないので FPS も一定になりません。
ゲームのスピードが毎フレームバラバラになり、カクカクした動きになります。

FPS 60 の場合、1フレームは 16.6666…ミリセカンド以内に処理する。
FPS 30 の場合、1フレームは 33.3333…ミリセカンド以内に処理する。

ゲームループ(float delta_time) {
 ゲームの色んな処理をする
 if (1フレーム未満で処理が終わってる) {
  余った時間待つ
 }
 次のフレームの処理へ
}

疑似コードで表現すると、上記のような処理になります。
本稿では、上記疑似コード中の「余った時間待つ」処理を .Net を使って実装する場合の注意点について説明します。

続きを読む 【.Net C#】Thread.Sleep と Task.Delay が遅い

【Python】3.x系で sys.stdin や input() でエラーが出るときの解決方法

Uninstall Python 2.x from your computer.
Pyton 2系をアンインストールする。

UnicodeDecodeError: ‘cp932’ codec can’t decode byte バイトコード in position 行番号: illegal multibyte sequence

3.7 系から 3.9 系に変えたら、UTF-8 で記載したテキストファイルの読み込みでエラーが出るようになった。
これは open(パス, ‘utf-8’, モード) とエンコードを指定することで出なくなる。

【C++/C#】Closure(クロージャ)って何?

C++ を使っているチームのソースコードを見てるとクロージャという言葉をちょいちょい目にするのですが、C# だと全く見ないですね。
厳密な定義はないっぽい(ぼんやりとした定義はある)ので、人によって認識がバラバラです。
なので、「関数オブジェクトのことっぽいけど、なんでクロージャって言うんだろう?関数オブジェクトとは違うの?」という疑問があったので調べてみました。

続きを読む 【C++/C#】Closure(クロージャ)って何?

【Unity】手軽に Addressables Assets System を使う

Addressables(旧称 Addressables Assets System)(以下、アドレッサブル)はアセット・バンドルを使いやすくしたものですが、それでも簡単なテストプロジェクトで使おうとすると重く感じます。

パッケージをインストールして、グループ作って、アドレス設定して、ビルドして、非同期読み込みして、あ、using しないとメソッド呼べない、どの名前空間使えばいいんだっけ…?

これだけやることがあれば重く感じるのも無理ないです。

ということで、「手軽にアドレッサブルを使う場合はここを見ればOK」という記事を書くことにしました。

続きを読む 【Unity】手軽に Addressables Assets System を使う

【Unity】衝突時に角度を固定する

ハンマーを的にぶつけて刺すゲームを想定(物理エンジンあり)。

何もしない場合は、こんな刺さり方もします。


ハンマーの柄が的に刺さるのがOKなら問題ないです。

的は板とかコンクリートブロックみたいな硬いものを想定しているので、ハンマーの柄が的に刺さることを想定していない場合はNGになります。

NGの場合はそれっぽく見せる必要があります。

続きを読む 【Unity】衝突時に角度を固定する

C# でツリー構造のデータを使う

なんで .Net にツリー構造のコレクションがないんでしょうね?

TreeNode と TreeView は GUI 用。
Hierarchy は Microsoft SQL Server Analysis Services 用。
TreeElement は Microsoft Docs で検索してもひっかからない。

欲しいのは純粋なツリー構造のデータを扱うためのコレクションであって、余計なメンバは要らない…。
私が探した範疇では .Net には見つかりませんでした。

続きを読む C# でツリー構造のデータを使う

【Unity】スナップ処理を作る(2D用)

スナップ処理とは、UI によくある、何かのオブジェクトにある程度近づくと、くっつく(ように見える)処理です。
正確には、一定の場所に留める処理です。

本稿ではスナップ処理を Unity で作る方法について説明します。
細かい点までは説明していませんので、自分ひとりで Unity を使ってゲームを作れる中級者以上の方を対象としています。

執筆時に使用した Unity のバージョンは、2021.2.3f1
Windows10(Home) 64bit 版で作成し、動作確認しています。

続きを読む 【Unity】スナップ処理を作る(2D用)