Изменяем мелкие визуальные эффекты


 

Изменяем мелкие визуальные эффекты
 (Автор : SeriousHeming)



Статья предусматривает то, что вы умеете
создавать директории для модов, а также что у вас имеется Visual C++ 6.0
он полностью настроен на работу с SDK. Также данная статья
предусматривает, что Вы разобрались с редактированием классов Serious
Sam: TSE. ©



Ну что-ж статья посвящена следующему:
 
  • Изменять окружающие частицы в оружии, аммо, аммо-паках и т.д.
  • Изменить положение патронов или брони (лежащие патроны).
  • Изменить окружающий свет при выстреле из оружия. (color, Fall-off, Hot-spot и т.п)

Ну, чтож, приступим.

Начнем с окружающих частиц в оружии или аммо.
Найдем файл Ammoitem.es. Ищем следующие строки кода:
   
Code
    switch (m_EaitType) {
      case AIT_SHELLS:
        Particles_Spiral(this, 1.0f*0.75, 1.0f*0.75, PT_STAR04, 4);
        break;
      case AIT_BULLETS:
        Particles_Spiral(this, 1.5f*0.75, 1.0f*0.75, PT_STAR04, 6);
        break;
      case AIT_ROCKETS:
        Particles_Spiral(this, 1.5f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
      case AIT_GRENADES:
        Particles_Spiral(this, 2.0f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
      case AIT_ELECTRICITY:
        Particles_Spiral(this, 1.5f*0.75, 1.125f*0.75, PT_STAR04, 6);
        break;
      case AIT_NUKEBALL:
        Particles_Spiral(this, 1.25f*0.75, 1.0f*0.75, PT_STAR04, 4);
        break;
      case AIT_IRONBALLS:
        Particles_Spiral(this, 2.0f*0.75, 1.25f*0.75, PT_STAR04, 8);
        break;
      case AIT_BACKPACK:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_SERIOUSPACK:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_NAPALM:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_SNIPERBULLETS:
        Particles_Spiral(this, 1.5f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
    }

Здесь указывается, какая частица будет присутствовать определенному виду аммо.
Разберемся на примере простых патронов:

      case AIT_SHELLS:
        Particles_Spiral(this, 1.0f*0.75, 1.0f*0.75, PT_STAR04, 4);
        break;


Particles_spiral - это тип присутствующей частицы. Мы можем изменить ее, если будем аккуратными.
Лично я, когда был совсем начинающим в SDK, брал виды частиц из итема ParticlesHolder. Их же, оказывается можно взять совсем в другом файле - Particles.cpp.
Что же означают параметры, указанные в скобках?
Вот что мы можем получить из Particles.cpp:

void Particles_Spiral( CEntity *pen, FLOAT fSize, FLOAT fHeight,enum ParticleTexture ptTexture, INDEX ctParticles).
Или,
void Particles_Spiral( CEntity *pen, Размер, Высота,Текстура, кол-во частиц).
Текстуры можно наглядно увидеть в редакторе :



Вот и все. Собственно, ничего трудного нет.
Вот как просто можно разнообразить игру. Но не перестарайтесь!
 

Изменяем положение патронов или брони (лежащие патроны)

Возьмем на опыт тот же самый ammoitem.es. Найдем строки кода..
 
StartModelAnim(ITEMHOLDER_ANIM_MEDIUMOSCILATION, AOF_LOOPING|AOF_NORESTART);

Посмотрите на "ITEMHOLDER_ANIM_MEDIUMOSCILATION". Здесь указывается анимация парящего в воздухе объекта. Тоже самое мы можем увидеть и у других "итемов".Например, у брони:
StartModelAnim(ITEMHOLDER_ANIM_SMALLOSCILATION, AOF_LOOPING|AOF_NORESTART);

Вообще, сам итемхолдер содержит следующие анимации :

#define ITEMHOLDER_ANIM_DEFAULT_ANIMATION 0
#define ITEMHOLDER_ANIM_SMALLOSCILATION 1
#define ITEMHOLDER_ANIM_MEDIUMOSCILATION 2
#define ITEMHOLDER_ANIM_BIGOSCILATION 3
При "DEFAULT_ANIMATION" наше аммо не будет кружится в воздухе, а просто лежать на земле.
При "SMALLOSCILATION" наше аммо будет кружится так же, как кружится в воздухе броня.
При "MEDIUMOSCILATION" наше аммо будет кружится как обычное аммо)
При "BIGOSCILATION" наше аммо будет бешено крутиться в воздухе.

Но это еще далеко не все. Мы забыли про частицы. Частицы придется удалить.
Полностью удаляем вот этот код:
    switch (m_EaitType) {
      case AIT_SHELLS:
        Particles_Spiral(this, 1.0f*0.75, 1.0f*0.75, PT_STAR04, 4);
        break;
      case AIT_BULLETS:
        Particles_Spiral(this, 1.5f*0.75, 1.0f*0.75, PT_STAR04, 6);
        break;
      case AIT_ROCKETS:
        Particles_Spiral(this, 1.5f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
      case AIT_GRENADES:
        Particles_Spiral(this, 2.0f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
      case AIT_ELECTRICITY:
        Particles_Spiral(this, 1.5f*0.75, 1.125f*0.75, PT_STAR04, 6);
        break;
      case AIT_NUKEBALL:
        Particles_Spiral(this, 1.25f*0.75, 1.0f*0.75, PT_STAR04, 4);
        break;
      case AIT_IRONBALLS:
        Particles_Spiral(this, 2.0f*0.75, 1.25f*0.75, PT_STAR04, 8);
        break;
      case AIT_BACKPACK:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_SERIOUSPACK:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_NAPALM:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_SNIPERBULLETS:
        Particles_Spiral(this, 1.5f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
    }
Ну вот и все, теперь наше аммо лежит на земле..
 
Изменяем окружающий свет при выстреле из оружия. (color, Fall-off, Hot-spot и т.п)
Если знать, как, правильно использовать этот трюк, то можно сделать свою модификацию намного круче.
Под игроком, при выстреле из дробовика, томмигана и т.д, имеется небольшой Light от оружия. В хоррор модах, я думаю, он бы пригодился для освещения местности (Извините меня, я снова наигрался в Zombie Plague 4.3)
Сейчас мы откроем наш Player.es и найдем строку :
// Setup light source
  void SetupLightSource(void)
  {

Далее видим:
 
    // setup light source
    CLightSource lsNew;
    lsNew.ls_ulFlags = LSF_NONPERSISTENT|LSF_DYNAMIC;
    lsNew.ls_rHotSpot = 1.0f; // Лучше не изменять это, просто поставьте в 2 раза меньше чем ls_rFallOff
    lsNew.ls_colColor = C_WHITE; // Цвет света
    lsNew.ls_rFallOff = 2.5f; // Радиус действия.
    lsNew.ls_plftLensFlare = NULL;
    lsNew.ls_ubPolygonalMask = 0;
    lsNew.ls_paoLightAnimation = &m_aoLightAnimation;

    m_lsLightSource.ls_penEntity = this;
    m_lsLightSource.SetLightSource(lsNew);
  };
Вот и все. Не переборщите.
 

Статью создал Heming специально для новичков. Happy Coding! ©

 

 



Комментарии   

№ 13  |  26.10.2011  |  0  
а лежачию оружку также делать?
Ответ Цитата

№ 14  |  11.12.2011  |  0  
Да
Ответ Цитата

№ 6  |  01.06.2011  |  0  
Quote
Найдем файл Ammoitem.es

А де? У мя пусто в С++ <_<
Ответ Цитата

№ 7  |  01.06.2011  |  0  
C:/Mymod/Sources/EntitiesMP/Ammoitem.es
Ответ Цитата

№ 8  |  01.06.2011  |  0  
Папки такой нету :D
Ответ Цитата

№ 9  |  01.06.2011  |  0  
Quote
Статья предусматривает то, что вы умеете
создавать директории для модов, а также что у вас имеется Visual C++ 6.0
он полностью настроен на работу с SDK. Также данная статья
предусматривает, что Вы разобрались с редактированием классов Serious
Sam: TSE. ©
Ответ Цитата

№ 10  |  01.06.2011  |  0  
Ну создал, поместил ентитес.длл а как распаковать-то? :D
Ответ Цитата

№ 11  |  08.06.2011  |  0  
Никак
Ответ Цитата

№ 12  |  11.08.2011  |  0  
Докатились бл*ть oh
Ответ Цитата

№ 5  |  09.04.2011  |  0  
Классно. =) Новичку пригодится. =) Молодцом! Cool
Ответ Цитата

№ 4  |  08.04.2011  |  0  
Отличная статья! :)
Ответ Цитата

№ 3  |  08.04.2011  |  0  
Отличная статья, очень полезно! :)
Ответ Цитата

№ 2  |  08.04.2011  |  0  
Хорошая статья! :)
Ответ Цитата

№ 1  |  08.04.2011  |  0  
Ps: Извините за кривой размер картинок :)
Ответ Цитата

Оставьте комментарий

Мини-профиль

Гость

Вы в группе: Гости
Ваш IP: 54.167.159.180

Информация

Прочее

Категории раздела

Croteam [3]
Материалы по студии разработчика игр CroTeam.
Интервью с разработчиками [9]
Интервью с разработчиками, а также их издателями.
Serious Sam 1 [10]
Статьи о Serious Sam 1
Serious Sam 2 [6]
Статьи о Serious Sam 2
Serious Sam HD [5]
Статьи о HD-серии, ремейков классических версий Сэма.
Serious Sam 3: BFE [9]
Статьи о Serious Sam 3: BFE
Уроки по Serious Editor 1 [54]
Уроки по Serious Editor 2 [2]
Самое серьёзное редактирование, на русском!
Уроки по Serious Editor 3 [33]
Уроки по работе с редактором.
Serious Engine [6]
Описание возможностей всех движков компании Croteam
Разное [24]
Всё что не подошло не под одну из вышеупомянутых категорий.
Serious Sam: Revolution [1]
Материалы по SS: Revolution, серьёзном обновлении классических Крутых Сэмов.
Serious Sam 1.05/1.07 SDK [10]
SDK - набор исходников для Serious Sam: The Second Encounter 1.05/1.07.

Голосование

Какая локализация (текст/звук) Serious Sam на ваше мнение лучшая?
1. Второе Пришествие (2002 год, под ред. Гоблина)
2. Serious Sam 3: BFE (2011 год, SnowBall)
3. Первая Кровь (2001 год, Логрус)
4. HD 2: BFM (???, ???)
5. Serious Sam 2 (2005 год, Логрус)
6. Золотое Издание (2004 год, Логрус)
7. HD: The Second Encounter (2010 год, Новый Диск)
8. HD: The First Encounter (2010 год, 1С)

Статистика



На сайте: 21
Гостей: 16
Пользователей: 5
Kadath, STPROD, KiryaJC, Malcolmpar