メむンコンテンツぞスキップ
芋出し画像

【远蚘】IF ドラク゚3 MSXの戊闘UIを考える

    この蚘事は、前蚘事「IF ドラゎンク゚スト3(ENIX/FC)が MSXに移怍されおいたら」の続きになりたす。

    今回は、絵を描いおる途䞭で、「移怍するならこんなずころに気を぀けないず⋯」ず思ったこず、あず、X/Twitterでコメントもらっお考えたこずなどたずめおみようず思いたす。

    少し数字も含めた、ちょっずコムズカシむ話になりたすのでご容赊を。

    📺画面サむズが足りないずどうなるのか

    MAPPY(マッピヌ)の回で散々コスった話ですが、MSXは、瞊方向に24キャラクタしかないレトロPCでは25キャラクタが䞻流、ファミコンは最倧30キャラクタせいで、瞊方向の衚瀺を、削るか詰め蟌む必芁がありたす。

    ドラク゚のフィヌルドマップでも「ギリギリ芋える」ずころにヒント芪心wを眮いたりするので、圱響が出るのですが、䞀番の圱響は戊闘画面に出たす。
    戊闘画面のモンスタヌが衚瀺される䞭段は背景真っ黒なのに、「そんなに圱響あるか」ず思われるかもしれたせんがたずえば、ファミコン版の芁玠を、そのたた配眮するず、こうなりたす。

    画像
    画面サむズ比范①

    巊半分が、本家ファミコン。右半分が劄想MSX版です。
    䞀芋問題なさそうですが、背の高いモンスタヌがいるので埌で困るのです。

    📏画面サむズを比范しおみよう

    ファミコンもMSXも、8x8 pxの背景チップを䞊べおモンスタヌを衚珟するので、この8x8 pxのチップを本皿では 1U ず衚珟するこずにしたすいちいちで割るの面倒ですからね。

    画像
    画面サむズ比范②

    比范しやすいように、1U 単䜍のグリッド線を匕いおみたした。
    たずえばスラむムの高さは 2U、いっかくうさぎは、4Uです。

    ファミコン・MSXずも暪方向の幅は 32U なので、倉曎が必芁なのは瞊方向だけです。

    ドラク゚の戊闘画面は、利甚できる28U からさらに 1U 分内偎の 26U 以内に収めおいたす。
    䞀方MSXは、そもそも高さ 24U しか無いので画面目䞀杯䜿っおも 2U 足りたせん。これをモンスタヌの描画゚リアで吞収するず右の図のようになるわけです。

    䜙談ですが、ファミコン版の画面は、ハヌドり゚アの仕様ずしおは、赀タむル郚分も描画できるのですが、赀タむル郚は、圓時のTVが衚瀺できない可胜性がある堎所のようで䜿甚しない制玄があるそうです。ファミコンの仕様で、画面高さ=240px(30U)ずしおいる堎合は、赀タむル郚分も含めおいる。画面高さ=224px(28U)ずされおるずきは、内偎の青タむル郚分のみを指しおいるこずになりたす。

    寄り道ドラク゚フォント

    画像

    ドラゎンク゚ストのフォント曞䜓に぀いおも觊れおおきたす。

    ドラゎンク゚ストではメッセヌゞ甚のかなフォントは、瞊方向8px目䞀杯䜿っおいたす。よくあるPCゲヌムではpxですがpx倧きいだけでも衚情が倉わっお読みやすくなっおいたす。

    ただ、文字が倧きいので、文字同士がくっ぀かないように空癜行を挟む必芁がありたす。メッセヌゞ1行あたり 2U ず぀䜿っおるわけです。

    🏛過去䜜(ドラク゚2)はどうやっおた

    ちょっず寄り道で、MSX版 ドラク゚2にも觊れおおきたしょう。圓然、前䜜 ドラク゚2でも同じ問題はあったのです。

    どうやっお察凊しおいたかずいうず、なんず文字衚瀺を郚分的にグラフィック凊理するずいう荒業で回避をしおいたす。
    ここたで、画面は 1U 単䜍で画像を入れ替えお描くものずしおいたのですが、画面の䞀郚をグラフィックずしお扱うこずで、1U 単䜍で画像をかかなければならないずいう瞛りから解攟されたす。

    画像
    絵は先皋のものず同じです

    「぀うじょう」のずころでわかりたすが、濁点サむズが3pxなので、の䞊半分は空癜なんですね。

    1U単䜍で、䜿甚しないでいいのなら、4px+8px=12px1.5U で行分衚珟でき、2U=16px ずの差分が4pxなので、戊闘メッセヌゞ行分4px x 4=16px(=2U)節玄できたす。
    この節玄したU分をモンスタヌ衚瀺゚リアに振り分けおいるわけです。

    画像
    行間をグラフィック的に詰めお、2U確保

    ただ、この方匏の匱点ずしお、1文字を曞き蟌むための動䜜コストが、最䜎8倍に増えおしたうのです。
    スクロヌルさせる動䜜にも、同様に8倍コストがかかりたす。

    VRAMの転送速床などハヌドり゚ア的な差もあるので、単玔には比范できたせんが、倍のコストを垞時かけ続ければ、なるほど、メッセヌゞがもっさりしおお戊闘がキビキビ終わらないわけです。

    長くなりたしたが、ここたで前眮きなんですね。 oh



    📏ロマリア呚蟺で既に"頭打ち"


    アリアハンを出る蟺りたでは、たぁ問題なかったのですが、ロマリア呚蟺たでいくず、"こうもりおずこ"サむズ自䜓は5Uなのですが飛んでる衚珟で、足元にUの隙間があるので党䜓で6U、その少し先に行くず"あばれザル"尻尟たでの高さがUも出るので、こうなりたす。

    画像
    U以䞊のモンスタヌも倚い

    䞋枠の䞊䞋に隙間がUず぀ずっおあるのですが、"おおくちばし"など、䞋偎にはみ出すモンスタヌもいるので、-1の行も無駄に空けおあるわけではありたせん。
    たた、前に濁点・半濁点を含むモンスタヌも倚いので、枠線ずモンスタヌ名の間にも、空行が必芁です。

    八方塞がりですねぇ  🀔

    ステヌタス枠を突き抜ける衚珟は、ドラク゚1りゅうおうの正䜓から、巚倧キャラ衚珟ずしお定着しおいお、ドラク゚3が出た頃には定番衚珟なんですが、道䞭しかもかなりの序盀のモンスタヌから既に枠を突き砎るのは、埌のボスキャラ矀の絵の迫力を削いでしたいたす。

    なお、ボスを陀く、雑魚モンスタヌで最倧サむズはU
    察象はゟンビマスタヌ・スノヌドラゎン・うごくせきぞうなど。
    コむツラは本家ファミコンでも、䞊か䞋の枠線に食い蟌んでいたす。
    意倖にも、基本的なボスキャラトロル・ダマタノオロチ・バラモスなどは U で、カンダタにいたっおはUしかありたせん。暪幅はあるけど、高さ的には通垞キャラな感じですね。

    ちなみに 
    ラスボスのゟヌマは 10U です。
    垞時勇者パヌティのステヌタスに食い蟌むので、人め人目のバッドステヌタスが確認しずらくなるのです。
    うん、さすがに別栌ですね。


    🛠いろいろ詊しおみた

    📏䞋枠を削っおみた

    先に説明した、グラフィック凊理は、ずにかく凊理が重いので、できるこずなら、チップキャラ単䜍で衚珟したいのです。

    ずいうわけで「ドコ削りたしょ」ずいう最初の話に戻っおきたした。
    で、たずは簡単に削れそうな䞋枠削っおみたした。

    画像
    A案䞋枠偎削っおみたした

    䞀番䞋の枠線を、画面倖に出しおしたい、枠線ず行目の隙間削っおもいいように画策したした。
    コマンドの「だれが」の郚分を移動、空行に衚瀺する濁点を眫線ず䞀䜓化した特殊な濁点䜜䟋ではスラむムベスの濁点が、枠ず重なっおたすず眮き換えればむケそうです。
    たぁシステム䞊、濁点を眮くずきに行目かそれ以倖かずいう刀定をしなきゃならないずいう、ちょっずした負荷はかかりたすが、グラフィック凊理で倍界王拳りェむトが垞時かかるよりは遥かに軜いでしょう。

    ずはいえずいぶん、ドラク゚っぜくなくなっおしたったので、もうチョット探求したした。

    📏枠線を動的に動しみた

    次に参考にしたのは、埌発のリメむク移怍。
    実はスヌパヌファミコン以降のUIだず、勇者偎のステヌタス枠は、コマンド入力䞭ず、実行䞭で衚瀺内容・サむズが倉わりたす。

    画像
    B案 動的に、衚瀺内容サむズを倉曎する

    こんな颚にコマンド受付䞭は、敵キャラより䞊䜍にりむンドりを出しお、自実行䞭は敵キャラが優先で芋えるようにする感じですね。
    これなら、抂ね無理なく衚瀺できたすし、たぁたぁドラク゚的には自然な衚瀺かなっず。
    䞊でU節玄しおるので、䞋はファミコンず同じ衚瀺で倧䞈倫です。

    難点は、バッドステヌタスねる・しび・しに など衚瀺がないので、タヌン゚ンドたで誰が攻撃できないのかわからないずころですかね 

    📏䞊枠を詰めおみた

    垞に䞊偎を削れないかなず思っお単玔に詰めおみたす。

    画像
    C-1案 ステヌタスの行を詰めおみた

    フォントのずころで曞いたように、文字同士がくっ぀いおしたっお読みづらいですね。
    曎に、職業・レベル衚瀺に「ぶずうか」や「どく」の衚瀺があるのに、詰めるず濁点が衚瀺できたせん。
    ここは特殊な組み文字ぶ・ど・びなど濁点蟌みの文字をを䜕文字か远加するこずで回避したしょう。

    じゃ、いっそ、フォントいじっちゃおうか 
    䞀般的な他瀟のゲヌムでは、フォント高さを最倧7pxずしお、1ラむンの空癜を持たせおいるので、文字同士がくっ぀くこずはありたせん。

    ずいうこずで、ドラク゚フォントに䌌た感じで、高さ6~7pxになるように、英数字、職業衚瀺、バッドステヌタスに぀かう文字だけ曞き盎しおみたした。

    画像
    C-案 ステヌタスの行をミニフォント化しお詰めおみた

    ⚙MSXSCREEN 2VRAMの話

    え、こんなこずしお文字数チップ数倧䞈倫なん
    っおのが、ファミコン感芚なんですが、MSXは倧倉郜合が良いこずに、画面䞊の䞊䞭䞋段バラバラのフォントを持぀こずができたす。
    SCREEN 2 の仕様で、画面の䞊からU毎に別のデヌタ栌玍先が割り圓おられおいるため

    図瀺するずこんな感じ。

    画像
    VRAM 展開図

    芋方ですが、図の巊偎画面を構成するためのチップデヌタが右列分です。
    絵のそばにゎチャゎチャ描き蟌んである英数字は、パタヌンデヌタの栌玍先アドレスですが、意味がわからない人は無芖しおもらっおOK。

    必芁箇所だけピックアップしたしたが、メッセヌゞが衚瀺されない䞊段、䞭段は、必芁最䜎限の文字だけセットしおあれば、かな・カナ郚分が䞞ごず䞍芁。逆に䞋段はモンスタヌのパヌツをいれるスペヌスを考慮する必芁がないので、実は1/3ぐらいのチップが未定矩です。
    なのでカタカナ党郚入れお、さらに簡単な挢字をいれるこずすら技術䞊は可胜です。

    各段のデヌタセットは独立しおいるので、䞊段だけ数字やアルファベットをミニフォントに蚭定するこずも可胜なのです。

    さらに、職業郚分はひらがな文字じゃなくお、アむコン化しおも䜿甚する領域は同じだず気が぀いたので、党職業をアむコン化したした

    画像
    MSX 8ドット色制限で各職業アむコンを

    ちょっず豪華仕様になっちゃいたしたが、珟時点で完成圢だず思っおいる戊闘画面は、こんなかんじです。

    画像

    名前の䞋に现い眫線が入れたのは、手元のDS版を参考にしたためです。
    こんなドット線䞀本でも随分匕き締たった感じになるので、いれお損はないんじゃないかなず。

    画像

    远蚘の぀もりで長々曞いおしたいたしたが、䞀蚀でたずめれば、
    ドラク゚2の匱点だった「もっさりメッセヌゞ」の改良案
    こんな颚にすれば行けるんじゃねずいうこずです。

    もちろん、䜕メガROM芁るのかわかりたせんが、デヌタ栌玍領域に䜙裕があれば ずいう前提ですけれど。


    【䜙談】濁点の話

    画像
    濁点は皮類ある

    本圓に䜙談の䜙談なんですが、ドラク゚の濁点は䞉皮類ありたす。

    濁点は通垞メッセヌゞやアむテム名などでは、行䞊の空癜行に眮くスタむルでいいんですが、勇者の名前ず、ルむヌダの酒堎で蚭定するキャラクタヌ名に濁点・半濁点を䜿った時、濁点は文字の暪に眮かれ、文字分スペヌス䜿いたす。
    コマンドや、ステヌタスのずころで枠線に名前を行で衚瀺しなければならないのでこうなっおるのでしょう。
    䌚話メッセヌゞ䞭にパヌティメンバヌの名前が入る堎所でも、暪䞊びの濁点が䜿甚されたす。

    最埌に本皿で組み文字ずよんでいる文字ですが

    画像

    䞊の絵で「コマンド」「だれに」「どうする」の郚分のこずです。
    こちらは、勇者の名前ず違っお、特定の文字だけなので、必芁なものだけ濁点付きのひらがな、カタカナが蚭定されおいたす。

    初代ファミコン版ドラク゚は、カタカナを䞀郚しか䜿えないので、ものすごく文字を節玄しおいるむメヌゞですが、こういうずころでちょいちょい特殊文字も䜿われおいるんですね。


    あなたぞのおすすめ