Расширенная настройка ИИ

Материал из CryWiki Russia

(Различия между версиями)
Перейти к: навигация, поиск
Строка 1: Строка 1:
-
=Intro=
+
= Введение<br/> =
-
Despite CryENGINE 2's overwhelming graphics capabilities, eye candy does not a level make; as much as Crysis was about being a graphical technical demonstration, it is still remembered for its linear yet strongly choice-orientated gameplay. This tutorial, targeted at any level designers using Sandbox 2, aims to provide more information on the set up of the AI included in the game; specifically, making sure your AI setup is extensible and will survive the many design iterations that your level will inevitably undergo. This tutorial assumes you have rudimentary knowledge of certain level design principles such as ''triggers'' and ''flowgraph scripting''.
+
Несмотря на широкие графические возможности CryENGINE 2, его красивая графика ещё не делает каждый уровень интересным и правильным с точки зрения дизайна уровней. Crysis не только был технической демонстрацией движка, но также преподносил линейный, в то же время ориантированный на выбор игрока геймплей. Это пособие направлено на повышение знаний дизайнеров об игровой настройке ИИ, и создания расширенных возможностей по управлению единицами ИИ в игре, чтобы приспособить их к любым вариантам дизайна уровней. Это руководство предполагает, что вы владеете эементарными техниками дизайна уровней, такими как '''''триггеры'' '''и '''''сценарии flowgraph'''''.
 +
 
 +
= Использование нода Entity:BroadcastEvent в своих целях<br/> =
-
=Using the Entity:BroadcastEvent node to your advantage=
 
'''Entity:BroadcastEvent''' is an iterative flowgraph node that is capable of selecting a multitude of entities (on the basis of their names containing a certain string) and then performing an entity event. How does this aid in level design? Instead of manually adding all entities to a given flowgraph for whatever purpose, you can simply set up all your entities with certain names (which you should be doing anyway for organisation's sake!) and then execute one flowgraph node. This means that if you decide to, say, change the amount of enemies in the future, you can simply add them with certain names and not worry about rescripting them. Let’s look at an example of this now in a real level design scenario.
'''Entity:BroadcastEvent''' is an iterative flowgraph node that is capable of selecting a multitude of entities (on the basis of their names containing a certain string) and then performing an entity event. How does this aid in level design? Instead of manually adding all entities to a given flowgraph for whatever purpose, you can simply set up all your entities with certain names (which you should be doing anyway for organisation's sake!) and then execute one flowgraph node. This means that if you decide to, say, change the amount of enemies in the future, you can simply add them with certain names and not worry about rescripting them. Let’s look at an example of this now in a real level design scenario.
-
==Spawning AI==
+
== Появление ИИ<br/> ==
For the purposes of this tutorial we are only going to apply the effect to two alien troopers, but this will work on much larger groups of AI if necessary.
For the purposes of this tutorial we are only going to apply the effect to two alien troopers, but this will work on much larger groups of AI if necessary.
-
===Naming Conventions===
+
=== Правила наименования<br/> ===
Firstly, we need to set our AI up with names that are guaranteed to be unique. I personally use a fairly long string that corresponds to the event in the level. For this particular occasion I have used '''CrashSiteAI''' as the prefix to the entity names (''the actual troopers are CrashSiteAI1 and CrashSiteAI2 respectively'').
Firstly, we need to set our AI up with names that are guaranteed to be unique. I personally use a fairly long string that corresponds to the event in the level. For this particular occasion I have used '''CrashSiteAI''' as the prefix to the entity names (''the actual troopers are CrashSiteAI1 and CrashSiteAI2 respectively'').
-
===Disabling on Game Start===
+
=== Отключение единиц ИИ при старте<br/> ===
What will happen with these AI? Well, I want to disable them until the point where the player triggers a certain event which in this instance is entering a proximity trigger. Firstly, let's take a look at the necessary setup to disable the AI on game start. The flowgraph looks like this:
What will happen with these AI? Well, I want to disable them until the point where the player triggers a certain event which in this instance is entering a proximity trigger. Firstly, let's take a look at the necessary setup to disable the AI on game start. The flowgraph looks like this:
-
 
+
<center>[[File:EAIS DisableFG.jpg|RTENOTITLE]]</center>
-
<center>[[Image:EAIS_DisableFG.jpg]]</center>
+
-
 
+
We want to call the '''Disable''' event for the troopers. You can view a full list of entity events by either viewing the Input/Output section of the entity in the rollup bar, or by adding the entity to a flowgraph and looking at the different options available.
We want to call the '''Disable''' event for the troopers. You can view a full list of entity events by either viewing the Input/Output section of the entity in the rollup bar, or by adding the entity to a flowgraph and looking at the different options available.
-
===Enabling on Trigger Entry===
+
=== Включение по входу в триггер<br/> ===
Now we need to call the '''Enable''' event when the player enters the trigger. The flowgraph is made in a very similar fashion.
Now we need to call the '''Enable''' event when the player enters the trigger. The flowgraph is made in a very similar fashion.
-
 
+
<center>[[File:EAIS EnableFG.jpg|RTENOTITLE]]</center>
-
<center>[[Image:EAIS_EnableFG.jpg]]</center>
+
More to come in the future on extensible AI setup, I hope this has helped some people understand flexible design more and that your projects benefit at least slightly.&nbsp;:)
-
 
+
<center>[[File:EAIS cover.jpg|RTENOTITLE]]</center>
-
More to come in the future on extensible AI setup, I hope this has helped some people understand flexible design more and that your projects benefit at least slightly. :)
+
<br/>[[Category:Синглплеер]] <br/><br/>
-
 
+
-
<center>[[Image:EAIS_cover.jpg]]</center>
+
-
 
+
-
 
+
-
[[Категория:Синглплеер]]
+

Версия 13:49, 11 января 2012

Содержание

Введение

Несмотря на широкие графические возможности CryENGINE 2, его красивая графика ещё не делает каждый уровень интересным и правильным с точки зрения дизайна уровней. Crysis не только был технической демонстрацией движка, но также преподносил линейный, в то же время ориантированный на выбор игрока геймплей. Это пособие направлено на повышение знаний дизайнеров об игровой настройке ИИ, и создания расширенных возможностей по управлению единицами ИИ в игре, чтобы приспособить их к любым вариантам дизайна уровней. Это руководство предполагает, что вы владеете эементарными техниками дизайна уровней, такими как триггеры и сценарии flowgraph.

Использование нода Entity:BroadcastEvent в своих целях

Entity:BroadcastEvent is an iterative flowgraph node that is capable of selecting a multitude of entities (on the basis of their names containing a certain string) and then performing an entity event. How does this aid in level design? Instead of manually adding all entities to a given flowgraph for whatever purpose, you can simply set up all your entities with certain names (which you should be doing anyway for organisation's sake!) and then execute one flowgraph node. This means that if you decide to, say, change the amount of enemies in the future, you can simply add them with certain names and not worry about rescripting them. Let’s look at an example of this now in a real level design scenario.

Появление ИИ

For the purposes of this tutorial we are only going to apply the effect to two alien troopers, but this will work on much larger groups of AI if necessary.

Правила наименования

Firstly, we need to set our AI up with names that are guaranteed to be unique. I personally use a fairly long string that corresponds to the event in the level. For this particular occasion I have used CrashSiteAI as the prefix to the entity names (the actual troopers are CrashSiteAI1 and CrashSiteAI2 respectively).

Отключение единиц ИИ при старте

What will happen with these AI? Well, I want to disable them until the point where the player triggers a certain event which in this instance is entering a proximity trigger. Firstly, let's take a look at the necessary setup to disable the AI on game start. The flowgraph looks like this:

RTENOTITLE

We want to call the Disable event for the troopers. You can view a full list of entity events by either viewing the Input/Output section of the entity in the rollup bar, or by adding the entity to a flowgraph and looking at the different options available.

Включение по входу в триггер

Now we need to call the Enable event when the player enters the trigger. The flowgraph is made in a very similar fashion.

RTENOTITLE

More to come in the future on extensible AI setup, I hope this has helped some people understand flexible design more and that your projects benefit at least slightly. :)

RTENOTITLE