使い方 Ver. 1.08向け

 使用する上で、疑問となりそうな点や知っておくと便利な機能などを説明・紹介します。文章中の”オリジナル”とは、改造されていないスーパーマリオブラザーズのことです。なお、この文書は、SMB Utilityの使い方を中心に書いていますが、新しいマップを作成する上で必要なことを全部は説明できていません。足りない部分については、オリジナルのスーパーマリオブラザーズで、どのようになっているかを調べてみたり、インターネット上の情報を検索したりして補ってください。

1.基本操作

ファイルを開く

 ”開く”ダイアログボックスの他に、ドラッグ&ドロップによっても、ファイルを開くことができます。SMB UtilityのアイコンにROMファイルをドラッグ&ドロップするか、起動中のSMB UtilityにROMファイルをドラック&ドロップします。 

※ 対応ROMファイルフォーマットは、.NESフォーマットマッパー0のみです。また、SMB Utilityは、ROMを開く前に、最大限のROMのチェックは行いますが、そのチェックをパスしてしまうような他のROMを読み込んだ場合、その動作は未知です。

元に戻す

 メニュー [ 編集 ] - [ 元に戻す ] を選択することで、一つ前の処理を元に戻すことができます。1回前の操作に対してだけ行うことができます。

2.オブジェクトの編集

 はじめに、オリジナルマップを作成する上で理解しておく必要のあるルームとページという用語について簡単に説明します。土管や豆の木などで、行き来する場所を 1つのルームと呼びます。また、エリアのスタート地点となるルームをメインルーム、メインルームから豆の木や土管で移動可能なルームをサブルームと呼びます。例えば、オリジナルの 1-1には、地上面と地下面(コイン部屋)の 2つのルームがあり、前者がメインルーム、後者がサブルームです。また、ページは、ルームを分割した単位のことで、1画面に表示できる幅(16キャラクタ分)を 1ページとします。例えば、オリジナルの 1-1の地下面(コイン部屋)は、1ページで終わります。また、ルームにおけるページは、ルームの始まりから 0ページ、1ページ、2ページ、・・・ と数えます。オブジェクトは、?ブロックやクリボーなどのマップを構成する部品で、敵オブジェクトと地形オブジェクトに大別されます。

編集するルームの変更

 メニュー [編集] - [ルームの変更] または、ツールバーの土管の絵のボタンをクリックして、”ルームの変更”ダイアログを開きます。ツリービューの 1項目が、1ルームに対応しています。ツリービューの最も左側にある項目がメインルームです。メインルームの項目の左にボタン(□の中に+があるボタン)がある場合、そのメインルームのサブルームが存在します。ボタンをクリックするか、項目をダブルクリックすることで、メインルームの下にサブルームが表示されます。ルームを変更するには、目的のルームを選択して、”OK”ボタンをクリックします。

敵・地形オブジェクト編集モードの切り替え

 地形を編集する場合は、メニュー [ 編集 ] - [ 地形 ] または、ツールバーのショベルカーのボタンをクリック、敵を編集する場合は、メニュー [ 編集 ] - [ 敵 ] または、ツールバーのカメの甲羅のボタンをクリックします。デフォルト設定では、キーボードのF3、F4がそれぞれ敵、地形編集モードへの切り替えキーになっています。また、オブジェクトビューで右クリックすると表示されるポップアップメニューの編集モードを切り替えを選択すると敵と地形の編集モードを切り替えることができます。

ウインドウとその役割

 オブジェクトリストウインドウ リストによってオブジェクトを確認できます。
 オブジェクトビューウインドウ 視覚的にオブジェクトを確認できます。
エミュレータウインドウ エミュレータ実行用のウインドウです。
ステータスバー 左側には、ファイル保存の完了などのメッセージが表示されます。右側には、「エリア (ルームID [敵オブジェクトデータの開始アドレス, 地形オブジェクトデータの開始アドレス] )」の情報が表示されます。
 ツールバー 左からファイルを開く、ファイルを上書き保存、編集するルームの変更、敵編集モード、地形編集モード、エリアの開始からのテストプレイ、アクティブオブジェクトのあるページからのテストプレイ、エリアの途中でミスした場合に開始となるページからのテストプレイ、エミュレータの実行停止、テストプレイの設定を実行するボタンになっています。

選択されて編集の対象になっているオブジェクトのことをアクティブオブジェクトと呼びます。オブジェクトリストウインドウとオブジェクトビューウインドウにおけるアクティブオブジェクトの表現については、それぞれのウインドウの項目を参照してください。

オブジェクトリストウインドウとオブジェクトビューウインドウからは、”編集”ダイアログと”移動先指定”ダイアログの2つのダイアログを使用できます。それぞれのウインドウからのダイアログの表示の方法については、それぞれのウインドウの項目を、ダイアログについての説明は、「オブジェクト ビュー/リストの補助ダイアログ」の項目を参照してください。

オブジェクトリストウインドウ

 オブジェクトリストウインドウは、リストビューで構成されるウインドウで、オブジェクトをリストとして見ることができ、オブジェクトの詳細・バイナリデータを確認するのに使用します。

@ アクティブオブジェクト

 1行が1つのオブジェクトに対応しており、強調表示になっている行がアクティブオブジェクトを表しています。選択したいオブジェクトの行をクリック、または、十字キーでアクティブオブジェクトを変更できます。

A ”編集”ダイアログの表示

 目的のオブジェクトの行をダブルクリック、または、Enterキーを押すと、”編集”ダイアログボックスが表示されます。このダイアログによってアクティブオブジェクトを編集できます。詳細については、オブジェクト ビュー/リストの補助ダイアログの項目の@ ”編集”ダイアログを参照してください。

B ”移動先の指定”ダイアログの表示

 目的のオブジェクトの行を右クリックすると、”移動先の指定”ダイアログが表示されます。このダイアログによってアクティブオブジェクトを他ルームに送ることができます。詳細については、オブジェクト ビュー/リストの補助ダイアログの項目のA ”移動先指定”ダイアログを参照してください。

オブジェクトビューウインドウ

 オブジェクトビューウインドウは、垂直方向と水平方向の目盛りとビューで構成されるウインドウで、オブジェクトを視覚的に確認でき、オブジェクトの選択が容易に行うことができます。

@ オブジェクトの表現

 色のついた正方形(地形オブジェクトは緑系の色、敵オブジェクトは、青系の色)1つが、1つのオブジェクトに対応しています。この正方形のことをオブジェクトスクエアと呼びます。また、明るい色の正方形の部分がアクティブオブジェクトを、暗い色の正方形の部分がそれ以外のオブジェクトを表しており、前者をアクティブ(オブジェクト)スクエアと呼ぶことにします。オブジェクトビューウインドウでアクティブオブジェクトを選択するには、目的のオブジェクトスクエアをクリックします。オブジェクトスクエアに複数のオブジェクトがある場合、Ctrlキーを押しながらクリックすると、ポップアップメニューが表示され、アクティブにするオブジェクトを選択することができます。また、オブジェクトスクエアをマウスでポイントするとツールチップが表示され、オブジェクトのページ、位置、種類を確認できます。敵オブジェクトで、「5-3以降表示される」オブジェクトについては、そのオブジェクトスクエアの半分が反転表示されます。

A ”編集”ダイアログの表示

 ウインドウをダブルクリック、または、ウインドウを右クリックで表示されるポップアップメニューで”アクティブオブジェクトを編集”を選択すると、”編集”ダイアログボックスが表示され、アクティブオブジェクトを編集することができます。詳細については、オブジェクト ビュー/リストの補助ダイアログの項目の@ ”編集”ダイアログを参照してください。

B ”移動先の指定”ダイアログの表示

 ウインドウを右クリックすると表示されるポップアップメニューで”アクティブオブジェクトを他ルームへ送る”を選択すると、”移動先の指定”ダイアログが表示され、アクティブオブジェクトをダイアログで指定したルームへ送ることができます。詳細については、オブジェクト ビュー/リストの補助ダイアログの項目のA ”移動先指定”ダイアログを参照してください。

C ウインドウのサイズ

 ウインドウの右端をドラッグすると1ページずつ段階的にウインドウのサイズを変更することができます。なお、オブジェクトビューウインドウの描画が遅い場合、ウインドウの表示範囲を小さくして使用すると、緩和されます。

D 目盛りの補助線の表示

 座標を読み取りやすくするための補助線を表示することができます。垂直方向の補助線は、横位置目盛りを、水平方向の補助線は、縦位置目盛りをクリックすることで表示します。もう一度クリックすることで、非表示にすることができます。ページ境界の垂直方向の補助線は破線、その他は直線になっています。この補助線の表示・非表示は、アプリケーション終了後も保存されます。

E マウスによる編集

 オブジェクトビューでは、マウスによるオブジェクトの移動と種類の変更を行うことができます。アクティブオブジェクトをドラッグするとアクティブスクエアの4辺それぞれに接する4つの四角形が表示されます。ドラッグしたまま、表示された四角形へマウスを移動させるとその四角形の位置へオブジェクトが移動されます。また、Windows(R)98かそれ以降のOS上で、ホイールマウスを使用している場合、ホイールを回転させることによってアクティブオブジェクトを変更したり、種類を変更することができます。何もキーを押さない状態でホイールを回転させた場合、アクティブオブジェクトをページ単位で移動させます。Shiftキー、Ctrlキーを押しながらホイールを回転させた場合、それぞれ、1ずつ、16ずつ種類が変化していきます。なお、ホイールを使用して種類を変更する場合、オブジェクトビューウインドウがアクティブな状態になっていることを確認してください。

F 途中開始ページの表現

 オリジナルでは、あるページを超えたところでミスをするとそのページから再スタートすることになります。そのページの左上隅には、右方向の矢印が表示されます。

G ポイントテストプレイ

 オブジェクトビューで選択した任意の位置からマリオをスタートさせることのできるテストプレイのことをポイントテストプレイといいます。ポイントテストプレイをスタートさせるには、まず、オブジェクトビューのマリオをスタートさせたい位置で右クリックし、ポップアップメニューを表示させます。そのメニュー内の「この位置からテストプレイ」を選択することで、マウスカーソルで指定したページの横位置、縦位置からエミュレータでテストプレイを行うことができます。なお、このポイントテストプレイでは、新ルーム移動後の初期出現位置が異常になるなどの実際のプレイとは異なった点が発生します。

オブジェクト ビュー/リストの補助ダイアログ

@ ”編集”ダイアログ

 このダイアログは、アクティブオブジェクトを編集するときに使用します。

改ページフラグ

 改ページフラグは、各ページの先頭のオブジェクトがもつフラグです。

ページ送りコマンド

 ページ送りコマンドは、その次のオブジェクトのページを設定するオブジェクトです。このオブジェクトによって、空白のページを作成することができます。”敵”オブジェクト用のページ送りコマンドは、ページ送りコマンドのチェックボックスをオンにして、その隣のエディットボックスで指定ページを設定します。”地形”オブジェクト用のページ送りコマンドは、縦位置を13、種類を”ページ送りコマンド”に設定して、長さで指定ページを設定します。ページ送りコマンドを配置する際には、以下の3点に注意します。

 ・ ページ送りコマンドの改ページフラグは、オフにする。

 ・ ページ送りコマンドの次のオブジェクトの改ページフラグも、オフにしておく。

 ・ 逆戻りするようなページの指定はしない。

バイナリ入力

 バイナリ入力は、エディトボックスに入力した数値がそのまま書きこまれます。この数値の入力には、16進数を用い、数値(1バイト)と数値(1バイト)の間は、必ずスペース1個分空けてください。マップ編集の場合は、3バイトまで、敵編集の場合は、4バイトまで入力できます。入力したデータのサイズが編集しているオブジェクトのデータのサイズを超えた場合、残りのバイトは、編集しているデータを超えたところからコピーされます。

ルーム間移動の命令 (敵オブジェクト)  
 このオブジェクトによって豆の木や土管などによるルーム変更時の移動先の指定を行います。”ワールド”は、このオブジェクトが有効になるワールドで、誤った設定を行った場合、移動先の指定は有効になりません。”ルーム”と”ページ”で、それぞれ移動先のルームとそのルーム内のページを設定します。このとき、”ページ”は、指定した”ルーム”の(ページ送りコマンド以外の)地形オブジェクトの存在するページに設定しなければ、ブラックアウトしてしまいます。なお、”プレビュー”ボタンをクリックすると表示されるプレビューによって、移動先を視覚的に確認することができます。

A ”移動先指定”ダイアログ

 このダイアログでは、アクティブオブジェクトを他のルームへ移動させることができます。移動先のパラメータとしてルームとページの指定します。プレビューには、移動先のページが表示されます。OKをクリックすると実際に移動されます。ただし、次のような場合、移動できません。
 ・移動するオブジェクトが改ページフラグを持っているかページ送りコマンドである(移動元のエラー)。
 ・移動先のページ(オブジェクトの全くないルームを除く)には、オブジェクトがない(移動先のエラー)。
 ・移動先のルームにSMBエンジンが処理できる数を超えたオブジェクトがある。

キーボードによる編集

 キーボードを使用すると、アクティブオブジェクトに対するスピーディな編集を行うことができます。下の表は、初期設定におけるキーと操作の対応表です。テン・キーを使用する際には、NumLockがオンになっている必要があります。

 キーの詳細

テン・キーの 8 アクティブオブジェクトの位置を上へ移動する。
テン・キーの 4 アクティブオブジェクトの位置を左へ移動する。
テン・キーの 2 アクティブオブジェクトの位置を下へ移動する。
テン・キーの 6 アクティブオブジェクトの位置を右へ移動する。
+ アクティブオブジェクトの種類のデータを1だけ増やす。
- アクティブオブジェクトの種類のデータを1だけ減らす。
* アクティブオブジェクトの種類のデータを16だけ増やす。
/ アクティブオブジェクトの種類のデータを16だけ減らす。
テン・キーの 9 アクティブオブジェクトをその次のページの先頭のオブジェクトに変更する。
テン・キーの 3 アクティブオブジェクトをその1つ前のページの先頭のオブジェクトに変更する。
テン・キーの 7 アクティブオブジェクトをその次のオブジェクトに変更する。
テン・キーの 1 アクティブオブジェクトをその1つ前のオブジェクトに変更する。

※ キー入力の際、次のようなオブジェクトの移動はできません。

 ・ オブジェクトの第1バイト目にFDH(地形)、FFH(敵)を入力してしまうような移動。

 ・ 1ページに1つしかないオブジェクトを他のページに移動させる。

※ これらのキーの割り当ては、変更することもできます。"5. カスタマイズ"を参照してください。

エミュレータウインドウ

@ 入力デバイス

 キーボードかジョイスティックを使用します。デフォルトでは、以下のような割り当てになっています。

キーボード ジョイスティック  
十字キー 十字ボタン 移動ボタン
Backspace ボタン3 SELECT
Enter ボタン4 START
B ボタン1 B
N ボタン2 A

※ キーボード入力とジョイスティックのボタンに関しては、カスタマイズ可能です。これについての詳細は、"5.カスタマイズ"を参照してください。

※ PCに2つのジョイスティックがインストールされている場合、メニュー[ツール] - [オプション] で”オプション”ダイアログを開き、”エミュレータ”のページの”使用するジョイスティック”で、どのジョイスティックを使用するかを選択することができます。

※ メニュー[ツール] - [オプション] で”オプション”ダイアログを開き、”エミュレータ”のページの”ジョイスティックのpoint of viewを有効にする”をチェックすることで、ジョイスティックのハットスイッチ(point of view)を方向キーとして割り当てることができます。

※ PCにジョイスティックがインストールされているが、SMB Utilityでは使用しない場合、メニュー[ツール] - [オプション] で”オプション”ダイアログを開き、”エミュレータ”のページの”ジョイスティックを使用しない。”をチェックして、ジョイスティックの使用を無効にしてください。

※ ジョイスティックがWindowsに認識されていない場合、メニュー [ツール] - [オプション] で開く”オプション”ダイアログ、”エミュレータ”のページの”ジョイスティックを使用しない。”のチェックをはずすことはできません。

A 実行の種類

通常起動 タイトル画面から実行します。

テストプレイ 現在編集しているルームの先頭ページ(0ページ)にプレイヤーを置いた状態で実行します。

ページテストプレイ テストプレイとの違いは、プレイヤーの置かれるページが、アクティブオブジェクトのあるページか、指定したページ(”テストプレイの設定”ダイアログで変更可能)であるということです。なお、地形オブジェクトの全くないページを開始ページとして設定できません。

途中ページテストプレイ テストプレイとの違いは、プレイヤーの置かれるページが、途中開始ページであるということです。なお、途中開始ページに地形オブジェクトが全くない場合、途中ページテストプレイは行えません。

B テストプレイの設定”ダイアログ

 このダイアログ内の設定は、テストプレイの時のみ有効で、実際のROMファイルへの影響はありません。以下の設定を有効にしてテストプレイを行った場合、実際にプレイしたときとは違う場合があります。

 ・ 「開始ページの敵も出現させる。」を有効にした場合。

 ・ 「無敵状態にする。」を有効にした場合。

 ・ 「ページテストプレイの開始位置」を設定した場合。(ルーム間の移動を行った場合、初期出現位置がおかしくなります。)

また、このダイアログ内のデフォルトの(起動時に設定される)値を変更することもできます。"5. カスタマイズ"を参照してください。

C ウインドウのサイズ

 ウインドウの右・下端をドラッグすると段階的にウインドウのサイズを変更することができます。なお、描画が遅い場合、ウインドウの表示範囲を小さくして使用すると、緩和されることがあります。

D セーブ・ロード機能

 セーブされたデータは、アプリケーションを終了すると消去されます。また、セーブ後にオブジェクトを移動し、その後、ロードを行うと正常に実行されない恐れがあります。

ルーム・エリアの設定の変更

 メニュー [ 編集 ] - [ 設定 ] で”設定”ダイアログを開きます。”エリア”に関する項目は、エリアの開始ルームを編集しているときのみ有効になります。”途中の開始ページ”では、プレイヤーがミスしたときの中間スタートのページを設定します。

3.ツール

 ツールは、ゲーム全体にかかわる設定や、オブジェクトの補助的なデータなどを変更する際に使用します。

文字列編集ツール

 このツールでは、画面上側にあるゲームステータスの部分の表示や、ワールドクリアした際に表示される文字列等の編集を行うことができます。

特殊文字の入力

 通常のアルファベット・数字・記号(' . ', ' ! ', ' - ', ' * ' [ = 'x' ], ' @ ' [ = '(C)' ])の他に、タイルの番号による指定も可能です。具体的には、#xx(xxは、16進数のタイルの番号)と入力することで、その番号(xx)に対応するタイルを指定できます。なお、xxは必ず2文字でなければいけません(例えば#Aと指定するのではなく#0Aと指定する)。タイルの番号の確認は、Nesticleで行えます。

ループ編集ツール

  ループデータをバイナリ入力によって変更できます。スペースで区切られた数字1つが、1バイトに対応しており、その数字は16進数です。

■ ループとその作成法

 ループは、オリジナルのの4-4,7-4,8-4で見られる、ある地点において、ある高さを通れば、次に進むことができ、さもなければ、ある地点へマップが戻されてしまうというワナです。ループコマンド、ページ送りコマンドの2種類の地形オブジェクトとループデータの1種類のデータの合計3つ要素によって形成されます。

 簡単にループの作成法について説明します。この説明のように作成すれば、ほとんどすべての場合、思い通りのループを作成可能ですが、何らかの未知の原因により、うまくいかない場合もあるということを頭の片隅に置いておいてください。また、この説明は非常に分かりにくいものになっています。オリジナルも参考にしてください。

@ ループデータのまとまり

 (”A データの意味”の表中の)a、b、c、d のデータは、まとまりがあります。具体的には、a、b、c、d のそれぞれ n バイト目が、n 個目のループデータのまとまりになっています(n = 1、2、3、…、11)。例えば、オリジナルでは、03 05 40 12(いずれも16進数)は、1つめのループデータのまとまり、03 09 B0 36(いずれも16進数)は、2つ目のループデータのまとまりです。

A データの意味

 a. ワールド  ループが有効になるワールドを指定します。((ワールド)-1)で指定することに注意してください。
 b. ページ  ”B 判定1つタイプの(オリジナルの4-4や8-4で見られる)ループの作成法 ”や”C 判定3つタイプの(オリジナルの7-4で見られる)ループの作成法”を参照してください。
 c. 縦位置の条件  ループしないために通るべき縦位置を上位4ビットで指定します。例えば、00(16進数)は縦位置 -1、10(16進数)は縦位置 0、20(16進数)は縦位置 1、…、 F0(16進数)は 縦位置 15 の指定になります。なお、下位4ビットは、特に理由がない限り、0にしておきます。
 d. 戻り位置  ループした際に戻されるページの先頭にある地形オブジェクト用ページ送りコマンドをマップの先頭からの(0起算の)バイト数を指定します。このバイト数は、地形オブジェクト用ページ送りコマンドの”編集”ダイアログ内の”XXバイト目”の項目のXXをそのまま入力します。
 e. ワールド7のループの設定  ワールド7のループを他のワールドで出す場合、この2つのデータを希望のワールドに変更します。((ワールド)-1)で指定することに注意してください。

B 判定1つタイプの(オリジナルの4-4や8-4で見られる)ループの作成法 

 ”a. ワールド”で、設定したワールド内のルームにおいて、次のような関係でデータ、オブジェクトを設定します。なお、ループのデータは、同じまとまりのデータを使用します。

ページ p p + 1 p + 2 p + 3 p + 4
ループデータ

”d. 戻り位置”を設定。注1

   

”c. 縦位置の条件”を設定。

”b. ページ”のデータに ( p + 4 ) を設定

地形オブジェクト

ページの先頭に地形オブジェクトの p ページへのページ送りコマンド注2

   

ループコマンド注3

 
備考

ループした際に戻されるページ

   

プレイヤーがこのページの横位置 0 にやってきた時に、縦位置の判定が行われる。

このページには、ループした場合、p ページが表示され、ループしなかった場合は、( p + 4 )ページが表示される。

注 1 このバイト数は、地形オブジェクトのページ送りコマンドの”編集”ダイアログ内の”XXバイト目”の項目のXXをそのまま入力します。

注 2 たとえ、改ページフラグを使えば p ページになるとしても、必ずページ送りコマンドを使って p ページに設定し、そのページ送りコマンドはページの先頭になるように配置します。

注 3 地形オブジェクトの縦位置13のオブジェクトです。

C 判定3つタイプの(オリジナルの7-4で見られる)ループの作成法

 まず、”e.ワールド7のループの設定”を、2つともループをこのタイプのループを作成するワールドに変更します( ((ワールド)-1) で指定することに注意してください。)。このワールドでは、”判定 1つのタイプのループ”を作成することはできません。データとオブジェクトをどのように配置するかについては、まず、判定個所が3つあるため、ループデータは、3つのまとまりを使用します。この3つのまとまりに、”判定1つのタイプのループ”と同様に、”a ワールド”、”d 戻り位置”を設定し(それぞれのデータは、3つのまとまりとも等しくなる)、その他のデータ・オブジェクトについては、以下のように設定・配置します。

ページ p p + 1 p + 2 p + 3 p + 4
データ まとまり1

(”d. 戻り位置”を設定。)

”c. 縦位置の条件”を設定。

”b. ページ”のデータに ( p + 2 ) を設定

   
まとまり2   ”c. 縦位置の条件”を設定。 ”b. ページ”のデータに ( p + 3 ) を設定  
まとまり3     ”c. 縦位置の条件”を設定。 ”b. ページ”のデータに ( p + 4 ) を設定
地形オブジェクト

ページの先頭に地形オブジェクトの p ページへのページ送りコマンド(Bの注2 を参照)

ループコマンド  ループコマンド ループコマンド  
備考

ループした際に戻されるページ

プレイヤーがこのページの横位置 0 にやってきた時に、縦位置の判定が行われる。 プレイヤーがこのページの横位置 0 にやってきた時に、縦位置の判定が行われる。

プレイヤーがこのページの横位置 0 にやってきた時に、縦位置の判定が行われる。

このページには、ループした場合、p ページが表示され、ループしなかった場合は、( p + 4 )ページが表示される。

作成上のコツ

・ ループコマンドをページの先頭に置くと、うまくいかなくなることがあります。

・ 戻り位置のページの前のページの敵が表示されてしまう場合、その敵を左に移動させる(横位置を減らす)か、最後の判定の行われるページのループコマンドを右に移動させる(横位置を増やす)ことで解決することがあります。

・ ループするかの判定が行われる際、ループのデータの参照は、後ろの方のまとまりから順に行われます。

ワールドの区分の更新ツール

 ワールドとエリアの表示が、”エリアの変更”ダイアログと実際とで違う場合、このツールを実行してください。この機能は、多分、もう使用する必要がないと思います。というのは、以前のSMB Utilityでは、例えば、1ワールドが4つ以外のエリアで構成されているオリジナルマップを作成した場合、ワープゾーンでワールドを変更するとおかしなルームからワールドが始まっていました。これを修正するのが「ワールドの区分の更新」機能なのですが、最近のバージョンでは、そうなる可能性のあるところで自動的に実行するように改良されています。

エリア開始ルームの編集ツール

 このツールで、エリアの開始ルームの変更と並べ替え行うことができます。

(1) エリア開始ルームの変更

 変更したいエリアをダブルクリックすると、”エリアの開始ルームの指定”ダイアログが表示されます。このダイアログで、新しいルームを選びます。

(2) エリア開始ルームの並べ替え

 移動したいエリアを選択して、右側にある↑ボタンで、始めのほうに、↓ボタンで後のほうに移動します。

 エリアの開始ルームの変更によって、土管や豆の木によるルーム間の移動が正常に行われなくなることがありますが、これは、ルーム間移動の命令のワールドの設定の関係でルーム間移動の命令が無効になったことが原因です。ルーム間移動の命令のワールドの設定を適切に変更することで解決します。

デモレコーダー

 このツールでは、タイトル画面中のデモプレイを作成することができます。何かのボタンを押した時点で記録が開始され、保存できる容量を越えた時点で記録が終了します。SMBのデモデータの性質上、一つのキーをできるだけ長く維持することを心がける(つまりキーの変化の周期を長くする)と長いデモを作成することができます。

全般の設定ツール

クリアーとなるワールド
 ここで指定したワールドをクリアーするとエンディングとなります。このワールドは、1から8の間のワールドで指定します。この変更は、”元に戻す”機能で元に戻すことはできません。また、ここでの指定より後のワールドのルームは、”ルームの変更”ダイアログで選択できなくなります。「カスタム」チェックボックスは、バイナリエディタでの改造をサポートするための機能で、元々チェックされた状態からチェックをはずした場合以外、ツール側から操作に意味はありません。キノピオをピーチ姫にするワールドのデータ、文字表示と音楽を変えるワールドのデータ、終わりの判定のワールドのデータの3つが等しくない(バイナリエディタで編集されている)場合に、このチェックボックスがオンになり、エディトボックスの値をROMに書き込まないします。

その他の設定ツール

ワープゾーン

 オリジナルでは、ワールドとして36を設定すると表示なしとなります。

1UPキノコ 

 隠れブロックの1UPキノコには、獲得権のようなものが存在し、この獲得権がない場合、配置した隠れブロックの1UPキノコは、表示されません。この獲得権の取得・喪失の条件はどのようになっているかについては、まず、スタート時にはすでに与えられています。その後、プレイヤーが隠れブロックの1UPキノコの付近にやってきた時点で、失います。隠れブロックの1UPキノコの獲得権を失った後で、再び獲得権を得るための方法は、2つあります。1つは、ワープゾーンに入ることです。もう1つは、各ワールドの3番目のエリアで、”ある枚数”以上のコインを取って、ゴールすることです。この”ある枚数”をここで設定することができます。

ワールド(難易度の境目)

 ここで設定したワールドとエリア以降では、次のような難易度の変化があります。

・ リフトが短くなる。

・ ”5-3以降表示”の敵が表示されるようになる。

4.その他の機能

キャラクタROMの読み込み機能

 メニュー [ファイル] - [キャラクタROMの読み込み] で、”開く”ダイアログを開き、読み込み元のROMファイルを指定します。読み込み元のROMファイルからキャラクタROMが、現在編集しているROMへ読み込まれます。この際、絵のデータ部分のみ読み込むようになっています。キャラクタROM全体を取り込みたい場合は、「キャラクタロム全体を読み込む。」のチェックボックスをオンにしてROMファイルを指定ください。

外部エディタによるファイル変更の監視機能

 開いた(または、保存した)ファイルに対して外部のプログラムが、何らかの書き込みを行った場合、smb Utility は、再度そのファイルを読み直すかどうかの確認をします。読み直した場合、SMB Utility で開いた時または、前回の保存時からの変更は、すべて無効になりますのでご注意ください。

ルームごとのオブジェクトの保護機能

 この機能は、編集しているルーム内のオブジェクトのみを表示・編集できるようにします。この機能を有効にしておくと、オブジェクトの終了を示すデータが無効になっても、編集しているルームのオブジェクトのみ表示され、誤って他のルームのデータを編集してしまうといったことを防止します。メニュー [ツール] - [オプション] で、”オプション”ダイアログを開き、”エディタ”のページ内の”ルームごとのオブジェクトの保護機能を有効にする”チェックボックスによって、この機能を有効・無効にすることができます。

5.カスタマイズ

 より使いやすくするために、好みに応じて変更できる部分があります。

起動時に設定されるデフォルト値の変更

 起動時に設定されるデフォルト値は、SMB Utility 実行可能ファイルのあるディレクトリにある初期化ファイル"smbutil.ini"に保存されています。これをテキストエディタを使用して編集することにより、変更できます。

(1) ”テストプレイの設定”のデフォルト値

 テストプレイの設定のデフォルト値(起動時に設定される値)を変更することができます。"smbutil.ini"をテキストエディタで開き、次の部分を見つけてください。

[TESTPLAYDEFAULTS]
HARD = 0
STATE = 0
BADGUYS = 0
INVINCIBLE = 0
PAGE = 256

ここが、テストプレイの設定のデフォルト値を指定した部分です。”[TESTPLAYDEFAULTS]” の下の5行のそれぞれについて、左辺がキー名、右辺が値となっています。それぞれのキー名に対応する設定の内容と有効な値は、以下のようになっています。

キー名 対応する設定の内容 有効な値
HARD 裏面として出す 0: オフ、1: オフ
STATE マリオの状態 0: マリオ、1: スーパーマリオ、2: ファイアーマリオ
BADGUYS 開始ページの敵も出現させる。 0: オフ、1: オフ
INVINCIBLE プレイヤーのダメージ判定の無効化する。 0: オフ、1: オフ
PAGE ページテストプレイの開始ページ 0-255: 指定したページから
256: 選択しているオブジェクトのあるページから

(2) ”ルームごとのオブジェクトの保護機能を有効にする。”のデフォルト値

 エディターのオプション”ルームごとのオブジェクトの保護機能を有効にする。”を起動時に、オンにするかオフにするかの設定です。"smbutil.ini"をテキストエディタで開き、次の部分を見つけてください。

[EDITOR]
PROTECT = 1

”PROTECT”キーが1の場合はオン、0の場合はオフになります。

キーボード入力編集のキー設定の変更

 メニュー [ツール]-[カスタマイズ] で表示される”カスタマイズ”ダイアログの”キーボード”で行います。Ctrl・Alt・Shiftチェックボックスは、オンにすると、それぞれCtrlキー・Altキー・Shiftキーを同時に押しながらという設定になります。キーボードアクセレレータとエミュレータのキー割り当ては、重複してはいけません。また、”プリセットキー”では、キーボードの種類にあわせた予め設定されたキーをまとめて設定できます。この設定は、次回の起動時から有効になります。

マウスホイール設定の変更

 メニュー [ツール]-[カスタマイズ] で表示される”カスタマイズ”ダイアログの”マウスホイール”で行います。同時キーの項目は、そのキーを押しながらホイールすることを意味します。内容で、それに対する動作を設定します。重複する割り当てを行おうとした場合、重複した設定をしようとしたホイール操作の前の割り当てと重複している割り当てが交換される形で設定が行われます。

ジョイスティックのボタン割り当ての変更

 メニュー [ツール]-[カスタマイズ] で表示される”カスタマイズ”ダイアログの”ジョイスティック”で行います。内容でコントローラーのボタンを選択し、値でそれに割り当てるジョイスティックのボタンを設定します。重複する割り当てを行おうとした場合、重複した設定をしようとしたボタンの前の割り当てと重複している割り当てが交換される形で設定が行われます。

上書き保存時に確認のメッセージボックスの表示

 上書き保存時に確認のメッセージボックスを表示し、誤って保存してしまうことを防ぐことができます。このメッセージボックスの表示・非表示は、メニュー [ツール] - [オプション] で、”オプション”ダイアログを開き、”アプリケーション”のページ内の”上書き保存時に、確認メッセージボックスを表示する。”のオン・オフで、設定できます。

オブジェクトビューの補助ビットマップの非表示

 高度な改造マリオ作成者向けな機能として、オブジェクトビューに表示されるキノコなどの補助ビットマップを非表示にできます。メニュー [ツール] - [オプション] で、”オプション”ダイアログを開き、”オブジェクトビュー”のページ内の”補助ビットマップを非表示にする”のオン・オフで、それぞれ非表示・表示に設定できます。

6.トラブルシューティング

 問題に遭遇した場合の解決法として、参考にしてください。

アプリケーション関連

(1) キーボードによる編集で、オブジェクトを動かせない。

オブジェクトの第1バイトにマップの場合はFDH、敵の場合はFFH(それぞれ、オブジェクトの終了示す。)を作るような移動は、行えないようになっています。

1ページに1つしかない改ページフラグを持つオブジェクトを他のページに移動させることは、行えないようになっています。

(2) ワールドやエリアの表示が、”ルームの変更”ダイアログボックスと実際とで違っている。

 ワールドの区分を設定するデータが適切でないことが原因です。”ワールドの区分の更新”ツールを実行して解決します。

(3) ルーム間移動の命令がうまく働かない。

 ルーム間移動の命令を有効にしたいワールドを正しく設定する必要があります。

マップ作成関連

(1) 斧を踏んだときにクッパの橋が落ちない。

 クッパの橋や斧の地形オブジェクトのあるページが奇数ページである場合、そのようなことが状態が発生します。偶数ページに変更してください。

(2) 地形オブジェクトが消えてしまう。

 縦に多数のオブジェクトを(約4つ以上)配置している場合、そのようなことが起こります。縦にあまり重ならないよう工夫して配置してみてください。

(3) エリアの表示がおかしくなる。

 幅9・高さ8の階段を長さ0以外の地形オブジェクトを設置した場合、その次のエリアからそのような問題が発生します。階段の長さを0に設定してください。

(4) ルームの長さを長くしたい。

 これは、キーボード入力による編集では、行うことができません。まず、そのルームの一番最後のオブジェクトを選択してください。ただし、そのオブジェクトは、そのページの唯一のオブジェクトであってはいけません。そして、オブジェクトビューまたは、オブジェクトリストでダブルクリックして表示される「編集」ダイアログで、改ページフラグのチェックボックスをオンにして「OK」ボタンをクリックします。するとそのオブジェクトによって、1ページ分だけルームが長くなるはずです。

(5) 1-3などのオリジナルでは他ルームへ行く術のないエリアで、他ルームへの移動を可能にしたい。

 そのようなルームには、敵オブジェクトの一つである「ルーム間移動の命令」が一つもないはずです。「ルーム間移動の命令」によって移動先ルームを指定するため、このようなルームから他のルームへの移動を行わせたい場合、「ルーム間移動の命令」をそのルームに配置することが必要です。解決法としては、他のルームから使用されていない「ルーム間移動の命令」のオブジェクトを「送る」コマンドで、そのルームへ移動させます。もう一つ、あまりお勧めできない解決法があります。敵編集モードにし、適当な敵オブジェクトで編集ダイアログを開き、バイナリ入力で、1バイト目をXEH(Xは任意)と入力し、無理やりに「ルーム間移動の命令」を作ってしまうということです。この操作を行うと、敵データ終了データが無効になってしまう等の予期せぬ症状が発生することがありますので、データの後処理には細心の注意が必要です。なお、敵データ終了データが無効になってしまう問題は、この方法によってそのルームに「ルーム間移動の命令」を偶数個ずつ増やすことで回避できます。

7.参考文献

k1氏: スーパーマリオオリジナルマップ作成講座
 ルーム、ページ、改ページフラグ、ページ送りコマンド、ルーム間移動の命令、ループ、ループコマンドの用語が定義されている他、敵・地形オブジェクトのデータの詳細について分かりやすく書かれています。


(C) 1999-2012 M.K.S
本文書に登場する登場する会社名・商品名は、一般に各社の商標または登録商標です。