FM TOWNSプログラミングにおける0.5ドットスクロール & アスペクト比変更テクニック

全国2~3人くらい(自分含む)の現役FM TOWNSプログラマーの皆様、お待たせいたしました。
令和初というかインターネットにあるデータでは初かもしれない富士通が1989年に発売したパソコン「FM TOWNS」におけるCRTCを直接操作してのグラフィックプログラミングテクニックの一例、0.5ドットスクロールやアスペクト比の変更方法をご紹介いたします。これでTOWNSでゲームが作れるぞ!(作るとは言ってない)


なんでこんな需要ゼロな記事を書くかというと、FM TOWNS用横スクロールシューティング「ライザンバー」(データウエスト社発売)が当時「0.5ドットスクロール」という摩訶不思議な宣伝文句を言っていて、あれはスプライト面と背景面で解像度が違うからなんだとかいう話が某所であったものの、そもそもFM TOWNSはスプライト画面を表示できる画面モードは解像度256*256(240)のみに制限されてしまうという制約があり、スプライト有効時はビットマップ面側は横512ドット表示ができないので倍表示論なんて無理でしょ、検索して調べた限りCRTCを直接操作すると細かい解像度単位で位置を指定できるようになるっぽいからそれでは?と思ってたんですけど、その操作方法もわからずあやふやなまま知ったかぶっても自称TOWNSユーザーの名が廃る、あと不適切な解説が後世までそれが正史かのように残り続けるのは歯がゆい、ということで調べてみました。この記事自体に誤った情報が載っているかもしれませんが、その時は許して。
今までHigh Cコンパイラ付属の関数解説に載っていたTBIOS(TownsOSの各API)経由でのグラフィック画面設定しかやっていなくてCRTCの直接操作の方法がわからなかったが、当時のフリーソフトの説明ファイルを調べていたら「参考:Oh! FM 1991年1月号 君にもできる0.5ドットスクロール」という文を見つけたのでこれだと思い、ちょうどタイミングよくヤフオクにその該当記事が載っているOh! FM 1991年1月号が出品していたので入手。これで勝つる!!!

※追記:後で確認したところフリコレ4にもテキストファイルで該当記事の大まかな説明とサンプルプログラムが収録されていることを確認。

f:id:BCC:20220201203229j:plain

はてさて0.5ドットスクロールなんていう細かいスクロールを実現した方法とはいかに!?ここで解説している内容は上記の「Oh! FM 1991年1月号 君にもできる0.5ドットスクロール」(p.150)を参考としているが、そのまま記事内容を引用してもわかりにくいと思うので自分が読んだ際にわかりやすいと思う文にまとめておきました。

 

いきなり本題に入る前にFM TOWNSのスプライト機能について簡単に解説。
FM TOWNSのスプライト機能は解像度256*256のフレームバッファ上に16*16サイズのスプライトを最大1024枚表示するもので、スプライトは32768色中16色か32768色ダイレクト指定・上下左右反転と90度回転・縦横独立で1/2に縮小表示する機能を持っている。一般的なラインバッファ方式ではないフレームバッファ方式ということで、当時は疑似スプライトと揶揄されていたが、当時のセガ製アーケード基板(TOWNSローンチタイトルだったアフターバーナー2のXボードもフレームバッファ方式)やセガサターンでも同じ方式が採用されたスプライトの定義(画面上に独立したキャラクタを高速に表示させる)に沿ったものだ。俺たちのセガはまがい物を出していたってのか!?

ただ、90度なんていう中途半端な回転やこれまた中途半端に8ドットサイズのみにしか縮小できないとか、自由な変形機能も実現可能とするフレームバッファ方式のスプライトの利点が出ておらず、転送速度の問題で60fpsを維持して表示できるスプライトの枚数は初代機で約220枚・後期の白TOWNSでも約280枚程度という制約がある。
この60fpsを維持して表示できる枚数制限なんだけど、High C コンパイラ付属の説明書のスプライトの項目やTownsエミュレータ津軽」の情報から読み解くと、初代機においてはスプライトを表示しているレイヤを全消去するのにVSync開始時から約32マイクロ秒後に、スプライト1個を表示するのに約75(白TOWNSは57)マイクロ秒かかるようなので、32 + (75 * 220) = で約16.6ミリ秒、つまり1フレームあたりの時間ってことで導き出せる。1024個まで表示するスプライトを指定できるものの、転送が1フレーム時間を超す場合は次以降のフレームも使って残りのスプライトを転送し続ける。指定された枚数分のスプライトを転送中かどうかはスプライトコントローラにあるレジスタのフラグが立つので、これでスプライトの描画が終わったかどうかソフトウェア側から確認できる。

※追記:その後入手したoh! FM TOWNS 1991年12月号 p.134「謎のスプライト個数制限を追う」を参照すると、垂直同期周期が変わる関係で画面モードによっても微妙に転送枚数が異なってくるようだ。

何から何まで中途半端な仕様だが、それでも最大128枚表示(なおソフトウェアの改良で抜かれる)のX68000よりは表示枚数も多く、グラフィックパターンの定義数も論理上は最大896枚(16色の場合。スプライト表示数やパレット数を削って増やす方法も実はあるが今回は省略)、32768色中16色指定のパレット数も256個と他のスプライト機能を持つコンピュータよりは表示性能はよさそうなもの。

問題なのはここから。スプライトを表示する転送先のフレームバッファはレイヤ2枚だけある表示画面を丸々1枚を消費、もう一枚の画面は4096色中16色かダイレクト32768色指定のビットマップ面しか指定できないというとんでもない仕様。FM TOWNSには640*480 1667万色中256色という画面モードがあるが、これを指定してしまうとこの256色 レイヤ1枚しか表示できなくなる。ここがFM TOWNSアーケードゲーム作りに向いていない部分の一つとなる。背景面が1枚しかないので多重スクロールするにはスプライトも併用しないといけなくなるし、背景面を描画するにしても16色のビットマップは色数が少なくて地味な画面となるか、32768色だとスプライト面と同じ色数・解像度で馴染むものの書き換えに必要なデータ量が多くてあまり動きが激しい描画が行えない。

表示の優先順位もドット・ライン毎に変更といったこともできず、必ずビットマップ面・スプライト面のどちらかが全域上になるので枠のないステータス表示とかもしたかったらこれらもスプライトで描かないといけない。

 

スプライト専用のフレームバッファRAMを搭載して独立したレイヤ表示が行えたり、VRAMを全SRAM化してスプライトの転送可能枚数を増やしセガYボードやNEOGEOのようにスプライトをBGのように扱えればよかったものの、当時既に30~40万円近くしていたFM TOWNSをさらにコストアップするような仕様強化は行えなかったのだろう。せめて、ビットマップ面に仮想画面512*512の1667色中256色画面を作ることができなかったのか。

 

※追記:スプライト表示のデモ・ベンチマークソフトを作成してみた

実行ファイルとソースコード

FM TOWNSのスプライト最大表示数の1024枚までのボールを画面上に表示させ、表示枚数を1~1024枚まで自由に変更と画面モードの切り替えが行え、現在のフレームレートを表示させる。60fpsを維持できるスプライト数やフレームレートを低下させてそれ以上の枚数だと実際にどのように画面が動かせたか実際の動きで確認できる。

FM TOWNSエミュレータ津軽」及び実機FM TOWNS マーティーで動作確認。エミュレータ「うんづ」では正常に動作しないが、マーティーで正常に動くので津軽の方で試すのが正解。

 

 

  • 0.5ドットスクロールの正体

さて、またまた本題の0.5ドットスクロールに入る前に一つ質問。そもそもFM TOWNSで横1ドットスクロールってどうやれば実現できるんでしょう?常識的に考えてできないと思います。
何を頓珍漢なことを言っているんだ。VRAMの表示位置指定を1ドット単位で指定できないのか、と突っ込まれそうですがそうです、できないんです。
というのもレイヤ0・レイヤ1とそれぞれの画面左上表示開始のVRAMアドレスを指定するレジスタFA0(レジスタ番号17)・FA1(レジスタ番号21)は65536(16ビット)の値範囲、たいして仮想画面の大きさは最大で16色2画面・256色1画面時に1024*512ドットの524288、最小の32768色2画面時でも256*512ドットの131072となっており、524288/65536=8・131072/65536=2となるのでレジスタを最小の1づつ増減させても2~8ドットづつ横に移動していくだけのスクロールしか実現できない(縦スクロールは横ドット/2~8分増減させれば1ドットづつスクロールできるので問題ない)。TBIOSでやってもそう。

ならもう0.5ドットスクロールは何かアブナイクスリをキメた際の幻覚だったのでは?と一瞬悩んでしまうが、実は水平アジェストレジスタHAJ0(レジスタ番号18)・HAJ1(レジスタ番号22)の値を1減算するとドットクロック分表示が右にズレる、逆に1増算すると左にズレて表示されるのです。そしてこのドットクロック分の表示ズレはハイスキャン(31.47KHz)表示の画面モードで0.5ドット、ロースキャン(15.73KHz)表示の画面モードで0.25ドット、インターレース表示の画面モードで0.2ドットとなる。
偶数分のスクロール位置はFAで指定してVRAMの表示位置を決め、奇数・小数点のスクロール位置はHAJで表示そのものをズラして実現する、これこそが本来TOWNSでは無理なはずの1ドットスクロールも、そして大半の他機種でも実現が難しい「0.5ドットスクロール」をも実現させる正体なのだ。

はい正直、ドットクロック分ズラして表示させるより普通に1ドット単位でVRAM表示位置指定できるようになっててくれたほうがメンドクサくなくて嬉しいです。
宣伝文句ではあったけど、厳密には画面のスクロールを表現するための用途ではないものまで使わないとスムーススクロールが行えないCRTCの不自由な制約をどうにかして解決するための苦肉の策でしかなかったんですね。


なお、横スクロールするゲームを作るうえでかなり重要なテクニックなのに、FM TOWNSのハードウェアレジスタに関する細かい内容を記載している「FM TOWNSテクニカルデータブック」(通称赤本)にはこのことは一切かかれていないようだし、当時の一部ソフトメーカーの認識を確認したところTOWNSでは頑張って書き換えないとスクロールは無理と思っていた会社があった模様。
なんでデータウエストはこの仕様を知ってたんだよ・・・。

 

FM TOWNSのスプライト機能の解説で解像度256*256と記載したが、このまま表示するとドット縦横1:1のアスペクトとなる正方形の画面のまま表示される。ドット比率的には間違っていないのだが、当時の4:3アスペクトのディスプレイでは何も表示されない領域ができてしまうのでこれを引き延ばしたい。
方法は二つ。ハイスキャン表示の画面モードではCRTCには25.175MHzのクロックが与えられているが、CRTCのレジスタを操作することで21.0525MHzのクロックに変えられ、こうすると表示が横長となるのだ。もう一つの方法は、ロースキャン・インターレース表示の画面モードではCRTCの機能としてある画面を縦横独立して整数倍に拡大表示する機能が標準では横4倍・縦1倍となっているのでこれを横5倍に変えるだけでいい。元表示解像度は256*240なので横が1.25倍(4→5)伸びて320*240相当、つまりちょうど画面と同じ4:3比率となる。

 

というわけで該当記事内やHigh C付属のサンプルプログラムを元にしてドットクロック分ズラすことによる左右横スクロールとTBIOSの画面モード5(256*256 32768色)でCRTCレジスタを弄ってアスペクト比4:3と正方形を切り替えて表示するプログラムを組んでみました。ライザンバーはスプライト面画面モード5、背景面は仮想画面に1画面分横領域がある画面モード10を使用しているようだが、スプライト・背景が同じ画面モードでも独立して0.5ドットスクロールできることを証明するためこの設定にしています。

Googleドライブ - FM TOWNS 0.5ドットスクロール & アスペクト比変更デモプログラム

ソースコードCRTC.CがCRTCレジスタ操作やスプライトの使える画面モード5~8をレイヤ0,1両方に設定およびアスペクト比の切り替えを行う関数が記述、SCROLL.C内のScroll関数でスクロール操作を行っています。

表示する画像をSCROLL.EXPと同じディレクトリ内にSCROLL.TIFという名前のTIFF画像を256*240 32768色形式(解像度や色数が違うと動かないようになっています)で入れてEXPを実行、画像をパッドの左右でスクロール、上下で1ドットクロック分少しづつスクロール、Aボタンでアスペクト比変更、キーボードのどれかキーを押すことで終了する。

FM TOWNSの実行環境がない、デモを動かす気力がわかないという人のために動画も用意しときました。

なんとなく横スクロールといったら「グラディウス」だろって用意してみたけど、デモに使うにはわかりにくい画像だった。でも1ピクセルしか表示されないはずの星々があるのでいいか。

エミュレータ津軽」では正方形表示時にドットクロック分ズレても1ドット単位でのズレで表示されてしまうようだが、4:3時なら小数点以下の表現ができているようで1ピクセルの星々が画面右端に差し掛かった際にいきなり消えず何単位かに分かれて消えていくのがわかるだろう。

 

PS5 / Xbox Series X越えの性能を持つゲーミングPCを自作する

自分はCore i7 4790KのPCを改造UEFIなどを駆使してM2 SSDブート化したりなどして延命してきて、電源オフからの起動も数秒足らずだしゲームをやってても性能不足感を感じるシーンは極端になかったが、それでも「アイドルマスター スターリットシーズン」の最高設定(レイトレーシングオン)など一部のタイトルで一瞬だけフレームレートが60fps以下になる状況があったりともうちょっと安定して動いてほしいという不満が出てきたのと、Intelの新しいCPUアーキテクチャ「Alder Lake」世代の安価なシリーズも発売したこともあってそろそろPCの交換時期かなと思って新PCを組み立てることにした。

 

パーツ構成を考えてみたが、よくネタで言われる「PCを買うには時期が悪い」のご時世感は否めないな。CPU・メモリ・SSD・その他小物類は従来と同じ価格帯かそれ以下の水準だけど、Alder Lake世代のマザーボードだとPCI Express 5.0対応による配線の製造費や高消費電力を要求されるKシリーズ向けのVRM構成のためかミドルレンジCPUはお手頃価格なのにマザーボード込みだとハイエンド価格帯になってしまうし、GPUはマイニング需要が落ち着いても去年から価格は4~5割も上乗せされているという。1年前にGeForce RTX 3060 Tiを5.5万円(税込み)で買っておいて大正解だった。

あとPS5 / Xbox Series Xが発売したこともPC価格帯を押し上げる要因になっていると思う。旧世代の上位機種であるPS4 Pro / Xbox One Xあたりなら10~15万円クラスのPCでも上になる構成が狙えそうだが、現世代のゲーム機だとGPUの価格向上もあって20万円クラスのPCでないと全パーツにおいてゲーム機より上と確実に言える構成にできない。

PCはあくまでも多目的で使える道具であってゲーム機ではない、自分の用途もゲーム用途以外で使うことも多いのでゲーミングPCと自称するのはあまり好きじゃないんだけど、せっかく高い機械を買うのだから安い機械よりも快適に動くものじゃないと納得がいかないので今回はPS5 / Xbox Series Xの性能を超えつつそこそこの値段(安いという意味ではない)のする構成のゲーミングPCを狙った。そして選んだパーツ構成がこれ

  • CPU: Core i5 12600 (6コア12スレッド 全4.4GHz駆動) 3.2万円
  • CPUクーラー: 虎徹 Mark II + LGA1700用リテンションキット 4,000円
  • メモリ: DDR4-3200 32GB 1.4万円
  • マザーボードIntel B660搭載品(ASUS TUF GAMING B660M-PLUS D4) 2.2万円
  • GPUMSI GeForce RTX 3060 Ti Twin (旧PCから引き継ぎ) 1年前に買ったときは5.5万円
  • SSD: Sumsung 980 PRO PCI Express 4.0 M2 Slot 1TB + 2TB (ヒートシンク付き) 2.2万円と3.9万円
  • OS: Windows 10 Pro (後でWindows 11に無償アップグレード可能) 1.8万円
  • ケース:Versa H18 3,000円
  • 電源:Corsair RM 750 (750W) 1万円
  • ケースファン:背面NF-A12x25(12cmファン)、前面NF-A14 PWM(14cm ファン)2個 7,000円

合計約22.6万円(税込)となった。

f:id:BCC:20220106142856j:plain

完成写真

 

PS5 / Xbox Series X越えではあるが、冷却性能や静穏性を重視しすぎたり、ゲームを何十本もインストールする癖があってSSDを2本攻勢にしたりと、ちょっと盛った構成にしているので、CPUをCore i5 12400Fに変更、マザーボードを1.5万円のものにする、SSDを1TBにだけにしてヒートシンクなしを選ぶ、OSをWindows 10 Homeにする、背面ファンはケース付属の物を使い前面14cmファンは1,500円程度の物に抑える、といった節約をすれば6万円は安くできるはずだ。価格が高騰しているGPU代を考えてもギリ税込20万以下が狙える。

 

組んだ感想としては、新PC環境は大満足な結果となった。

旧PCも8年以上前の構成、PCI Express 2.0接続とはいえM2 SSDなのでWindowsの立ち上げも数秒程度しかかからず、最新PCにしたところでゲーム以外では差は感じないだろうと思っていたが、数秒から一瞬程度に起動時間が短くなってもなんだかんだで体感で分かる差だし、CPUの差なのかHDDに入れている非インストール型のアプリですら起動が一瞬にして立ち上がる。

もちろん不満だったゲーム類で瞬間的に60fps以下になることもなくなりフレームレートの安定性は大幅に向上、Core i7 4790Kでは33~40MHz程度が実用的な設定だったFM TOWNSエミュレータ「津軽」に関しても66MHz設定にしていてもまだ動作に余裕がある速度で動く。

冷却・静穏性に関しても、旧PCのATXケースはいかんせん設計が古くて12cmファンしかつけられずストレージの取り付け位置がちょうどケースファン横でGPUへの送風の妨げとなったりケーブルの配線がむき出しでエアフローに問題があったが、新PCのケースではMicroATXとサイズが一回り小さくなっても14cmファン2個での送風となり、ストレージの取り付けやケーブルも裏面を通して行えエアフローが大きく改善された結果、負荷をかけてもあまりGPUファンの回転数が最大まで上がりにくくなった印象で静かになっている。

 

なお、ゲーミングPCの要(?)であるピカピカ光る要素は、静穏性・冷却重視でLEDなしのファンを選んだ関係上、マザーボードの右上端にあるRGBランプが虹色に光るくらいで前面の排気口やケース横のアクリル板を除いたときに申し訳程度にあるのみだ。といってもケースの装飾として全面右端を青いLEDランプバーが点灯するものがあるので、派手さはないもののちょっとだけだけどスタイリッシュ感はあるぞ。

f:id:BCC:20220106135215j:plain

 

以下は何の参考にもならない組み立て時の一部画像

f:id:BCC:20220102144554j:plain

まだCore i5 12600やIntel B660マザーボードが発売される前からケース・ファン・電源といった小物類から先に購入していったので組み立てられる範囲で組み立て。意外と前面ファンの取り付けは、エアフローを考慮して丁度よい高さと思われる位置に調整しなければならず時間が食うので先に組んでおけば時間の節約になる。

 

f:id:BCC:20220106105440j:plain

マザーボードにCPU、SSDを取り付け。ストレージ上のデータを直接GPUに転送してロード時間を短縮するという新技術「DirectStorage」が登場した際、ちょっとパフォーマンスがよくなるかなと思って、ゲームインストール用に用意した2TB SSDはCPU側のPCI Expressになる上側、OSや汎用アプリインストール用の1TB SSDチップセット側のPCI Expressとなる下側に差し込んだ。なおこのマザーボードSSDヒートシンクが組み込まれていてヒートシンク付きSSD買ってしまったのでわざわざそれを取り外して取り付けることとなってしまった。ヒートシンク付きSSD買った意味が薄い。

DDR4メモリはマザーボードをケースに入れてCPUクーラーを取り付けた後のほうが安全(CPUクーラーを取り付ける際に出っ張ったメモリに接触する恐れがある)。

f:id:BCC:20220106110417j:plain

3,000円程度で売られている虎徹 Mark IIにはLGA1700リテンションキットが付属せず、取り付けが行えないので注意。別パーツで出ているものを注文するか価格が上がる新リビジョンの物を購入しないといけない。

 

SATA SSD 2TBとHDD 4TBも旧PCから流用したが、Versa H18への取り付け方がわかりにくいのでちょっと解説しておく。

f:id:BCC:20220106130008j:plain2.5インチサイズのストレージなら、PCケースマザーボード取り付けパネルの前側(配線をケース背面に通すための穴が開いている箇所横)に上下に四か所づつフラスコ型の穴が開いている箇所があり、一か所だけ凸になっているので確認。ケース付属品の穴が開いたゴムマウンタにネジを通して先ほどのフラスコ型の穴と対になるようストレージ下部3か所のネジ穴に固定しておく。

f:id:BCC:20220106132332j:plain

今度はケース背面からフラスコ型の穴にストレージのゴムマウンタを差し込んで、前側にスライドさせてゴムマウンタが窪みにはまるようにして固定。

ケース前側から先ほどの凸となっていた一か所にネジを差し込んでまた固定するようになる。

 

3,5インチも同じ要領で電源ユニットがあるケース下部にフラスコ型の穴があるので同じようにマウンタを取り付けてスライド、ケース下部裏面からネジを差し込んで固定という形となる。

 

f:id:BCC:20220106134255j:plain

全パーツを組み込んだ完成写真。

 

あとは、ASUSのサポートサイトから念のため最新UEFIをダウンロードしてバージョンアップ、USBメモリに書き込んでおいたWindows 10最新バージョンを1TB SSD側にインストール、これもASUSのサポートサイトからダウンロードしておいたIntel B660チップセットGeForceのドライバを一通りインストールすれば設定も完了。

 

f:id:BCC:20220109221534p:plain

一応、価格や安定性も考慮してOC品ではない純正のDDR4-3200メモリを購入したのだが、SPD上でも定格で3200MHz書き込みが行われているのに、自動設定だと2133MHz駆動にしかならなかったのでXMP読み込みを指定してみたら問題なく3200MHz駆動となった。パフォーマンスにそれなりに影響すると思われるので、PCを組んでみて思ったよりも速度が出ないと感じたら見直してみたほうが良いかもしれない。

 

f:id:BCC:20220109221941p:plain

ついでに、CPUからGPUへの巨大データ転送を効率化するResizable BAR機能も有効化できることを確認。現状では極一部のゲーム(Forza Horizonシリーズ、Red Dead Redemption 2などのオープンワールド系)でしか働かないが、気分的にはマシン環境がアップグレードされたと感じるので新PCにする際は絶対に有効にしておこうと思ったので満足。

既にGeForce RTX 3060 TiはResizable BAR対応BIOSというものにアップデート済みだったので、マザーボードASUS TUF GAMING B660M-PLUS D4」のUEFI画面上部にある「Resize BAR」という項目を開いてそれをONにするだけで有効化した。他のマザーボードでは設定項目が別の場所に用意されていたり、「Above 4G Decoding」という設定も有効化しないといけない場合があるが、このマザーボードでは4G Decodingに関しては初期設定で有効なので問題なかった。

Steam版アイドルマスター スターリットシーズン Mod導入方法

Steamウィンターセール 2021で25%オフセールとなっているSteam版「アイドルマスター スターリットシーズン」(スタマス)

PS4版とは違い、高解像度・高フレーム対応の他にレイトレーシング法による影・反射表現でステージ上のアイドル達の姿を華やかに映す圧倒的なグラフィックで、NVIDIAの革ジャンおじさんも「GeForce RTXユーザーならマストバイだ」とは言っていないとかなんとか。

綺麗なグラフィックでアイドル達の姿を堪能できるのはPC版の特徴の一つなのはもちろんだが、非公式なもののModを導入して通常では遊ぶことができないゲーム体験も行えるのもPCゲーム環境ならでは、ということで今回はSteam版スタマスのMod導入方法及び一部Modを簡単に解説。

 

まずはMod統合サイト「GameBanana」のアイドルマスタースターリットシーズンのハブを開こう。

f:id:BCC:20211225021725p:plain

サイトをスクロールして気になったModを見つけたらクリックして開き、「Files」の項目にある「Manual Download」を押してまた新たなページに切り替わるので再度「Download」を押すことでそのModのファイルをダウンロードすることができる。

f:id:BCC:20211225021717p:plain

f:id:BCC:20211225021719p:plain

ダウンロードした圧縮ファイルを(7-Zipなどのソフトを用いて)解凍、今度はSteamクライアントで自分のゲームライブラリ一覧から「アイドルマスター スターリットシーズン」のタイトルを右クリックして「管理」→「ローカルファイルを閲覧」を左クリック。

ゲームデータが保存されているフォルダが開くので、「StarlitSeason」→「Content」→「Paks」を開いていき、複数のpak・sigファイルが入っているそのフォルダ内で「~mod」というフォルダを新規作成し、先ほどダウンロードした圧縮ファイル内のpak・sigファイルをその「~mod」フォルダに入れていく。ゲーム元の「Paks」フォルダにコピーしても読み込まれないので注意。

もちろん非公式なものなので導入すると不具合が発生したり、ゲームがバージョンアップした際(特にDLCでキャラクター・衣装・曲が追加された時)には定義ファイルデータの差異が生じるため、Mod側のバージョンが古いとDLCを購入しているのにDLC曲や衣装が選択できない・「破損データを検出しました。インストール状態を確認してください。」というメッセージが表示、競合するModを複数入れていると「Fatal Error」と表示されてゲームが起動しない場合があるので注意。Modがアップデートされていないか、導入するModを少なくして動くか確認しておこう。

f:id:BCC:20211231004358p:plain

不具合が生じたり導入したModを無効化したい場合は、今度はその対象のModファイルを削除すればいい。

なお、このMod導入方法は同じくUnreal Engine 4を使用しているゲーム全般で有効なので、他ゲームのModでもpak・sigファイルだった場合はUE4の可能性大、「~mod」フォルダを作ってそこに入れるという作業をすることを忘れないようにしておこう。

f:id:BCC:20211225102557p:plain

f:id:BCC:20211225021729p:plain

f:id:BCC:20211225021732p:plain

f:id:BCC:20211225021735p:plain

 

オーソドックスに衣装やステージを既存の物から別の物に入れ替えるというデフォルトとDLCだけでは物足りないプロデューサーさん向けのModはもちろんのこと、

f:id:BCC:20211225021818j:plain

こういうご時世なので全員にマスクを装着させるとか秋月律子の眼鏡を外すとか如月千早に胸パッドを入れるとかのネタ的Modまで存在する。

f:id:BCC:20211225114653j:plain

 

更にはスタマス未登場アイドル達も出す事ができちゃうのだ。

ステージ・衣装系・キャラは数が多すぎるのと権利的に問題がないのかわからないので、直接紹介するのは避けるが、ここではちょっとした改善系のModを何点か紹介しておく。

 

 

  • 起動時のロゴスキップ

ゲーム起動時に表示される各会社のロゴマークをスキップするMod

PC環境にもよるが、立ち上げてから5秒も経たずにゲームが遊べるようになるのはかなりのストレスフリーになるのでお勧め。

 

ライブ時にXboxコントローラではビューボタン・キーボードではAltキーを押すと切り替わるフォトモードで、カメラアングルも含め360度カメラを移動可能にしズームイン・ズームアウトの上限も大幅緩和するMod。

f:id:BCC:20211225021713j:plain

f:id:BCC:20211225021709j:plain

f:id:BCC:20211230143807j:plain

ステージだけでなく3D空間表示なら自由に視点移動可能にするフリーカメラModの方が自由度は圧倒的に高いが、導入が他のModと同様に2ファイルをコピーするだけで使えるので簡単なのが利点。

 

  • 髪の物理挙動変更

ヴァニラ時よりも髪先の動きがふわふわとした動きになりやすくなるMod。ちょっと固い動きに違和感を覚えていたプロデューサーさん向け。

 

  • 髪の光沢に毛を意識した線を入れる

静止画の立ち絵イラスト絵を再現するためか楕円形だった髪の光沢を、ブラーのかかった線を入れてより毛が反射しているかのように見せるMod。

f:id:BCC:20211225021654j:plain

ヴァニラ時

 

f:id:BCC:20211225021658j:plain

Glossy hair mod導入時

 

頭が立体的に見えるようになる利点はあるものの、もちろんヴァニラのデザインの方が立ち絵の雰囲気が再現されているのでもしかしたら好みが分かれるかもしれない。

 

 

  • あずさ・伊織・美希クラシックヘアースタイル

アイドルマスター2からショートヘアとなってしまった三浦あずさをロングに戻す、同じく髪型変更になった水瀬伊織をストレートに伸ばす、両サイドのボリュームが増えた星井美希もカットを行う髪型Mod類。

 

f:id:BCC:20211225021705j:plain

ヴァニラ時

 

f:id:BCC:20211225021701j:plain

クラシックヘアースタイル

アイマス2以降のデザインがどうしても受け入れがたいという古参プロデューサーさんなら導入必須だ。

Glossy hair modと三名のクラシックヘアースタイルModを導入した際のライブ動画

 

  • DualShock3(PS3)コントローラ・Switchプロコン ボタン表記

Steam版スタマスはXboxコントローラ及びPS4コントローラ(Steamコントローラサポート無効時)に対応しているが、Steamコントローラサポート機能を使ってDualShock3(PS3)コントローラやSwitchプロコンをXboxコントローラと認識させて遊ぶ際に問題となるXbox表記のままのボタン表示をそれぞれのコントローラにあったボタン表示に変更するMod。

f:id:BCC:20211230144436j:plain

f:id:BCC:20211230144446j:plain

 

  • 詩花が「ToP!!!!!!!!!!!!!」を歌うようになる

f:id:BCC:20220331001326j:plain

通常「ToP!!!!!!!!!!!!!」の歌唱メンバーに詩花を入れると別の765プロメンバーの歌声に置き換わってしまうが、詩花自身の声で歌えるようにするMod。前作ステラステージで歌っており、その時の音声データがスタマスでもそのまま使われているにもかかわらず有効化フラグが無効になっているために選択できなくなっているようだ。

GameBananaに同じModが既に存在するのだが、DLCが配信されてから全く更新されていない関係でModを導入するとDLC曲が選択できなくなってしまう不具合が存在するのでDLC05まで配信されたVer1.61のデータファイルを元にしたModをこちらで作っておいた。

Google ドライブ - スタマス「ToP!!!!!!!!!!!!!」詩花歌唱Mod

曲選択画面で歌唱可能メンバー一覧に切り替えた際、詩花にもチェックが入っていれば導入成功。

スタマス版詩花「ToP!!!!!!!!!!!!!」歌唱例

 

  • 乳揺れ発生

レーティングがCERO Bとなっている関係かアイドル達の胸が揺れない残念仕様になっているが、動くたびにわずかに揺れるようにするMod。過剰な揺れが発生せず下品な感じもなく、バランスのよい揺れ方(?)をするので安心だ。

Steam ウインターセール 2021が開催。「アイドルマスター スターリットシーズン」や日本語化後の「OMORI」が初セール、「It Takes Two」が最安値など

今年もこの時期恒例となるPCゲーム配信サイト「Steam」の大型セール「Steam ウェインターセール」が日本時間12月23日午前3時から2022年1月6日午前3時まで開催中となっている。

f:id:BCC:20211223103641p:plain

Steamでは10月末のハロウィンセール、11月末のオータムセールと1か月毎立て続けに大型セールが来ている影響や、一部を除いて割引額も穏やかで年の瀬としては少々インパクトに欠けるセールという個人的な印象ではあるが、前二回の大型セールにはなかった傾向の一部タイトルを紹介。

 

据え置き型「アイドルマスター」シリーズとしては久しぶりの新作でアイドルをプロデュースする育成シミュレーションゲームアイドルマスター スターリットシーズン」が今回初セールとなる25%オフの6,765円、来年発売予定のNintendo Switch版よりも一足先にPC版は12月16日より公式日本語版が配信開始となった「死」と「うつ」をテーマに現実と精神世界を行き来するホラーRPG「OMORI」が日本語化後初のセールで20%オフの1,584円、2人で非対称の協力プレイを行いステージを進んでいくCoopアクションゲーム「It Takes Two」が最安値となる50%オフの2,150円、触った物のキオクを読み取る能力を持つ記憶喪失の少女が喋る信号機と出会い自身の記憶を取り戻すため夜の街に出かけるアドベンチャー「アンリアルライフ」が40%オフの1,230円、「ニーア: オートマタ」の前作「ニーア:レプリカント」を現行機種向けにバージョンアップしたアクションRPGNieR Replicant ver.1.22474487139...」が35%オフの5,577円ロールバック方式のネットコードを実装するベータテストが実施中対戦格闘ゲームBlazBlue Centralfiction」が50%オフの1,990円、2022年2月25日より無料の公式日本語化DLCが配信予定となっているアドベンチャー「Life is Strange: True Colors」が35%オフの4,147円(今購入しても後ほど日本語DLCを適用可能)、などなど。

 

 

FM TOWNS用3D CGソフト「EASTRAY」 (1990年前半のCGレンダリング)

1989年に富士通より発売された32ビットパソコン「FM TOWNS

マイナーとはいえ様々なソフトが市販・フリー問わずリリースされていたマシンであるが、その中でも代表的なソフトと言うべき3DCGレンダリングソフトである「EASTRAY」を紹介する。

f:id:BCC:20211221195315p:plain

FMシリーズ専門誌「Oh! FM 1990年9月号」にて初登場したフリーソフトで、無料ながらシェーディング・テクスチャマッピング・環境マッピングアンチエイリアスと一通りの機能を揃えたレイトレーシングによる描画を行い、当時としては、下手したら有料で発売されたソフトよりも高品質なCG画像を作成することができた。

今でもBlanderといったソフトを使ってCGレンダリングを行うことがPCの利用用途の一つとしてあるが、30年以上も前からPCの用途は変わっていないのである。

昨今のCGレンダリングソフトのようにGUI操作で空間上にモデルや光源を配置しプレビュー画面がリアルタイムで表示されるわけじゃなく、テキストファイルに頂点の数値や材質の設定などを直接記述していくという手間のかかる作業を行い、実際にレンダリングするにしても初期型TOWNSでは一晩、後期型に搭載された486 CPUでも何十分とかかる始末で、思い通りの画像が出てこなかったり何かの拍子にレンダリングが途中で中断してしまったら作業時間が全て水の泡と化す。

Oh! FM TOWNSの付録フロッピーやユーザーが制作した応募作品をCDにまとめた「フリーソフトウェアコレクション」(フリコレ)にバージョンアップ版が何度か載り、最終バージョンはOh! FM TOWNS付録でついていた「天晴CD Vol.1」及び「天晴CD Vol.2」内に収録しているVer1.98のようだ。

初期のバージョンではテキストファイルを読み込んで画像を出力するだけのプログラムだったようだが、1992年にある程度作成を補助するためサポートプログラムツールが追加されたものの、これも実質テキストエディタ・画像表示・プレビューとレンダリングプログラムの実行を行うだけの複合プログラムでしかなく別々のソフトを切り替えて立ち上げる必要が無くなるだけで根本的な手間は解消されない。

 

何も編集しておらず面白みにかける映像かもしれないが、EASTRAYのサポートプログラムを起動してサンプルのファイルを開きレンダリングを実行する一通りの作業を動画にしておいた。

www.youtube.com

エミュレータ津軽」を使用しており再現性の問題から動画最後の画像表示時に右側の表示が欠けるという不具合はあるが、CPU 66MHz・FPU付設定で自分が当時使っていたFM TOWNS 2MX相当ではこの程度の質素なCG画像を出力するにもこんな速度でレンダリングを行わなくてはならなかったという参考にはなると思う。

 

当時のTOWNSユーザーに重宝され、Oh! FM TOWNS紙面上でも何度も講座特集が組まれたり、フリコレにも様々な単体作品やゲーム用のグラフィック画像の制作に使われていたものだが、悲しいことにFM TOWNSそのものが忘却の彼方に追いやられている御時世、EASTRAYもまたネットを調べた限り1サイトだけ制作物をまとめたサイトが残っていただけでほぼ資料が残っていない状態となっている(※:他に記事が書かれたblogがかつて一件だけあったものの消えてしまっている)。

今更なんでこんなソフトの記事を書いたかというと、自身が幼少期に影響を受けたコンピュータの歴史がこんなにも簡単に消えてしまうのはやるせない気持ちになり、誰もやってくれないので一人虚しくまとめていくしかないからなんですね。知りたくもない、知る需要がないから誰もまとめないのかもしれないですが。

 

Epic Games ストア版「ファイナルファンタジー7 リメイク」のファイル/フォルダからSteam版を思わせる構成が見つかる

Epic Games ストア(EGS)より12月16日から配信が開始されたPC版「ファイナルファンタジー7 リメイク」

Steamや他ストアでの発売などはアナウンスされておらず、PS4/PS5独占だったタイトルのPC版なのにEGS独占となっている状態で落胆しているPCゲーマーは多いかと思うが、いつものように時限独占で半年~1年後に他ストアでも配信される可能性が高い。

www.pcgamer.com

PC Gamerの記事によるとEGS版FF7Rゲームフォルダ内のEngine/Binaries/ThirdPartyフォルダ内にSteamworksフォルダが存在し、更にSteamクライアントのAPIを読み出すファイルsteam_api64.dllも置かれている状態だという。

また、ファイルWindowsEngine.ini内の記述を参照していくと[OnlineSubsystemSteam]という項目が存在しSteamのデータベースにもこの中で記載されているAppIDのデータが作成されているとのこと。

SteamDB - AppID 1462040 (非公式だが得られた情報からSteamDBスタッフがFF7Rとコメント)

 

現在、EGS版FF7RではPC版特有のグラフィック設定が殆ど用意されておらず、負荷に応じて解像度を変更する動的解像度設定が強制的にかかる影響なのか画質がPS5版よりも悪かったり、フレームレートが極端に低下するといった技術的な問題も存在する。

(レビュー爆撃のおかげでSteam版もアップデートされたが)ニーア:オートマタで既にやらかしているスクエニの事だ、もしかしたら今後アップデートで修正される、そして修正されるまで待っていたら他ストア配信が開始されるというお約束すぎるパターンも十分に考えられるので今すぐに遊びたいという人を除いて待ってみるのも得策だ。

Steam版「Call of Juarez: Gunslinger」が12月15日午前3時まで無料配布中。

ポーランドのゲームスタジオTechlandの創立30周年記念に合わせてSteamにてTechlandパブリッシャーセールが実施されており、セール以外にも西部開拓時代を舞台にしたFPSCall of Juarez: Gunslinger」が12月10日午前三時から12月15日午前三時までの期間限定で無料配布キャンペーンが実施中。

爽快な射撃音、敵が被弾した際のモーションや血しぶきといった反応の良さ、スピーディーなテンポの良さと、単純に気持ちのいいシューティングとしてSteamレビューでも高い支持を得ているタイトル。

無料期間中にSteamアカウントにゲームを追加すれば配布期間が過ぎても再ダウンロード&プレイ可能となっているので、後から遊ぼうと思っている人も忘れないよう今すぐ追加しておこう。

www.youtube.com