[VX] 乗り物での移動を3Dマップで行う

擬似3Dフィールドマップを表示するスクリプトは、複数の方が
作成し公開されています。3Dマップを表示するスクリプトは
そんな先駆者達の後を追う形となりますが、自分の納得する
画面が得られるよう独自にアルゴリズムを考案し、
素材化しました。

画像

スクリプト素材のダウンロードは↓
http://www.lm-t.com/blog/3dmap_101.zip

[2013/8/24追記]
不具合を修正しました。(Ver1.01)
拙作スクリプトとの競合解決を行いました。(Ver1.01)


-----機能説明ここから-----
■基本情報■
1.機能概要
 3Dスクリプトは、乗り物に搭乗した時の移動を擬似3Dで表現された
 マップ上で行うことができるようにするものです。
 このスクリプトにより、乗り物での移動がより臨場感のあるものに
 変化します。


2.3Dマップの設定
 3Dマップの設定は、Configモジュールに記述されているパラメータを
 変更することで行います。設定するパラメータは下記の通りです。

 (1) MAP3D_OPTIONS
  3Dマップの動作オプションを列挙したパラメータです。
  このオプションは、乗り物ごとに設定するようになっており、
  動作オプションには下記の種類が存在します。

  ・:ENABLE
   対象の乗り物の移動で3Dマップを使用するかどうかを決定します。
   trueを指定すると、3Dマップを使用します。
   falseを指定すると、通常マップを使用します。(VX標準の動作)

   ただし、乗り物に搭乗したマップが縦横両方ともループする
   設定になっていなければなりません。
   なっていない場合は通常マップで移動します。

   画像


  ・:DISTANT_VIEW
   3Dマップに使用する遠景画像のファイル名を指定します。
   遠景画像は、Graphics/System/ 配下から読み込もうとします。
   nilを指定すると遠景画像を表示しません。(非推奨)

 (2) MAP3D_SUPPORT_CHANGE_DISTANT_VIEW
  ゲーム中に遠景画像を変更する機能を有効化するかどうかを
  決定します。この値がtrueになっていると、イベントの
  スクリプト命令により、遠景画像を変更することができるように
  なります。

  ただし、この機能を有効にする場合は「環境変数スクリプト」
  (http://lm-t.at.webry.info/201001/article_2.html)
  が導入されていなければなりません。導入されていないと
  3Dマップにシーンチェンジした時にエラーが発生します。
  画像

  この機能が不要な場合はfalseを設定しておいてください。

  遠景画像の変更方法については、5章を参照してください。


3.制限事項
 3Dマップスクリプトでは、処理速度を向上させるために、
 3Dマップでの移動時にいくつかのVX標準の機能を無効化しています。

 (1) TileA3, TileA4のオートタイルは無効
  3Dマップでは、TileA3, TileA4のオートタイル処理を実施しません。
  また、これらのタイルに自動で付加される影も描画されません。

 (2) イベントは無効
  3Dマップ上でイベントは、イベントの種類に限らず、
  条件を満たしていても実行されません。
  イベントは乗り物を降りた後で実行されます。

 (3) イベントの「乗り物の乗降」命令では3Dマップに遷移できない
  イベント処理で乗り物に乗った場合は通常マップでの移動になります。

 (4) タイマーは無効
  3Dマップ上ではタイマーが表示されず、カウントダウンされません。

 (5) グラフィックがキャラクターのイベントは表示されない
  3Dマップ上に表示されるイベントは、TileB~Eのグラフィックが
  指定されているものに限られます。

 (6) セーブできない
  3Dマップ上ではセーブ機能が有効になっていてもセーブできません。

 (7) コモンイベントを持つアイテム・スキルは使用不可
  3Dマップ上では、使用時にコモンイベントを実行する
  アイテムとスキルは使用できません。


4.3Dマップの画面レイアウト
 3Dマップの画面レイアウトは下記のようになっています。
 画像

 遠景は、座標(0, 0)より拡大・縮小・回転などの効果なしで
 3Dマップの上に表示されます。
 遠景画像を独自で用意する場合は上記の処理を前提で
 制作してください。


5.遠景画像の変更
 ゲーム中に遠景画像を変更したい場合は「スクリプト命令」を
 用いて行います。書式は次の通りです。

 ・小型船の遠景画像を変更
  Ex.set_boat_distant_view(
   name
  )


 ・大型船の遠景画像を変更
  Ex.set_ship_distant_view(
   name
  )


 ・飛行船の遠景画像を変更
  Ex.set__distant_view(
   name
  )


 (1) name
  遠景画像のファイル名を指定します。
  遠景画像は、Graphics/System/ 配下から読み込もうとします。
  ファイル名に拡張子を付ける必要はありません。

 上記の関数を用いて遠景画像を変更すると、変更内容が
 セーブデータに含まれます。次回セーブデータをロードしても
 変更内容は永続しています。


6.表示例
 3Dマップは、画面の色調変更命令などを駆使すると、
 昼・夕方・夜を表現することも可能です。
 また、天候の表示もサポートしているので、表現方法を
 工夫することで綺麗な映像を得ることができます。

 (1) 昼
  画像

 (2) 夕方
  画像

 (3) 夜
  画像



■導入手順■
1.スクリプトの追加と置換
 (1) 追加
  以下のスクリプトは標準のスクリプトには存在しないものなので、
  手動で追加する必要があります。スクリプトの名前は各ファイル名
  から「.txt」を除いたものにしてください。

  Config.txt
  Ex.txt
  Game_Map3d.txt
  MapData3d.txt
  Scene_Map3d.txt
  Spriteset_Map3d.txt
  Tilemap3d.txt

  ただし、過去に公開された拙作のスクリプト素材を導入済みで、
  すでに同じ名前のスクリプトが存在する場合は、以下のコメントで
  囲まれている部分を手動で追加してください。

  #T14-052 NEW--->
  #<--------------

 (2) 置換
  以下のスクリプトの内容を書き換える作業を行います。

  Game_Map.txt   → Game_Map
  Game_Player.txt  → Game_Player
  Scene_Battle.txt → Scene_Battle
  Scene_Item.txt  → Scene_Item
  Scene_Map.txt   → Scene_Map
  Scene_Menu.txt  → Scene_Menu
  Scene_Skill.txt  → Scene_Skill
  Scene_Title.txt  → Scene_Title

  上記で示したスクリプトに、以下のコメントで囲まれている部分を
  手動で追加してください。

  #T14-052 ADD--->
  #<--------------
  #T14-052 1.01 ADD--->
  #<-------------------

  変更する箇所を間違えないように注意してください。

 ●注意
 置換作業を行う前に必ずバックアップを取っておくようにしてください。
 元のスクリプトの状況によっては、置換を行うことでスクリプトが
 正常に動作しなくなることがあります。


2.遠景画像の配置
 同梱されている「DistantView.png」を
 (制作中ゲームフォルダ)\Graphics\System 配下にコピーしてください。
-----機能説明ここまで-----

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 3

驚いた 驚いた
ナイス

この記事へのコメント

この記事へのトラックバック