RPGツクール2000/システム【サイトトップへ戻る】
■ドット移動処理(ピクチャーキャラ)について
(更新:2020/07/05)


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


ショートカット
■ドットとは?
■ドット移動は通常の移動とどう違う?
■ドット移動の仕様
■どの範囲までをドット移動させるのか?
■移動速度に関して
■画面スクロールに関して
■補足


  
■ドットとは?

パソコンの画面表示は、小さな点を集めて表示しています。

▼ゲーム画面を拡大すると点で表示されている事が分かります。


この「画像を表す点の単位」として「ドット」と「ピクセル」があります。

ドットパソコン画面(ディスプレイ)にある点の単位であり、
ピクセル画像の点の単位になります。

例えば下図は16×16ピクセルの画像を10倍に拡大した物です。

ドット単位の場合は160×160ドットになりますが、
ピクセル単位では拡大表示しても16×16ピクセルは変わりません。





RPGツクール2000のゲーム画面内の処理サイズは「横320×縦240ピクセル」になりますが、
ゲーム画面の表示サイズは、基本的に「全画面」か「200%」になるので、
パソコン画面上の点の数で言えば「320×240ドット」ではありません。

そのため、RPGツクール2000の「ドット移動」は正確に言えば「ピクセル単位の移動」になりますが、
しかし「ドット移動」はゲーム用語で「細かくキャラを移動する」と言った意味で知られているので、
このページでも「ドット移動」の名称を使用しています。


▲トップへ戻る▲


  
■ドット移動は通常の移動とどう違う?

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倍速」と同じ速度になります。

60分の1秒ごとに2ドットずつの移動すると、主人公の初期速度である「標準速」になり、
もっと60分の1秒ごとの移動量を増やせば、移動速度も速くなります。


▲トップへ戻る▲


  
■画面スクロールに関して

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



■マス単位の画面スクロール

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

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

問題点としては、画面スクロールが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」

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

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



▼画面のずれを算出する方法

画面スクロールがある場合は、乗り物(小型船)を使うと良いでしょう。

乗り物をどこにも設置していない場合は、
マップID=0(存在しないマップ)
  X座標=0
  Y座標=0

に置かれます。
つまりマップの左上に置かれます。



左のゲーム画面のようにマップの左上のマスが
画面上に見える状態では、乗り物の画面位置は、
画面位置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」

なお、乗り物の画面位置の取得は、別のマップにある乗り物でも問題無く取得する事ができるので、
乗り物を現在のマップの左上へ移動にような設定は必要ありません。



■ドット単位の画面スクロール・ピクチャー

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

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


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

地形がピクチャーキャラの上に重なるようにする場合は、
上に重ねるための画像を用意する必要があります。

▼マップ「ちっちゃい町」のキャラの上に表示するための画像


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



■ドット単位の画面スクロール・遠景

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

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



【1】

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





【2】

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





【3】

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





【4】

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



*注意点*

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

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


▲トップへ戻る▲



■補足

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


▲トップへ戻る▲



◎関連ページ

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

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

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