Ru/Level Design Introduction (Portal 2)/Gotchas: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
m (obsolete language category)
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{otherlang2
{{lang|title=Подводные камни|Level Design Introduction (Portal 2)/Gotchas}}
|title = Подводные камни
|en=Level Design Introduction (Portal 2)/Gotchas
}}
{{Portal 2 level intro menu:ru}}
{{Portal 2 level intro menu:ru}}
Здесь представлен список основных проблем ("подводных камней") с которыми могут столкнуться разработчики уровней. Решения этих проблем не очевидны, поэтому они перечислены здесь отдельно. Этот раздел также содержит некоторые советы и рекомендации, которые могут пригодиться.
Здесь представлен список основных проблем ("подводных камней") с которыми могут столкнуться разработчики уровней. Решения этих проблем не очевидны, поэтому они перечислены здесь отдельно. Этот раздел также содержит некоторые советы и рекомендации, которые могут пригодиться.
Line 15: Line 12:


== Экземпляры ==
== Экземпляры ==
[[Image:Instance prefix.JPG|thumb|float|left|500px]]
[[File:Instance prefix.JPG|thumb|float|left|500px]]


Если Hammer запущен с открытой картой и вы создаете новый [[Instance|экземпляр]], использующийся на этой карте, потребуется закрыть Hammer после размещения этого экземпляра. Это связано с тем, что экземпляр считывается с диска только при загрузке карты. В противном случае вы можете получить неправильное размещение экземпляра на карте.
Если Hammer запущен с открытой картой и вы создаете новый {{L|Instance|экземпляр}}, использующийся на этой карте, потребуется закрыть Hammer после размещения этого экземпляра. Это связано с тем, что экземпляр считывается с диска только при загрузке карты. В противном случае вы можете получить неправильное размещение экземпляра на карте.


При именовании экземпляра необходимо задать '''Entity Name Fix Up''' как '''Prefix''' или '''Postfix'''.{{clr}}
При именовании экземпляра необходимо задать '''Entity Name Fix Up''' как '''Prefix''' или '''Postfix'''.{{clr}}
Line 23: Line 20:
== Trigger_catapult ==
== Trigger_catapult ==


В кооперативных картах у цели для [[trigger_catapult]] (обычно это энтити info_target) должен быть установлен флажок '''Transmit to client'''.  
В кооперативных картах у цели для {{L|trigger_catapult}} (обычно это энтити info_target) должен быть установлен флажок '''Transmit to client'''.  


[[Image:Trigger catapult flag.JPG|thumb|left|500px]]{{clr-left}}
[[File:Trigger catapult flag.JPG|thumb|left|500px]]{{clr-left}}


=== Отладка trigger_catapult ===
=== Отладка trigger_catapult ===


* В консоли вы можете ввести <code>[[ent_text]]</code> для [[trigger_catapult]] по названию.
* В консоли вы можете ввести <code>{{L|ent_text}}</code> для {{L|trigger_catapult}} по названию.


[[Image:Ent text catapult.JPG]]  
[[File:Ent text catapult.JPG]]  


* Отобразится путь, по которому [[trigger_catapult]] запустит игрока.  
* Отобразится путь, по которому {{L|trigger_catapult}} запустит игрока.  
* Если вы используете '''threshold check''', то будет отображена точная скорость, с которой игрок должен перемещаться, чтобы активировать trigger_catapult.
* Если вы используете '''threshold check''', то будет отображена точная скорость, с которой игрок должен перемещаться, чтобы активировать trigger_catapult.


[[Image:Catapult debug.JPG|thumb|left|500px]]{{clr-left}}
[[File:Catapult debug.JPG|thumb|left|500px]]{{clr-left}}


== Следы геля (краски) ==
== Следы геля (краски) ==


Если в вашей карте используются следы геля (краски), в '''Map properties''' задайте  '''Yes''' для параметра '''Paint in Map'''. [[Image:Paint map props.JPG|thumb|left|300px]]{{clr-left}} [[Image:Paint in map.JPG|thumb|left|300px]]{{clr-left}}
Если в вашей карте используются следы геля (краски), в '''Map properties''' задайте  '''Yes''' для параметра '''Paint in Map'''. [[File:Paint map props.JPG|thumb|left|300px]]{{clr-left}} [[File:Paint in map.JPG|thumb|left|300px]]{{clr-left}}


Количество капель краски ('''Max number of blobs''') должно быть как можно меньше. Чем меньше количество, тем лучше производительность. [[Image:Number of blobs.JPG|thumb|left|500px]]{{clr-left}}
Количество капель краски ('''Max number of blobs''') должно быть как можно меньше. Чем меньше количество, тем лучше производительность. [[File:Number of blobs.JPG|thumb|left|500px]]{{clr-left}}


== Спроецированная текстура - Env_projectedtexture ==
== Спроецированная текстура - Env_projectedtexture ==
[[Image:Flashlight prop.JPG|thumb|left|500px]]
[[File:Flashlight prop.JPG|thumb|left|500px]]


Можно включить только одну [[env_projectedtexture]]. Если вы включите одну '''env_projectedtexture''', все остальные '''env_projectedtexture''' будут выключены.  
Можно включить только одну {{L|env_projectedtexture}}. Если вы включите одну '''env_projectedtexture''', все остальные '''env_projectedtexture''' будут выключены.  


Предельный '''FOV''' (угол обзора) должен быть до '''85''' градусов. Более широкие углы могут вызывать ошибки с тенями и влиять на производительность.
Предельный '''FOV''' (угол обзора) должен быть до '''85''' градусов. Более широкие углы могут вызывать ошибки с тенями и влиять на производительность.
Line 53: Line 50:
По возможности выбирайте максимально компактные значения '''Near''' и '''Far''' Z, чтобы свет попадал только на нужные вам поверхности. Чем больше '''env_projectedtexture''', тем больше потерь в производительности.{{clr}}  
По возможности выбирайте максимально компактные значения '''Near''' и '''Far''' Z, чтобы свет попадал только на нужные вам поверхности. Чем больше '''env_projectedtexture''', тем больше потерь в производительности.{{clr}}  


[[Image:Debug flashlight.JPG|thumb|left|500px]]
[[File:Debug flashlight.JPG|thumb|left|500px]]


; <code> r_shadowwireframe</code> : Введите в консоль <code>r_shadowwireframe 1</code>, чтобы отобразить всю геометрию, на которую влияет env_projectedtexture. Эта отладочная команда может пригодиться при настройке env_projectedtexture.{{clr-left}}
; <code> r_shadowwireframe</code> : Введите в консоль <code>r_shadowwireframe 1</code>, чтобы отобразить всю геометрию, на которую влияет env_projectedtexture. Эта отладочная команда может пригодиться при настройке env_projectedtexture.{{clr-left}}
Line 65: Line 62:
3. При разработке уровня избегайте ([https://developer.valvesoftware.com/wiki/Leaks:ru утечек]).
3. При разработке уровня избегайте ([https://developer.valvesoftware.com/wiki/Leaks:ru утечек]).


{{navbar2|Level Design Introduction (Portal 2)/Your First Level:ru|Ваш первый уровень|Level Design Introduction (Portal 2):ru|Введение в разработку уровней|Level Design Introduction (Portal 2)/Gotchas:ru|Подводные камни}}
{{navbar2|Level Design Introduction (Portal 2)/Your First Level:ru|Ваш первый уровень|Level Design Introduction (Portal 2)/ru|Введение в разработку уровней|Level Design Introduction (Portal 2)/Gotchas:ru|Подводные камни}}


[[Category:Portal 2 Level Design:ru]]
{{ACategory|Portal 2 Level Design}}

Latest revision as of 03:51, 22 August 2024

English (en)Deutsch (de)Español (es)Русский (ru)中文 (zh)Translate (Translate)

Здесь представлен список основных проблем ("подводных камней") с которыми могут столкнуться разработчики уровней. Решения этих проблем не очевидны, поэтому они перечислены здесь отдельно. Этот раздел также содержит некоторые советы и рекомендации, которые могут пригодиться.

Общие сведения

Браши, на которые могут быть установлены порталы, должны быть минимум 16 единиц в глубину для предотвращения мерцания порталов при просмотре с расстояния.

Для проверки кооперативных карт только с одним роботом, после загрузки карты введите в консоль команду mp_dev_wait_for_other_player 0.

Названия кооперативных карт должны начинаться с mp_coop_

Экземпляры

float

Если Hammer запущен с открытой картой и вы создаете новый экземпляр(en), использующийся на этой карте, потребуется закрыть Hammer после размещения этого экземпляра. Это связано с тем, что экземпляр считывается с диска только при загрузке карты. В противном случае вы можете получить неправильное размещение экземпляра на карте.

При именовании экземпляра необходимо задать Entity Name Fix Up как Prefix или Postfix.

Trigger_catapult

В кооперативных картах у цели для trigger_catapult(en) (обычно это энтити info_target) должен быть установлен флажок Transmit to client.

Trigger catapult flag.JPG

Отладка trigger_catapult

Ent text catapult.JPG

  • Отобразится путь, по которому trigger_catapult(en) запустит игрока.
  • Если вы используете threshold check, то будет отображена точная скорость, с которой игрок должен перемещаться, чтобы активировать trigger_catapult.
Catapult debug.JPG

Следы геля (краски)

Если в вашей карте используются следы геля (краски), в Map properties задайте Yes для параметра Paint in Map.

Paint map props.JPG
Paint in map.JPG

Количество капель краски (Max number of blobs) должно быть как можно меньше. Чем меньше количество, тем лучше производительность.

Number of blobs.JPG

Спроецированная текстура - Env_projectedtexture

Flashlight prop.JPG

Можно включить только одну env_projectedtexture(en). Если вы включите одну env_projectedtexture, все остальные env_projectedtexture будут выключены.

Предельный FOV (угол обзора) должен быть до 85 градусов. Более широкие углы могут вызывать ошибки с тенями и влиять на производительность.

По возможности выбирайте максимально компактные значения Near и Far Z, чтобы свет попадал только на нужные вам поверхности. Чем больше env_projectedtexture, тем больше потерь в производительности.

Debug flashlight.JPG
r_shadowwireframe
Введите в консоль r_shadowwireframe 1, чтобы отобразить всю геометрию, на которую влияет env_projectedtexture. Эта отладочная команда может пригодиться при настройке env_projectedtexture.

Советы по разработке уровней Portal 2

1. На вашей карте обязательно должен присутствовать источник света (например, энтити light). Без света на карте не будут отображаться следы от гелей и, возможно, не будут видны текстуры на func_brush.

2. Места, которые игроку не видны, лучше залить текстурой tools/toolsnodraw - так карта будет потреблять меньше ресурсов.

3. При разработке уровня избегайте (утечек).