CryengineФорум

Cryengine V : Разбор основ (12 стр)

Страницы: 111 12 13 14 15 Следующая »
#165
14:44, 19 янв 2017

Кстати, если кто будет собирать через СMake
а не через WAF как тут

+ Показать

После распаковки архива с github в %Drive%+%Path%
тут лежит батничек который делает 64-й солюшен и вызывает окно СMake для дальнейшей настройки
%Path%\Tools\CMake\cmake_create_win64_solution.bat

Для меня это было совсем не очевидным шагом(что там где-то что-то еще лежит) и первоначально я просто запускал CMake и указывал папку где находятся распакованные сорсы движка. В рез-те получал 32-й солюшен (GameZero).

Скопировал новые Dll'ки(из собранного stabilization) в двиг 5.3. и кажется теперь забегали мои "пустышки" на PathFinding'e.
До этого не бегали т.к. требовалась какая-то связь с Actor, что по-моему очень странно т.к. NPC'си не игроки, и их может быть куда больше чем 16 или 64 шт в игре.

edit:
В общем я разобрался почему "пустышки"(dummy) бегали в редакторе и не бегали в игре.
Дело в том что: ENTITY_EVENT_RESET не прокидывается в игре, а только лишь в редакторе (это даже в комментах написано было%) )

  //! Sent to reset the state of the entity (used from Editor).
  //! nParam[0] is 1 if entering gamemode, 0 if exiting
  ENTITY_EVENT_RESET,
void CDummyEntity::ProcessEvent(SEntityEvent & event)
{
  switch (event.event)
  {
    case ENTITY_EVENT_RESET:
    {
      switch (event.nParam[0])
      {
      case 0: // Game ends
        break;
      case 1: // Game starts
        Reset();
        InitAI();
        break;
      default:
        break;
      }
    }
    case ENTITY_EVENT_UPDATE:
    {
      SEntityUpdateContext* param = (SEntityUpdateContext*)event.nParam[0];
    }

В общем я пока нашел что работает в игре и делаю Reset Entity на другое событие

    case ENTITY_EVENT_START_LEVEL:
    {
      if (!gEnv->IsEditor())
      {
        Reset();
        InitAI();
      }
    }
    default:
      break;
  }

edit:
Еще один баг:
Что бы работал ENTITY_EVENT_UPDATE в CDummyEntity::ProcessEvent()

void CDummyEntity::ProcessEvent(SEntityEvent & event)
{
  switch (event.event)
  {
    case ENTITY_EVENT_RESET:
    {
      switch (event.nParam[0])
      {
      case 0: // Game ends
        break;
      case 1: // Game starts
        Reset();
        InitAI();
        break;
      default:
        break;
      }
    }
    case ENTITY_EVENT_UPDATE:
    {
      SEntityUpdateContext* param = (SEntityUpdateContext*)event.nParam[0];
    }
    case ENTITY_EVENT_START_LEVEL:
    {
      if (!gEnv->IsEditor())
      {
        Reset();
        InitAI();
      }
    }
    default:
      break;
  }
}

нужна разумеется маска в

virtual uint64 GetEventMask() const override { return (BIT64(ENTITY_EVENT_UPDATE) | BIT64(ENTITY_EVENT_RESET) | BIT64(ENTITY_EVENT_START_LEVEL)); }

но кроме того, нужно активировать Entity в Initialize()

void CDummyEntity::Initialize()
{
  Reset();
  GetEntity()->Activate(true);
}
#166
10:54, 23 янв 2017

сделал follow камеру + навесил емиттер стандартный (без текстуры)

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#167
12:37, 25 янв 2017

намудохался я с этим PathFinding'ом аж-но тошнит(
как оказывается по умолчанию PF может считать пути только для 4 персов!

[Error] Scheduler policy name should not exceed 4 characters.

что несомненно дичь и жесть))

но, eсть возможность поправить политику
задав её к примеру в файле Assets\game.cfg

ai_MNMPathfinderConcurrentRequests=10

правда, я еще не тестировал, потянет ли он вообще хотя бы 100-ю агентов, или же нужно костылить свою "надсистему" с выборками путей обходясь всего 4-мя PF-запросами.
Так же есть интересный параметр ai_MNMPathFinderQuota = 0.001 // Set path finding frame time quota in seconds

И в общем: как я заметил, после старта game.exe и немедленного юзанья PF для всех юнитов на уровне, PF вообще может не сработать.
А при след. старте и если подождать 10-20сек и сделать тоже самое (задействовать его для всех) - PF заработает! Магия!? мб фоновые подгрузки какие-то...

#168
14:40, 26 янв 2017

Походу абилка "двойной уворот гизьма" главная фича +0.0.1 версии ))

CRYENGINE 5.3.1 is now available for download
http://docs.cryengine.com/display/SDKDOC1/CRYENGINE+5.3.1
https://www.cryengine.com/community/viewtopic.php?f=328&t=136… 4960#p1304960

В дополнение получите невозможность сгенерить солюшен (Generate Solution) для нового проекта, потому что крайтековцы забыли положить yasli в новый релиз
И тут кто на что горазд и решает эту проблему по своему:
Я просто скопировал собранную версию двига с гитхаба 5.3.0 (stabilization) на новый релиз и что-то недостающее видимо добавилось, после я просто проверил целостность движка через ланчер Library->MyEngines-> Validate Installation
А кто-то так: https://answers.cryengine.com/questions/4246/why-cmake-error-in-c… l#answer-4258

#169
17:54, 31 янв 2017

ToD он же тайм оф дей.

ToD.xml

<TimeOfDay Time="0.1" TimeStart="0" TimeEnd="24" TimeAnimSpeed="0.2">
 <Presets>
  <Preset Name="libs/environmentpresets/example.xml" Default="1"/>
 </Presets>
</TimeOfDay>


Настраиваешь это ToD(example.xml - куча всяких сплайн кривых) в Sandbox'e сохраняешь, делаешь экспорт в двиг (F7), запускаешь свою Game.exe и видишь что время вообще не соответствует тому что ты настраивал в Sandbox'e.
Я пока сильно не разобрался в этом -"таинстве турецкого двора", как же это ToD юзается и что есть нормальная практика его юзанья, но сдается мне что его нужно просто грузить, поэтому я завел процедуру загрузки для этой xml, и пока поместил её в GameRules.

+ Показать
+ Показать
#170
18:36, 4 фев 2017

Наконец-то я осилил сделать двери! =) уже даже думал плюнуть на CGA-формат (объектная анимация) и сделать двери на костях как Character'a

Но в рез-те все получилось с CGA
Правда пришлось дождаться фикса самого BCry5-экспортера, а так же пофиксить стандартую ентитю GeomEntity (из числа дефолтных), в которой Slot 0 забыли назначить, когда "физикализацию" делали %)

первая дверь на MyGeomEntity
вторая на дефолтной GeomEntity

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#171
14:54, 13 фев 2017

Игровые события

И так допустим нам нужно как-то отсылать "всякие юзверьские сообщения" от одной Entity ко многиЯм другим.
Это можно сделать так: (хотя и не приветствуется и считается за хак, нужно городить свою систему игровых сообщений сбоку от движка что несомненно грустно(( хотя у меня уже есть и её первый рабочий прототип, но пока не об этом... )

Добавляем свой новый event в IEntity.h

enum EEntityEvent
{

  //! Last entity event in list.
  ENTITY_EVENT_LAST,

  //! TEST
  ENTITY_EVENT_MY_NEW_EVENT
};


Отсылка event'a

bool CInput::OnActionFindWay(EntityId entityId, const ActionId & actionId, int activationMode, float value)
{
  SEntityEvent event(ENTITY_EVENT_MY_NEW_EVENT);
  //GetEntity()->SendEvent(event);
  gEnv->pEntitySystem->SendEventToAll(event);
  return true;
}

Не забываем подписаться на новый event

class CEnemy final
  : public IEntityComponent
{
  CRY_ENTITY_COMPONENT_INTERFACE_AND_CLASS(CEnemy, "Enemy", 0xBA8B086AA7BF486C, 0xAD0FEFAD7E84F591);

public:
  // IEntityComponent
  virtual void Initialize() override;
  virtual  void ProcessEvent(SEntityEvent &event) override;
  virtual uint64 GetEventMask() const override { return (BIT64(ENTITY_EVENT_UPDATE) 
                            | BIT64(ENTITY_EVENT_RESET) 
                            | BIT64(ENTITY_EVENT_START_LEVEL)
                            | BIT64(ENTITY_EVENT_MY_NEW_EVENT)); }


Ловля этого even'a в других Entity

void CEnemy::ProcessEvent(SEntityEvent & event)
{
  switch (event.event)
  {
    case ENTITY_EVENT_MY_NEW_EVENT:
    {
      Walk();
      break;
    }
    default:
      break;
  }
}
#172
11:43, 15 фев 2017

Воспроизведение триггеров-звуков (С++)
1. Создаем триггер с необходимым звуком(и) в редакторе ACE и сохраняем
Cryengine V Tips image 1 | Cryengine V : Разбор основ
Cryengine V Tips image 2 | Cryengine V : Разбор основ

2. Проигрываем звук таким образом.

bool CInput::OnActionPressF(EntityId entityId, const ActionId & actionId, int activationMode, float value)
{
  IEntityAudioComponent* sound = GetEntity()->GetOrCreateComponent<IEntityAudioComponent>();

  if (sound)
  {
    sound->Initialize(); // once
    sound->SetCurrentEnvironments();
    AudioControlId controlId;
    if (gEnv->pAudioSystem->GetAudioTriggerId("zvuk_1", controlId))
    {
      sound->ExecuteTrigger(controlId);
    }    
  }

  return true;
}
#173
7:05, 23 июня 2017

В ближайших 5.4 версиях можно ожидать:
https://www.cryengine.com/news/new-push-coming-to-github-ce-54-sneak-peek

+ Vulkan renderer
+ Entity Component System (чем оно интересно отличается от текущей компонентной системы, когда городим потомков на базе  IEntityComponent ? )
+ Sandbox source code

#174
7:36, 23 июня 2017

codingmonkey
> + Entity Component System
может явные системы ?

#175
11:43, 23 июня 2017

>может явные системы ?
хз, я так подозреваю что IEntityComponent и иже от неё это и есть зачатки той новой системы (которая присутствует сейчас в том числе и в 5.3) о которой они пишут.

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

А это уже мои попытки использования:
старой системы https://github.com/CopyPasteBugs/VFiles/blob/master/PlayerTank/PlayerTank.h
и новой https://github.com/CopyPasteBugs/VFiles/blob/master/TPSPlayer/Player.h

Хотя вполне возможно будет что-то другое.

#176
16:18, 23 июня 2017

исходники тулсета выложили?

#177
18:15, 23 июня 2017

>исходники тулсета выложили?
про сорсы сандбокса читай в новости

#178
21:44, 23 июня 2017

codingmonkey, а может линк кинешь? Ибо просто так бы этот вопрос не задавался

#179
7:33, 24 июня 2017

>может линк кинешь? Ибо просто так бы этот вопрос не задавался
выше же кидал

https://www.cryengine.com/news/new-push-coming-to-github-ce-54-sneak-peek

Sandbox source code

We know you have been waiting for this for a long time and we are happy to finally confirm: Whilst not yet visible on GitHub, the release of 5.4 will come with the source code to our Sandbox editor. All roadblocks have been cleared and we can confirm that when 5.4 goes live, there will be nothing hidden and no limits to what you can do.

Страницы: 111 12 13 14 15 Следующая »
CryengineФорум

Тема в архиве.