メインコンテンツまでスキップ
バージョン: 1.2.0

設定ファイル (_map_list.yaml)

Map Scanner と Collision Checker では各種設定を _map_list.yaml という共通の設定ファイルに記述します。

備考

_map_list.yamlPython/map_data/{ゲームの名前} フォルダ以下に配置してください

_map_list.yaml に記述すべき内容は以下の通りです。

凡例

以下は、Map Scanner の Python/map_data/unity_demo/_map_list.yaml です。

engine_type: unity # ゲームエンジンの種別
env_path: ./playable_sample_unity/build/Playable_Sample_Unity.exe # コリジョンチェック時に使用するゲームのバイナリパス

scan_info:
scan_speed: 6 # スキャン速度 debug移動コードと速度変更コードと対応
grid_cell_size: 0.2 # スキャングリッドサイズ(生成するボクセルマップのボクセルのサイズ)
scan_window_size:
front_back: 3 # スキャンウィンドウの前後サイズ laycastがカバーする前後の範囲
top_bottom: 12 # スキャンウィンドウの上下サイズ laycastがカバーする上下の範囲
scan_window_overlap_count: # スキャンの重複回数 laycastの配置方法とスキャン結果に基づいて調整
front_back: 2 # スキャンウィンドウの前後繰り返し回数
top_bottom: 2 # スキャンウィンドウの上下繰り返し回数
scan_window_overlap_offset: # スキャンの重複進行距離 laycastの配置方法とスキャン結果に基づいて調整
front_back: 1.6 # スキャンウィンドウを前後に繰り返した場合、ステップ距離をどのくらい保つか
top_bottom: 4.5 # スキャンウィンドウを上下に繰り返した場合、ステップ距離をどのくらい保つか

step_move_limits:
horizontal_move_limit: 5 # ジャンプ時 水平に最大距離
upward_move_limit: 1.4 # ジャンプ時 上に最大距離
downward_move_limit: 10 # ジャンプ時 下に最大距離
player_height: 1.8 # キャラクターの身長

collision_check_params: # コリジョンチェック用パラメータ
reset_limit: 300 # 一回の衝突でこの時間を超えた場合リセット処理を実行する
move: # 通常移動による衝突
normal_overstep: 100 # 壁方向への移動時間(ステップ数: 基本的に1/30秒が1ステップとなります)
random_overstep: 50 # ランダム方向への移動時間
random_move_num: 5 # ランダム方向への移動回数
jump:
max_jump_num: 5 # 際の最大でジャンプする回数
jump_interval: 150 # ジャンプ操作の実行間隔(ステップ数)

map_params:
Default:
name: デフォルトマップ
drop_threshold: -10 # このマップにおける落下判定しきい値(コリジョンチェックで使用)
save_data: None
x:
end: 24
start: -14
y:
end: 10
start: -5
z:
end: 35
start: -5
plot:
coef_x: 40.893675289616034
coef_y: 40.94601643880208
bias_x: 514.465341810491
bias_y: 88.36738891601567
search_start:
x: 0
y: 0
z: 0

各フィールドの解説

備考

ゲームエンジンによって距離単位が異なっており、Playable! の各ツールは差を吸収しません。
ゲーム内で使用される速度の単位で指定する必要があることに注意してください。

engine_type (str)

使用しているゲームエンジンの種別です。 使用するゲームエンジンによって座標系や距離単位が異なるので、この値を参照して内部処理を切り替えています。

現在 unityunreal_engine が選択可能です。

env_path (str)

対象のゲームのパスです。 Collision Checker でのみ参照します。

Map Scanner では GUI から実行するゲームのパスを指定します。

scan_info

マップスキャンに関する設定項目です

image

scan_speed (float)

スキャン速度です。 数値が大きいほど短時間でスキャンできますが、大きすぎるとスキャン結果に悪影響があります

grid_cell_size (float)

生成するボクセルマップのボクセルの一辺の長さ。小さいほど精細にスキャンすることになります

scan_window_size

スキャンウィンドウサイズです。 ゲーム側のパラメータと合わせて変える必要があり、通常は Playable! ユーザーが調整する必要がありません。

front_back (float)

スキャンウィンドウの前後サイズ / laycast がカバーする前後の範囲

top_bottom (float)

スキャンウィンドウの上下サイズ / laycast がカバーする上下の範囲

scan_window_overlap_count

スキャンの重複回数です。 laycast の配置方法とスキャン結果に基づいて調整することになるパラメータで、 scan_window_size と同じく通常は Playable! ユーザーが調整する必要がありません。

front_back (int)

スキャンウィンドウの前後繰り返し回数

top_bottom (int)

スキャンウィンドウの上下繰り返し回数

scan_window_overlap_offset

スキャンの重複進行距離です。 laycast の配置方法とスキャン結果に基づいて調整することになるパラメータで、 scan_window_size と同じく通常は Playable! ユーザーが調整する必要がありません。

front_back (float)

スキャンウィンドウを前後に繰り返した場合、ステップ距離をどのくらい保つか

top_bottom (float)

スキャンウィンドウを上下に繰り返した場合、ステップ距離をどのくらい保つか

step_move_limits

スキャン後に行う、Playable! 独自の経路探索で使用するパラメータです。

horizontal_move_limit (float)

プレイヤーキャラクターがジャンプした際の最大移動距離(水平方向)です。

upward_move_limit (float)

プレイヤーキャラクターがジャンプして上ることができる最大の高さです。

downward_move_limit (float)

プレイヤーキャラクターが落下できる最大の高さです。

備考

プレイヤーが一定以上落下するとダメージを負うようなケースを考慮するためのパラメータです。

player_height (float)

プレイヤーキャラクターの身長です。

collision_check_params:

コリジョンチェック用パラメータです。

reset_limit (int)

一回の衝突に欠ける最大時間です。 この数値の秒数を超えた場合、内部でリセット処理を実行します。

move

衝突に関するパラメータです。

normal_overstep (int)

壁方向への移動時間です。 単位はステップ数で、基本的に 1/30 秒が 1 ステップとなります。

random_overstep (int)

壁方向への移動の後に行う、ランダム方向への移動時間です。

random_move_num (int)

ランダム方向への移動回数です。

備考

通常移動による衝突は 1 回あたり、 normal_overstep + (random_move_num * random_overstep) * 1/30 秒必要となります。

jump

ジャンプしながらの衝突に関するパラメータです。

max_jump_num (int)

1 回の試行でジャンプする回数の最大値です。

jump_interval (int)

ジャンプ操作の実行間隔です。 (単位はステップ数)

備考

normal_overstep で指定した時間の中で jump_interval 間隔でジャンプすることになるので、数値の組み合わせによっては max_jump_num よりも少ない回数しかジャンプしない場合があります。

map_params

スキャン/コリジョンチェック対象のマップに関する情報です。

{マップ名}

ゲームごとに複数のマップを扱えるようにマップ名毎にデータを定義するようにしています。 マップごとに適切な ID を付けてください。

Name (str)

ツール上の表示に利用するマップ名です。 日本語などを利用できるのでより扱いやすい名前を設定して下さい。

drop_threshold (float)

このマップにおける落下判定しきい値です。コリジョンに問題があり、プレイヤーキャラクターが奈落落ちしてしまったかどうかをこの値を使って判定します。

Savedata (str)

セーブデータのファイル名です。 そのマップに移動する為にセーブデータが必要な場合はこのフィールドにセーブデータのファイル名を指定してください。

X

マップの範囲(X 軸) Start ~ End の範囲をスキャン対象とします。

  • End (float)
  • Start (float)
Y

マップの範囲(Y 軸) Start ~ End の範囲をスキャン対象とします。

  • End (float)
  • Start (float)
Z

マップの範囲(Z 軸) Start ~ End の範囲をスキャン対象とします。

  • End (float)
  • Start (float)
Plot

2D マップとゲーム内座標の変換用係数です。map_param_calc.py を用いて計算した結果をそのまま利用して下さい。

  • Coef_X (float)
  • Coef_Y (float)
  • Bias_X (float)
  • Bias_Y (float)
Search_Start

経路探索の始点です。 map_scanner_searcher.py は、ここから移動可能な範囲と経路を探索していきます。

  • X (float): x
  • Y (float): y
  • Z (float): z