RimWorldのAI art modを動かす覚書

RIM WORLDのAI art mod

RimWorldというゲームで、AI art modというユーザ作成モジュールを動かす覚書。

技術的な話なので、興味のない人は読み飛ばそう。特に面白い話は出てこない。

RimWorldのAI art modのローカルサーバを立てる

まず、mod制作者が出してくれてる情報がコレ。

RimWorldのAI art modの公式ページ(サブスクライブして、ゲームのオプションでmod有効にすると使える)

RimWorldのAI art modサーバの立て方(英語)

現状、デフォで指定されてるサーバは502(Bad Gateway)エラーが出て繋がらないので、やりたい人は各自ローカルサーバを立てろということになってる。

AI Art サーバのモジュール(とかソースコード)github

ここからソースコードやモジュールをダウンロードして、ローカルのパソコン上で動かすようにする。

仕組みとしては、dockerというパソコン内で仮想環境を動かす仕組みで自分のパソコン上でサーバを動かす。modの設定項目にある「サーバの場所」にローカルサーバを指定すれば動くはずである。

まず、Windowsにdocker desktopという仮想環境動かすためのベースソフトをインストールする。

Windowsへのdocker desktopのインストール

インストールして動かすにはdockerへのアカウント登録が必要なのでまあ、それなりにやっておく。

ソースコードをzipでダウンロードして展開し、コマンドプロンプトでdoker compose upと打ち込むと、なにやら必要ファイルをかき集めてきて、仮想環境のセットアップが始まる。

放置しておくと、5分くらいで「Windowsのポート番号を許可するか?」みたいなウインドウが出て、許可するとdocker desktop上でなんか動き出した。 ↑この画面は、仮想環境イメージにこういうのが登録されたよ、というものでなにか動いたということはわからない。私の間違いである。 Containersをクリックすると、動いてるコンテナが確認できる。

これでもう、mod使えるのかな?

modのオプションで、サーバを以下のように指定すれば動くはずである。

http://localhost:8080/generate

まあ、きっとそんな簡単に動かないだろう。試してみよう。

まず、Steam版RimWorldを全体に話を進める。Steam版以外があるのかは知らない。

AI artというmodをSteamのライブラリ→RimWorld→ワークショップからサブスクライブし、ゲーム開始後にModsを選んで、有効にする。

有効にするには、Modsの画面でAi artをクリックして選択肢、有効ボタンをポチると「有効」の欄にAI artが表示されるようになる。「変更を適用して保存」をクリック

続いて、オプション→Modオプションで、AI art modのサーバを書き換える。

そしたら…予想外に時間かかるけど、できた!

アバターがコレなので、まあまあ違和感なく生成されていると言っていいだろう。

生成するには、キャラをクリックで選択すると、文字化け気味で「Click to generate image」という虫眼鏡のアイコンが出現するのでクリックして数分待つだけだ。

こんな感じで出てくる。カーソルをあてると、おそらく画像生成に使ったであろうプロンプト文字列が表示されている。

男性も出しておこう。左に出てるピクセル感ある画像は、別のmodで出しているものだ。

関連)ピクセルでrimwordのキャライメージ出すmod Avatar デメリットは、どうやら画像生成をCPUのみでやっているらしく、すごく遅い点。なんかイジればGPU使ってくれるのかな。

とりあえず、予想外にあっさり動いた。画像生成のモデルを差し替えできるともっといいかもなぁ。

RimWorldって何、AI art modなにそれ?

RimWorldは、自動的に動く入植者に指示を出してコロニーを運営して生活させ、最終的に宇宙船で宇宙に飛び立つというゲームである。

RimWorldのアバターや登場するアイテムはアイコンのようなシンプルな形状になってて、主にプレイヤーの想像力で世界観を作り上げる感じになっているのだ。

まあ、想像力もいいんだけど、そこにAI生成で描かれたイメージ画像を入れたらもっと盛り上がるんじゃない?というのがこのmodである。

このmod制作者が好意で立てたであろうサーバがあるのだが、おそらくアクセス過多とかで今は使えなくなっている。でも、すごくこのmodが気になってしまった私は、ローカルサーバを立ててどうにか動かしてみたいと思った次第である。