Ну и в финале полетели первые лучи добра...
Как оказывается Dir вектор, это не просто направление луча, но и его длина, а я ему по привычке нормализированный слал %) убил кучу времени на поиск этой траблы
поиск пути для двух панд

Заметка по их физ модели, без kAirResistance = 1.0 они просто задолбали своим разгоном по прямой и скольжениями кругами.
Не знаю почему но ParticleEntity из дефолтных не хочет нормально спавнится на сцену и поэтому не работает, пришлось заглянуть в её сорсы и переписать под себя как кастомуную entity - ParticleEmitter
https://answers.cryengine.com/questions/2987/how-to-create-partic… -project.html

Мне кажется или вокруг частиц SSAO?
хз, скорее всего это цвет такой для окантовки нарисовал в гимпе т.к. сначала нарисовал черную точку и потом начал её раскрашивать в красный, и оранжевый по центру
у меня еще есть подозрения на один интересный баг при котором уровень может не грузиться, если в сцене есть бажный эмиттер, надо будет проверить свою догадку
edit: проверил и подтвердилось, отправил Issue по этому поводу из ланчера
void CParticleEmitter::Register() { ... RegisterEntityPropertyObject( properties, eProperty_EffectName, "ParticleEffect", "", ""); }
- нет проблем при запуске уровня, все ок
void CParticleEmitter::Register() { ... RegisterEntityPropertyObject( properties, eProperty_EffectName, "Particle Effect", "", ""); }
- большой облом, нифига не сцене после запуске нет и камера где-то под водой, "в море каустики"
Тесты ragdoll
Изначально entity панды офизичина как PE_LIVING, а как превратить перса в тряпичную куклу?
ответа от крайтеков или еще кого либо знающего на этот вопрос - я так и не дождался, пришлось ковыряться в исходниках, и в общем я нашел GITHUB\CRYENGINE\Code\CryEngine\CryEntitySystem\PhysicsProxy.cpp
там есть один такой момент, где PE_LIVING превращается в рагдолл с PE_ARTICULATED (связка риджидбоди). Ну и тут я понял, что мне нужно заюзать физ-проксю от entity и перефизичить перса с PE_LIVING на PE_ARTICULATED в момент когда в него попадает пуля.
void CCharacter::Ragdoll() { IEntityPhysicalProxy* pPhyProxy = ( IEntityPhysicalProxy*)GetEntity( )->GetProxy( EEntityProxy::ENTITY_PROXY_PHYSICS); if ( pPhyProxy) { SEntityPhysicalizeParams params; params.type = PE_ARTICULATED; //params.bCopyJointVelocities = true; params.nSlot = CCharacter::eGeometry_Character; params.mass = 1.0f; params.fStiffnessScale = -1.0f; pPhyProxy->Physicalize( params); m_bRagdoll = true; GetPath( )->Reset( ); //unregister entity from pathfinding } }
Есть еще косяки всякие, но это уже что-то...

> ...вникнуть в FlowGameEntityNode.h
Кстати вернулся к этому моменту, теперь это тоже в числе маленьких побед в деле освоения ПлакатьДвижокПять.
Это просто флоу-нода без какой-либо необходимости спавнить entity на сцену чтобы её увидеть во ФлоуГрафе.
Как какая нибудь дефолтная служебная нода из числа математических или каких либо других, но разумеется реализовать можно любую свою логику работы внутри и что главное, не на веринице этих же нод, а на С++ !

пример кода ноды:
MyFlowNode.h
MyFlowNode.cpp
Я скачал двиг, запустил едитор. Несмог найти как создать простой куб на сцене, минут 5 искал. А потом двиг взял, и крашнулся =\
У основной части девелоперов (судя по тем же Answers(https://answers.cryengine.com/index.html) и его основной массе вопросов) даже запустить не получилось ))
Так что ты просто гигантский скачек сделал по сравнению с ними и куда дальше продвинулся, с чем и грац! )
Создать кубик можно с помощью Designer Tool, это целый редактор для лоу-поли моделирования.
Или импортировать через FBX-impoter. Вот хороший урок - http://noostyche.ru/blog/2016/10/08/eksport-3d-modeley-iz-blender… 2-fbx-import/
У меня редко край падает, за всю историю наверное 3-4 раза и то потому-что я лазил где-то в недоделанных тулзах.
Вообще да он сырой и глюкавый, поэтому я держу копии уровней (итерации), и если что пойдет не так я просто восстанавливаю предыдущую итерацию.
В начале декабря, мб в первой декаде обещают выкатить релиз на 5.3 версию.
codingmonkey
Спасибо, буду пробовать. Хочу проверить, действительно-ли там такая хорошая вода, как говорят.
Странно, что нельзя создать материал с png/jpg форматов текстур.
Чего тут странного?
Двиг юзает свой какой-то формат DDS со спец заголовком, промежуточный - TIF, все правильно по идее и бить нужно по рукам за юзание не-HW-frendly compression textures )
Странно то, что у него в форматах текстуры есть расширения, а он их не поддерживает.
хз, где ты увидел форматы многочисленные?
вот типичная загрузка дифуз мапы
void CCaptionEntity::GetTexture(const char *path, ITexture **pDiffuse) { stack_string textureMap = path; char diffuseCubemap[ICryPak::g_nMaxPath]; _snprintf( diffuseCubemap, sizeof( diffuseCubemap), "%s%s%s.%s", PathUtil::AddSlash( PathUtil::GetPathWithoutFilename( textureMap)).c_str( ), PathUtil::GetFileName( textureMap).c_str( ), "", PathUtil::GetExt( textureMap)); // '\\' in filename causing texture duplication stack_string diffuseCubemapUnix = PathUtil::ToUnixPath( diffuseCubemap); *pDiffuse = gEnv->pRenderer->EF_LoadTexture( diffuseCubemapUnix, FT_DONT_STREAM); }
енум для последнего параметра
В едиторе материалов, скрин не покажу, щас не дома.
> Странно, что нельзя создать материал с png/jpg форматов текстур.
ну jpeg понятно, но png же не портит текстуры
> Двиг юзает свой какой-то формат DDS со спец заголовком, промежуточный - TIF, все правильно по идее и бить нужно по рукам за юзание не-HW-frendly compression textures )
то есть там в принципе нельзя использовать текстуры без потери качества?
я помню в monogame вручную приходилось отключать сжатие текстур для спрайтовых шрифтов, иначе шрифты выглядели отвратно
Тема в архиве.