Left 4 Deadのマッピングの基本
Left 4 Deadのマッピングに関して必要なエンティティやnavファイルの作成方法などのメモです。
L4Dキャンペーンの共同作成
アップロード版アップロードするためにはパスワードが必要です。
L4Dマップ作成に関して
マッピングに関してはマップの細かいディティールさえ作れれば、エンティティなどは最低限で作れるので簡単なほうですが、 キャンペーンを作るとなると最低でも3−5マップは同じテーマで作らないといけないため、かなりの労力がかかります。 blogにも書いてありますが、共同で作るキャンペーン企画もしていますので、最初は一度複数人数で作ったほうがいいかもしれません。よければご参加ください。
マップを作っていて気になるポイントを羅列
- ゾンビの沸きに関してはNAVファイルのある場所でさらにプレイヤーが見れない場所に沸きます。これをマップ側でどこに何を沸かすなので指定は 現在のところ出来ません。沸かすゾンビを増やしたい場合は、部屋を作りその出口を見えなくするとよく沸くようです。 入り込まないと見えない場所を作るようにしてみましょう。
- パニックイベントは発生させても一定時間で終わります。
- スタート地点からlandmarkやchangelevel_triggerがある場所までNAVファイルとして繋がっていないとNAVエラーが出ます。
- 武器や火炎瓶、ヘルスキットの沸く場所をランダムに変える方法はtemplateエンティティを使ってpickrandomで沸かす方法があります。
- プレイヤーが通れるか通れないか位の細い道はNAVファイルを作るときに道が作られない場合があるので避けたほうがいい。
- 通常のマッピングで使われる水の表現はプレイヤーが沈む深さになるとマップ読み込みエラーが起こる。膝くらいまでの深さにしておいたほうがいいでしょう。
- FOGなどで見れる範囲がかなり狭いためポリゴンが少なく書かれ、比較的軽いマップになる。ライティングもあまり必要ない。
NAVファイルの作成方法
NAVファイルはBOTやゾンビを動かすための道しるべです。これが無いとBOTは付いてきませんし、ゾンビも沸きません。 CSSでは自動的にサーバーで作成していたようですが、カスタムマップの場合は一緒につけないとサーバーのBOTが多いマップなので 不具合がおきると思います。マップ公開時も一緒にアップしておくべきでしょう。
NAVファイルの作成方法は
ゲーム中にコンソールコマンドでsv_cheats 1
director_stop これで敵がこれ以降沸かなくなります。
スタート地点でコンソールを開き
nav_mark_walkable
を打ちます。自分の居る位置にマークが表示されます。ゴール地点にも同じようにマークをつけます。(この作業が必要かわかりませんが一応やってます)
nav_generate
これでnavファイルを自動で作成し始めます。マップにディスプレイメントが多いと非常に時間が掛かります
終わったら
nav_save
でNAVファイルを保存してください。
これでゾンビが沸くはずです。ただしマップ自体にlandmarkやchangelevel_triggerなどのマップの目標が必要です。
キューブマップに関して
マップを普通に作ると反射物が紫色の色で反射してしまう現象はskyboxの設定によって起こります。 hammerのメニューのMap > Map Properties をクリックするとマップ全体のプロパティが表示されます。 そこのSkybox texture Nameをここの スカイボックスの指定で変更することによりスカイボックスを変更することが出来ますが、指定を間違えるとこの現象が起こります。
戻すためにはゲーム実行中時にコンソールから" buildcubemaps " を打ち込むと反射物をきれいにしてくれます。
また自分の持っている武器などが反射している場合はキューブマップを置いてください。env_cubemapをマップ上に適当に配置してください。 (大体10-20。公式では一部屋に1個単位で置いている。置き過ぎるとマップのサイズが増えます)
L4Dのエンティティ一覧
ここからの参照Environment
- env_detail_controller - Controls the fade distance of detail objects?
- env_outtro_stats - Used to roll the credits and ending statistics.
- env_tonemap_controller_ghost - A spectator only env_tonemap_controller?
- env_tonemap_controller_infected - An infected only env_tonemap_controller.
Filter
- filter_activator_team - 感染者と生存者のフィルター
Function
- func_button - Updated to give a target object an edge glow when facing the button and within +use range.
- func_detail_blocker - When touching a displacement, this entity prevents detail props from being displayed. Useful for creating paths in heavy detailed areas.
- func_nav_blocker - BOTを入れなくする場所
- func_orator - Something to do with interactable speech objects? (Point entity)
- func_playerinfected_clip - Blocks infected from accessing an area in versus mode.
- func_precipitation - Updated with a new rain and cinder effect.
- func_precipitation_blocker - Blocks func_precipitation effects?
- func_simpleladder - はしごのエンティティ
- fog_volume - 霧をコントロールするエンティティ
Information
- info_changelevel - このエリアに全員入ってセーフティールームを閉めるとマップが切り替わる
- info_director - AIディレクターの操作のためのエンティティ
- info_game_event_proxy - Triggers a game event.
- info_goal_infected_chase - A target for the bot infected.
- info_map_parameters - マップのパイプボムや火炎瓶などのアイテムの設定が出来るエンティティ
- info_survivor_position - 生存者が出現するポイント
- info_survivor_rescue - 生存者が復活するレスキュークローゼットの中のポイント
- info_zombie_spawn - 特殊感染者が出現するポイント。何が出現するかは調整が必要。詳しくは新米刑事さんの動画を参照
Light
- light_directional - A dynamic light_environment or env_sun of sorts? Currently unsupported by VRAD.
- light_spot - Updated to optionally cast dynamic shadows?
Misc.
- postprocess_controller - Controls postprocess effects.
- shadow_control - 光の影をコントロールするエンティティ
Point
- beam_spotlight - Creates a spotlight beam.
- point_deathfall_camera - If a player is in this camera's FOV, it automatically enables when a player is falling to their death. (The same time the player's scream is first heard.)
- point_viewcontrol_multiplayer - A L4D specific point_viewcontrol replacement?
- point_viewcontrol_survivor - A survivor only point_viewcontrol.
Prop
- prop_car_alarm - パニックイベントが起こる車のアラーム
- prop_car_glass - 車のガラス。
- prop_door_rotating_checkpoint - チェックポイントのセーフティールームのドア
- prop_health_cabinet - ヘルスパックやピルが置いてあるキャビネット
- prop_minigun - ミニガンを設置
Trigger
- trigger_auto_crouch - Automatically crouch the survivor when within the volume.
- trigger_finale - 最終イベントが起こるエリア。全員がここに入ってイベントが起こせるようになる。
- trigger_multiple - いろいろなことが起こせるトリガー。
- trigger_once - 一回だけ実行できるトリガー
Weapon Spawn
- weapon_ammo_spawn - A possible spawnpoint for ammo restock.
- weapon_autoshotgun_spawn - A possible spawnpoint for automatic shotguns.
- weapon_first_aid_kit_spawn - A possible spawnpoint for first aid kits.
- weapon_hunting_rifle_spawn - A possible spawnpoint for hunting rifles.
- weapon_molotov_spawn - A possible spawnpoint for Molotov cocktails.
- weapon_pain_pills_spawn - A possible spawnpoint for pain pills.
- weapon_pipe_bomb_spawn - A possible spawnpoint for pipe bombs.
- weapon_pistol_spawn - A possible spawnpoint for pistols.
- weapon_pumpshotgun_spawn - A possible spawnpoint for pump shotguns.
- weapon_rifle_spawn - A possible spawnpoint for assault rifles.
- weapon_smg_spawn - A possible spawnpoint for submachineguns.
L4Dの必要なエンティティ
point_clientcommand
An entity that issues commands to the client console, as if it was typed in by the player (if activator is a player, or the local player in single player).KEYS
- Name targetname
The name that other entities refer to this entity by.
INPUTS
OUTPUTS
info_director
AIディレクターに関するエンティティKEYS
- Name targetname
エンティティの名前。他のエンティティからこの名前を指定して命令を出す。
INPUTS
- StartIntro
- FinishIntro
- ForceSurvivorPositions
- ReleaseSurvivorPositions
- PanicEvent
- FireConceptToAny
イントロをはじめる
イントロを終わる。
Force the survivors to their starting positions and disable movement.
Release the survivors from their starting positions and enable movement.
パニックイベントを起こす。(一定時間)
OUTPUTS
- OnGameplayStart
- OnPanicEventFinished
- OnKilled
ゲームが始まったときに実行する
パニックイベントが終わったときに実行する
Fired when this entity is killed.
point_clientcommand
クライアントに命令を出すエンティティ。KEYS
- Name targetname
The name that other entities refer to this entity by.
INPUTS
- Kill
- KillHierarchy
- Command
Removes this entity from the world.
Removes this entity and all its children from the world.
OUTPUTS
prop_door_rotating_checkpoint
チェックポイントのセーフティールームにある回転するドアに関するエンティティ。これを閉めると後記のtrigger_changelevelが作動する。 同じルームに2つあっても動作するがどちらも閉めないとレベルは変わらない。見た目で二つ置きたいのなら片方はprop_staticにするとよい。 その際にはstatic用のモデルが存在するのでそちらを使うようにすればいい。INPUTとOUTPUTはあまり使うことがないと思われるので説明は削除
KEYS
- Name targetname
- Parent parentname
- Pitch Yaw Roll (Y Z X) angles
- Global Entity Name globalname
- World Model model
- Skin skin
- Disable Shadows disableshadows
- Slave Name slavename
- Body body
- Hardware Type hardware
- Ajar Angles (Pitch Yaw Roll) ajarangles
- Spawn Position
- Hinge Axis
- Rotation Distance (deg)
- Speed speed
- Fully Open Sound soundopenoverride
- Fully Closed Sound soundcloseoverride
- Moving Sound soundmoveoverride
- Delay Before close (-1 stay open) returndelay
- Damage Inflicted When Blocked dmg
- Health (0 = Unbreakable) health
- Locked Sound soundlockedoverride
- Unlocked Sound soundunlockedoverride
- Force Closed
- spawnflags spawnflags
- Open Direction opendir
エンティティの名前。他のエンティティからこの名前を指定して命令を出す。
親の名前。移動するドアなども作れるが不具合がありそう。
ドア全体の向き
Name by which this entity is linked to another entity in a different map. When the player transitions to a new map, entities in the new map with globalnames matching entities in the previous map will have the previous map's state copied over their state.
モデル指定。ビューアーが立ち上がるのでセキュリティドアを指定してください。staticと書いてあるのは飾りのドアですので注意
スキン。ですがスキンの種類はない。
ドアから出る影を表示しないか
The name of any doors that should be slaved to this door (i.e. should open when this one opens, and close when this one closes).
Determines the type of the door.
If the door 'Spawn Position' is set to Ajar, these are the angles to spawn at, instead of being open or closed.
マップが読み込まれたときに開いているか閉じているか
開く角度
ドアが開閉する速度
ドアがすべて開ききったときの音
ドアがすべて閉まりきったときの音
ドアが閉まるときの音
ドアが自動的に閉まる時間。-1ならそのまま開きっぱなし。
Amount of damage done to entities that block the movement of this door, per frame.
ドアの体力。0だと壊れない。通常は0のまま
しまってロックがかかったときの音
ロックが解除されたときの音
このドアは必ず閉まるか?はさまれた時の閉まり続けるか開いてしまうかのチェック
ドアが開く方向。向こう側に開く、手前側に開く、どちらにも開くの選択