RPGツクール2000/システム
■ドット移動処理(ピクチャーキャラ)について
(更新:2015/12/26)


ドット移動のキャラクター表示に関するページです。



☆ドットとは?
パソコンの画面は「ドット」と呼ばれる小さな点の集まりで出来ています。

RPGツクール2000のゲーム画面は、横320×縦240ドットで表示しており、
1マスのドット数は、横16×縦16ドットになります。





RPGツクール2000のゲーム画面は、通常は「全画面」か「200%」の表示なので、
正確に言えば320×240ドットの表示ではありません。
200%表示で言えば「横640×縦480ドット」になります。

本来なら「ピクセル」の単位の方が正しいと思われますが、
ゲームの世界では「ドット」と言う言葉が古くから使われており、
実際に「ドット移動」などの言葉もありますので、
このページでも「ドット」の単位を使用しています。



☆ドット移動とは?
RPGツクール2000のキャラクターの移動は、マス単位の移動になっています。
それに対してドット移動では、
マスに関係なく自由に細かくキャラクターを移動させる事ができます。



おお!これならドット移動の方が良い!」と軽く考える方がいるかもしれませんが、
RPGツクール2000でドット移動を行うためには、移動処理を自作する必要があり、
マス移動に比べて、非常に高度な制作技術が必要になります。
まずツクールの初心者が手を出すべきではない代物と言えます。





上の画像は、RPGツクール2000のサンプルゲーム「海賊」の一場面です。
通常のマス移動ならば比較的簡単に作れそうなこのマップもドット移動で作る場合は、
非常に難しいと言えます。



ドット移動を制作する場合、イベントコマンドの使い方やツクールの仕様などを熟知し、
ドット移動に合わせたゲームのルールや操作方法などを考えて、
出来る限り処理落ちが起きないように作る必要があります。

ドット移動は制作が難しい上、作品ごとに独自のイベント処理を作り上げる必要があるため、
基本的に「誰かに聞きながら作る」と言った制作方法は使えません。
制作途中に問題が発生しても、全て問題を自力で解決する必要があります。



☆ドット移動の仕様
RPGツクール2000で設定する場合のドット移動の仕様です。
この仕様を考慮してドット移動処理を作る必要があります。



■キャラクターの表示にはピクチャーを使用
主人公や町の人などのキャラクターをドット移動で移動させる場合は、
そのキャラクターの表示は全てピクチャーで表示します。

このピクチャーは単に1枚の画像を画面上に表示するだけなので、
移動時の足踏みアニメーションなども自作する必要があります。


ピクチャーは、マップイベントやチップセットの上に表示されます。
そのため、通常ならばキャラクターの体が隠れるような場面でも、
ピクチャーキャラの場合は、体が隠れずに表示されます。
▼通常キャラの場合
▼ピクチャーキャラの場合
この問題を解決させるためには、
ピクチャーキャラの上に地形を表示するためのピクチャーを表示したり、
画面の下にいるピクチャーキャラほど、
大きいピクチャー番号で表示するなどの対策が必要です。


ピクチャーの表示常に実行し続けるような処理を行うと、
非常に重い処理落ちが発生します。

この処理落ちは、パソコンの処理能力によって変化しますので、パソコンの処理能力が高いと、
常にピクチャーの連続表示を行っても処理落ちが分かりにくい場合があります。

多くのプレイヤーが快適にゲームをプレーして頂くためには、
出来る限りピクチャーの連続表示は行わないようにした方が良いでしょう。



■移動処理や当たり判定も自作になる
ピクチャーキャラが主人公の場合、
方向キーが押された時にピクチャーキャラを移動させる処理は自作になります。

主人公以外のピクチャーキャラが自動的に移動する処理なども自作になり、
「主人公に近寄る」や「移動ルート指定」なども自作になります。


ピクチャーキャラの移動時における地形やマップイベント、
または他のピクチャーキャラの通行可能・不可の判断も自作になります。

地形の通行可能・不可の判断は、地形IDを読み取って行います。
▼設定例
地形ID「1」=通行可能
地形ID「2」=通行不可


マップイベントの通行可能・不可の判断は、
イベントIDが11以上は通行不可」としたり、
マップイベントの1ページ目に通行可能を判断する設定を行う必要があります。

逆に通常の主人公やマップイベントが移動する際に、
ピクチャーキャラとは重ならないように移動させる場合は、
ピクチャーの位置に通行不可のマップイベントを設定したり、
通常の主人公やマップイベントの移動処理を自作する必要があります。



■他にも色々と自作
デフォルトの戦闘画面へ移動するエンカウントは自作になります。

イベントコマンドキャラクターのフラッシュキャラクターの動作指定
主人公のグラフィック変更なども自作になります。

決定キーが押された時のマップイベントの実行なども自作になります。



■ちょっとしたテクニックも必要に!?
戦闘アニメをピクチャーキャラの位置に表示する場合は、
ピクチャーキャラの近くのマスへマップイベントを配置して、
そのマップイベントの位置に戦闘アニメを表示するようなテクニックが必要です。



☆どの範囲までをドット移動させるのか?
一言に「ドット移動」と言っても、
ピクチャーキャラの種類画面スクロールの種類の組み合わせによって、
いくつかのパターンに分かれます。

ピクチャーキャラ 制作難易度 補足
主人公のみ ★★ ・移動する際は、自作の移動処理が必要。
・「主人公に近寄る」なども自作する必要がある。
・ピクチャーの枚数や処理落ちなどを考えると、
 あまり多くのピクチャーキャラは表示できない。
主人公以外のみ(単体) ★★
主人公以外のみ(複数) ★★★★
全てのキャラ ★★★★★

画面スクロール 制作難易度 補足
固定画面 ・固定画面とはマップサイズが20×15マスで、
 マップループの設定が無い場合を言います。
マス単位のスクロール ★★★ ・強制スクロールでは綺麗に表示できるが、
 強制スクロールではない場合は、
 スクロール時に多少カクカクした感じになる。
・ピクチャーがある位置のマス座標を調べる場合は、
 画面スクロールによる画面ずれを考慮して、
 現在のマス座標を調べる必要がある。
ドット単位のスクロール ★★★★★ ・チップセットやマップイベントの表示が使えず、
 地形もキャラクターも全てピクチャーで表示。

制作難易度が高い場合は、イベント設定が難しくなるだけでなく、
制作できる範囲が狭くなる場合もあり、より理想のゲームを完成させるのが難しくなります。



☆移動速度に関して
ピクチャーキャラは、60分の1秒単位で移動します。
この60分の1秒で何ドット移動させるのかによって、移動速度が変わってきます。

例えば60分の1秒ごとに1ドットずつ細かく移動させる場合は、
移動速度は通常キャラの「1/2倍速」と同じ速度になります。

主人公の初期速度である「標準速」の場合は、2ドットずつの移動となり、
もっとドット数を増やせば、ピクチャーキャラの移動速度が速くなります。



☆画面スクロールに関して
画面スクロールは、
マス単位(透明な主人公を歩かせて画面スクロールさせる)と、
ドット単位(マップ全体を少しずつ移動させてスクロールさせる)があります。



■マス単位の画面スクロール
通常の主人公を透明キャラにして歩かせる事で画面スクロールを行います。

この方法の場合、チップセットやマップイベントはそのまま利用できるので、
比較的ゲームが作りやすくなります。

問題点としては、画面スクロールが1マス単位で行われるので、
ピクチャーキャラがある一定の距離まで移動したらスクロールさせるようになり、
若干不自然な画面スクロールになります。
▼2マス移動した時のスクロールイメージ

横スクロールだけではなく、縦のスクロールも加わりますと、
横スクロール中(横へ移動中)は縦へのスクロールが出来ないので、
よりスムーズなスクロールが難しくなります。


▼画面位置を座標位置に変換する時の注意点


左の画像ではピクチャーキャラの画面位置は、
X=152ドット
Y=120ドット

となっています。

ピクチャーキャラがいる位置のマス座標は、
ピクチャーの表示位置を記憶する変数を、
「除算16」にしてマス座標を算出します。
152÷16=X座標「9」
120÷16=Y座標「7」








右へ2マス移動しました。

ピクチャーキャラの画面位置は、
X=152ドット
Y=120ドット

と同じままです。

ここで「除算16」を行いますと、
152÷16=X座標「9」
120÷16=Y座標「7」

となり、正確な座標にはなりません。

正確な座標にするためには、
画面スクロールでずれた分だけ、
座標位置を調整する必要があります。


▼画面のずれを算出する方法
画面スクロールがある場合は、マップの左上にマップイベント「画面ずれ用」を設定し、
そのマップイベントの画面位置から現在の画面のずれを算出します。





左のゲーム画面のように、
マップイベントが画面上に見える状態では、
画面位置X=8
画面位置Y=16

となっています。

そのため、
◆変数の操作:[0011]代入,画面ずれ用の画面X
◆変数の操作:[0012]代入,画面ずれ用の画面Y
◆変数の操作:[0011]減算,8
◆変数の操作:[0012]減算,16

と設定する事で、
画面位置X=0
画面位置Y=0

になり、画面のずれが無い状態になります。


右へ2マス移動しました。

すると、マップイベントの画面位置は、
画面位置X=32
画面位置Y=0

に変わります。

マス座標を出す場合は、
ピクチャーキャラの画面位置に、
この画面ずれの値を加算した上で、
「除算16」を実行すれば座標位置が出ます。

(152ドット32)÷16=X座標「11」
(120ドット) ÷16=Y座標「7」

※複数のマップに画面ずれを調べるマップイベントを設定している場合で、
 コモンイベントでこの画面ずれのマップイベントを利用している場合は、
 全てのマップでイベントIDを同じにしてください。




■ドット単位の画面スクロール・ピクチャー
マップ全体をピクチャーで表示して、
そのピクチャーを少しずつ移動させる事で画面スクロールを行います。

▼RPGツクール2000のサンプルゲーム「海賊」のマップ「ちっちゃい町」を画像化


マップ全体をピクチャーで表示しているので、
マップ上のキャラクター表示は全てピクチャーキャラになります。

地形がピクチャーキャラの上に重なるようにする場合は、
上に重ねるための画像を用意する必要があります。
▼マップ「ちっちゃい町」のキャラの上に表示するための画像


なお、画像サイズが大きい場合は、素材管理からのインポートが出来ないため、
作品フォルダ内のフォルダ「Picture」へ直接画像ファイルを入れる必要があり、
透明色の設定(カラーパレット0番を透明色にする)も行う必要があります。



■ドット単位の画面スクロール・遠景
遠景を利用したドット単位の画面スクロールを行う方法もあります。

この方法は仕様上の問題点が多くあるため、あまり実用的ではありませんが、
上記のピクチャーを使った画面スクロールよりは設定が楽であり、
また地形表示用のピクチャーが不要になるなどの利点もあります。

【1】
新規マップを作成し、マップの設定を以下のように設定。
マップサイズ:160×120
遠景:空1


【2】
データベース「チップセット」を開き、
下層チップの右下にあるピンク色のチップを「○(通行可能)」に変えてください。


【3】
マップの下層チップをピンク色のチップで塗り潰してください。


【4】
マップ上にパーティーの初期位置を設定し、テストプレーを実行してみてください。

*注意点*
この方法の場合、マップの端では主人公が従来の速度で高速移動してしまいます。
これは仕様上の問題なので、もしも主人公の表示をそのまま利用する場合は、
マップの端には主人公を移動させないようにする必要があります。

チップセットやマップイベントの画像を設定しても、
それらの画像はドット移動にはなりません。
これも仕様上の問題なので、解決方法はありません。



☆補足
ゲーム開始時に通常の主人公を表示しない場合は、
データベース「システム」初期パーティーの1人目を「なし」にしてください。
【ゲーム開始時に主人公を表示しないのページを開く】



◎関連ページ
 ●ドット移動処理(ピクチャーキャラ)について
 ○ピクチャーキャラの操作処理
 ┗
○ピクチャーキャラの当たり判定

 ●イベントコマンド:ピクチャーの表示


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール