Zh/L4D2 Level Design/Hard Rain: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Blanked the page)
No edit summary
Line 1: Line 1:
{{otherlang2
|title=求生之路2关卡设计/雷暴效果
|noborder=true
|en=L4D2_Level_Design/Hard_Rain
}}
{{L4D2 level intro menu:zh-cn}}
<big>全文翻译:求生的兔。</big>


= 暴风骤雨战役雷暴实例创建教程 =
(以下下载均已失效,而在你的目录Left 4 Dead 2\sdk_content\mapsrc\instance下已拥有'''c4m4_storm_ents.vmf'''文件了。)
雷暴天气是一个非常酷的效果, 而且事实上它比你想象中的容易制作。教程参考自 [http://www.fpsbanana.com/tuts/9901 这儿]。(此处开始可以不用往下看,请直接看准备工作。)然而,我们还得为此先做一些准备工作。这是一个.zip文件,包含了已更新的文件内容,以方便您自己编辑您的雷暴天气。
<br>
[https://sites.google.com/site/megafontswebsite/StormEnts.zip StormEnts.zip]
<br>
{{注意|在.zip中的这个文件 '''c4m4_storm_ents.vmf'''已经被我从官方源文件中反编译提取的内容所取代。  如果你使用老版本的 '''c4m4_storm_ents.vmf'''这个文件处理你的地图, 那么天空盒子会显得非常棘手,难以处理。请使用更新版本的'''c4m4_storm_ents.vmf'''文件,已经修复了这个问题。 如果你也喜欢反编译的官方地图内容,[http://nuclearvelocity.com/barracuda/downloads/left4dead2/mapsrc/l4d2mapsrc_v7.7z 请点击这儿下载。]}}
当你下载完storm_ents.zip这个文件时。前往你的 Left 4 Dead 2 <code>\mapsrc\</code> 文件夹。创建一个新的文件夹叫<code>\myinstances\</code> 或者和这个类似的名字(不能是中文)。并且解压 the storm_ents.zip 文件到你创建的文件夹内。这是为了确保你的游戏工具在更新时不会被官方覆盖文件!
== 准备工作 ==
首先,你的地图需要拥有一个[[3D Skybox]](天空盒子)。当你已经创建或者拥有天空盒子的时候,点击软件中的“map”找到“'''Map Properties'''”,并且设置“'''Map Properties'''”为<code>sky_l4d_c4m4_hdr</code>。这是V社暴风骤雨官方的天空贴图(当然你也可以选择你喜欢的)。
== 创建雷 ==
强烈建议不使用“'''func_instance'''”实体而是打开以下所有vmf进行复制里面的实体,不然有少许bug!
[[File:放置后可以看见实体都在很下面了,需要手动调整.png|thumb]]
[[File:将其移动到skybox内(指远景盒子).png|thumb]]
[[File:这样重叠.png|thumb]]
我们将使用'''func_instance'''实体来设置雷,首先进入你地图的可玩区域,创建一个实体“'''func_instance'''”。
{{注意|本次需要3个'''func_instance'''实体。}}
将'''func_instance'''实体按照以下内容进行设置属性:
{{注意|这是设置雷电的逻辑效果和声音。}}
* 设置 '''Fix Up Name''' 为 "<code>c4m4_storm_logic</code>"
* 设置 '''VMF Filename''' 为 "<code>instance/c4m4_storm_logic.vmf</code>"    {{注意|点击这个选项边上的“browse”,选择默认跳出文件夹内的instance/c4m4_storm_logic.vmf。}}
* 设置 '''Entity Name Fix Up''' 为 "None"
下一步, 创建第二个 '''func_instance''' 实体在第一个附件某处,并且按照以下内容进行设置属性:
{{注意|这是设置环境实体,如果你地图已经有了,请删除相关或者使用你认为你设置好的环境,这些环境实体属于C4M4的环境效果。}}
* 设置 '''Fix Up Name''' 为 "<code>c4m4_environment_ents</code>"
* 设置 '''VMF Filename''' 为 "<code>instance/c4m4_environment_ents.vmf</code>"    {{注意|点击这个选项边上的“browse”,选择默认跳出文件夹内的instance/c4m4_environment_ents.vmf。}}
* 设置 '''Entity Name Fix Up''' 为 "None"
第三步也是最后一步,将 '''func_instance''' 实体设置在'''sky_camera'''实体的3dskybox空间(即在远景盒子内,没有需要创建)。 把这个新创建的 '''func_instance'''实体放在和'''sky_camera'''完全一致的位置上(即重叠2个实体),并且按照以下内容进行设置属性
{{注意|这是设置雷电的粒子效果。}}
* 设置 '''Fix Up Name''' 为 "<code>c4m4_storm_ents</code>"
* 设置 '''VMF Filename''' 为 "<code>instance/c4m4_storm_ents.vmf</code>"    {{注意|点击这个选项边上的“browse”,选择默认跳出文件夹内的instance/c4m4_storm_ents.vmf。}}
* 设置 '''Entity Name Fix Up''' 为 "None"
{{注意|他的默认范围非常大,需要手动调整实体,所以你可以看看右边的图片。}}
{{注意|如果编译出现could not open instance file提示的话,将这些'''func_instance'''全部删除,并且打开对应的vmf,从vmf复制全部实体到你的游戏地图内,这也许是个Bug。}}
== 创建暴雨 ==
现在我们只需要添加一些雨天气效果到地图内。方法是,创建一个能够覆盖住整个游戏区域(远景盒子不要)的固体(笔刷),并且将其应用于'''tools/toolstrigger'''材质,并且转换这个固体为'''func_precipitation'''(转换方式,选中这个固体,ctrl+t变成固实体,并且修改class为'''func_precipitation''')。设置'''Precipitation Type'''为"Particle Rain Storm",并且将它的'''Name'''设置为 "<code>rain</code>"。
{{注意|其他参数例如密度和速度由你自己考虑测试,如果你的雨水在游戏内没有效果显示,你可能需要将这个固实体'''func_precipitation'''增高一些。在steam开发者论坛上有人建议高度为1024个单位(前提是能覆盖住你的地图,如果你地图比这个还高,也许还需要更高。),但是我并不知道'''func_precipitation''实际需要多高。}}
{{注意|'''func_precipiation'''会自动检测建筑物,以至于让室内不会下雨,当然凡是也有意外,有些时候(特指你的室内转换成了func_detail之类的固实体),那么这个转换的室内很有可能会下雨,使用实体'''func_precipitation_blocker'''来覆盖住你不需要下雨的地方。方法是,创建一个固体(笔刷),并且同样应用上'''tools/toolstrigger'''材质,然后转换为'''func_precipitation_blocker'''固实体,并且根据需要调整位置和大小,可以多放,比如某2个区域你都不想下雨,但是离得有点远,你并不想将这2个区域所连接的地方取消下雨,那么就放置2个这个固实体来覆盖他们。}}
下一步,我们将暴雨带来的雾挡在我们的建筑外面。方法是创建一个固体(笔刷),并且将其应用于'''tools/fogvolume'''材质。转换为'''fog_volume'''实体,然后调整其位置和大小,以覆盖你需要覆盖的建筑区域。如果有多个区域就设置多个此实体(指如上雨水屏蔽一样)将'''fog_volume'''实体按照以下内容进行设置属性:
* 设置 '''Fog Name''' 为 to "<code>foginteriorcontroller</code>"
* 设置 '''Postprocess Name''' 为 "<code>fx_settings_interior</code>"
{{注意|如果你这样设置,属性栏可能会显示红色字体,不用担心它是无效的,它是直接调用游戏源码内的参数,所以就这样设置就行。}}
最后,我们只需要添加雨的声音效果了。方法是,回到你放置的前两个'''func_instance'''实体位置。在它们的附近创建一个叫'''env_soundscape_triggerable'''的实体,并且按照以下内容进行设置属性:
* 设置 '''Name''' 为 "<code>rain_interior</code>"
* 设置 '''Radius''' 为 "<code>0</code>"
* 设置 '''Soundscape''' 为 "<code>rain.interior.med</code>"
{{注意|如果你想查看不同的音效,可以点击这里参考音效列表:[[List_of_L4D_2_Soundscapes#soundscapes_campaign4|List of L4D2 Soundscapes]]}}
再创建第二个 '''env_soundscape_triggerable''' 实体并且按照以下内容进行设置属性:
* 设置 '''Name''' 为 "<code>rain_exterior</code>"
* 设置 '''Radius''' 为 "<code>0</code>"
* 设置 '''Soundscape''' 为 "<code>rain.water.med</code>"
{{注意|如果你想查看不同的音效,可以点击这里参考音效列表:[[List_of_L4D_2_Soundscapes#soundscapes_campaign4|List of L4D2 Soundscapes]]}}
现在要做的就是触发这些雨的声音。方法是,进入到你建筑的出口处(门)。
{{注意|你需要在每一个建筑的门出口处都这么做。}}
放置一个能够和门一样大的固体(笔刷)。这个固体需要应用'''tools/toolstrigger'''材质。并且转换为'''trigger_soundscape'''实体,然后设置'''Soundscape'''为"<code>rain_exterior</code>"。
<br><br>
现在,再放置第二个同样的固体(笔刷)于门的入口处(门前)。同样是应用'''tools/toolstrigger'''材质,并且转换为'''trigger_soundscape'''实体。设置'''Soundscape'''为"<code>rain_interior</code>"。
{{注意|你也需要在每一个建筑的门入口处都这么做。}}
<br><br>
这两个实体的作用是,当玩家进门或者出门的时候。室内与室外会让雨声听起来不一样。然后复制一份内部的雨声固实体(指'''Soundscape'''为"<code>rain_interior</code>"的固实体)将其完全覆盖住你的出生点房间(如果是室外则换成另一个'''Soundscape'''为"<code>rain_exterior</code>"的固实体)。如果你不这么做,那么玩家出生时则听不到雨声直到玩家出去或者进入场景(指你已经为所有的出入口放置了声音触发实体)。
{{注意|假设你的房间为一个或者多个主入口指大门,里面有许多小房间,你并不需要为小房间设置声音变化,你只需要为主入口设置,当然某些破败的场景,比如墙体倒塌,房间暴露于室外,你可能需要灵活运用!}}
== 测试你的雷暴天气 ==
就是这么多!你需要设置一个按钮,来给你的地图效果进行测试。方法是,放置一个按钮,设置它的输出,输出到的目标实体为"<code>relay_storm_start</code>",输出方式为"<code>Trigger</code>"。
{{注意|可能目标为红色字体不用担心,它会生效的。}}
{{注意|这个是测试雷暴的按钮,这个按钮可以让你按下一次按钮出现一次雷暴,如果你不想设置这个按钮,你在地图上游玩时,它也会周期性的进行雷暴效果。}}
<br>
第二种测试方式是打开控制台(确保'''sv_cheats''' 参数是 "<code>1</code>") 并且按照一下内容进行输入指令:
<code>
ent_fire relay_storm_start trigger
</code>
<br><br>
这是一个雷暴效果的测试样本地图(文件链接已失效,我将会在以后做一份我自己的上传。),安全室外的按钮会引发暴风雨,而更远处的按钮只会引发一场尸潮恐慌时间。安全室门边上有个梯子,以至于能够让你到达屋顶。
<br>
[https://sites.google.com/site/megafontswebsite/L4D2_StormSampleMap.zip L4D2_StormSampleMap.zip]
<br><br>
= 参考 =
* [[func_instance]]
* [[Sky_camera]]
* [[env_soundscape_triggerable]]
* [[trigger_soundscape]]
{{NavBar|L4D2 Level Design/Foot Lockers|L4D2 Level Design|L4D2 Level Design/Scavenge Finale}}
[[Category:Left 4 Dead 2]]
[[Category:Level Design]]
[[Category:Skybox]]

Revision as of 21:20, 17 August 2021

Template:Otherlang2 Template:L4D2 level intro menu:zh-cn 全文翻译:求生的兔。

暴风骤雨战役雷暴实例创建教程

(以下下载均已失效,而在你的目录Left 4 Dead 2\sdk_content\mapsrc\instance下已拥有c4m4_storm_ents.vmf文件了。)

雷暴天气是一个非常酷的效果, 而且事实上它比你想象中的容易制作。教程参考自 这儿。(此处开始可以不用往下看,请直接看准备工作。)然而,我们还得为此先做一些准备工作。这是一个.zip文件,包含了已更新的文件内容,以方便您自己编辑您的雷暴天气。
StormEnts.zip
Template:注意

当你下载完storm_ents.zip这个文件时。前往你的 Left 4 Dead 2 \mapsrc\ 文件夹。创建一个新的文件夹叫\myinstances\ 或者和这个类似的名字(不能是中文)。并且解压 the storm_ents.zip 文件到你创建的文件夹内。这是为了确保你的游戏工具在更新时不会被官方覆盖文件!

准备工作

首先,你的地图需要拥有一个3D Skybox(天空盒子)。当你已经创建或者拥有天空盒子的时候,点击软件中的“map”找到“Map Properties”,并且设置“Map Properties”为sky_l4d_c4m4_hdr。这是V社暴风骤雨官方的天空贴图(当然你也可以选择你喜欢的)。

创建雷

强烈建议不使用“func_instance”实体而是打开以下所有vmf进行复制里面的实体,不然有少许bug!

放置后可以看见实体都在很下面了,需要手动调整.png
将其移动到skybox内(指远景盒子).png
这样重叠.png

我们将使用func_instance实体来设置雷,首先进入你地图的可玩区域,创建一个实体“func_instance”。

Template:注意


func_instance实体按照以下内容进行设置属性: Template:注意

  • 设置 Fix Up Name 为 "c4m4_storm_logic"
  • 设置 VMF Filename 为 "instance/c4m4_storm_logic.vmf" Template:注意
  • 设置 Entity Name Fix Up 为 "None"


下一步, 创建第二个 func_instance 实体在第一个附件某处,并且按照以下内容进行设置属性: Template:注意

  • 设置 Fix Up Name 为 "c4m4_environment_ents"
  • 设置 VMF Filename 为 "instance/c4m4_environment_ents.vmf" Template:注意
  • 设置 Entity Name Fix Up 为 "None"


第三步也是最后一步,将 func_instance 实体设置在sky_camera实体的3dskybox空间(即在远景盒子内,没有需要创建)。 把这个新创建的 func_instance实体放在和sky_camera完全一致的位置上(即重叠2个实体),并且按照以下内容进行设置属性 Template:注意

  • 设置 Fix Up Name 为 "c4m4_storm_ents"
  • 设置 VMF Filename 为 "instance/c4m4_storm_ents.vmf" Template:注意
  • 设置 Entity Name Fix Up 为 "None"

Template:注意 Template:注意

创建暴雨

现在我们只需要添加一些雨天气效果到地图内。方法是,创建一个能够覆盖住整个游戏区域(远景盒子不要)的固体(笔刷),并且将其应用于tools/toolstrigger材质,并且转换这个固体为func_precipitation(转换方式,选中这个固体,ctrl+t变成固实体,并且修改class为func_precipitation)。设置Precipitation Type为"Particle Rain Storm",并且将它的Name设置为 "rain"。

Template:注意

Template:注意

下一步,我们将暴雨带来的雾挡在我们的建筑外面。方法是创建一个固体(笔刷),并且将其应用于tools/fogvolume材质。转换为fog_volume实体,然后调整其位置和大小,以覆盖你需要覆盖的建筑区域。如果有多个区域就设置多个此实体(指如上雨水屏蔽一样)将fog_volume实体按照以下内容进行设置属性:

  • 设置 Fog Name 为 to "foginteriorcontroller"
  • 设置 Postprocess Name 为 "fx_settings_interior"

Template:注意


最后,我们只需要添加雨的声音效果了。方法是,回到你放置的前两个func_instance实体位置。在它们的附近创建一个叫env_soundscape_triggerable的实体,并且按照以下内容进行设置属性:

  • 设置 Name 为 "rain_interior"
  • 设置 Radius 为 "0"
  • 设置 Soundscape 为 "rain.interior.med"

Template:注意


再创建第二个 env_soundscape_triggerable 实体并且按照以下内容进行设置属性:

  • 设置 Name 为 "rain_exterior"
  • 设置 Radius 为 "0"
  • 设置 Soundscape 为 "rain.water.med"

Template:注意


现在要做的就是触发这些雨的声音。方法是,进入到你建筑的出口处(门)。 Template:注意 放置一个能够和门一样大的固体(笔刷)。这个固体需要应用tools/toolstrigger材质。并且转换为trigger_soundscape实体,然后设置Soundscape为"rain_exterior"。

现在,再放置第二个同样的固体(笔刷)于门的入口处(门前)。同样是应用tools/toolstrigger材质,并且转换为trigger_soundscape实体。设置Soundscape为"rain_interior"。 Template:注意

这两个实体的作用是,当玩家进门或者出门的时候。室内与室外会让雨声听起来不一样。然后复制一份内部的雨声固实体(指Soundscape为"rain_interior"的固实体)将其完全覆盖住你的出生点房间(如果是室外则换成另一个Soundscape为"rain_exterior"的固实体)。如果你不这么做,那么玩家出生时则听不到雨声直到玩家出去或者进入场景(指你已经为所有的出入口放置了声音触发实体)。 Template:注意

测试你的雷暴天气

就是这么多!你需要设置一个按钮,来给你的地图效果进行测试。方法是,放置一个按钮,设置它的输出,输出到的目标实体为"relay_storm_start",输出方式为"Trigger"。 Template:注意 Template:注意
第二种测试方式是打开控制台(确保sv_cheats 参数是 "1") 并且按照一下内容进行输入指令: ent_fire relay_storm_start trigger

这是一个雷暴效果的测试样本地图(文件链接已失效,我将会在以后做一份我自己的上传。),安全室外的按钮会引发暴风雨,而更远处的按钮只会引发一场尸潮恐慌时间。安全室门边上有个梯子,以至于能够让你到达屋顶。
L4D2_StormSampleMap.zip

参考