ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Эффекты | страница 1 |
|
Страница 1 из 1 |
|
|
|
Канал Freelancer »
МОДовый отсек: «Эффекты» |
|
|
senyaarseniy 50 EGP
Рейтинг канала: 1(6) Репутация: 0 Сообщения: 21 Откуда: VS Зарегистрирован: 26.08.2008 |
|
Меня интересует как можно эфекты добавлять на карту и к обьектам например чтоб посреди системы была червоточина (wormhole) или вокруг базы электрические разряды летали.
И как можно сделать такие врата как на этом видео <прямые ссылки - запрещены> http://depositfiles.com/files/s6yu2q8af 1mb
_________________ Люблю freelancer
Последний раз редактировалось: Rokar (10:30 20-10-2010), всего редактировалось 1 раз Последний раз редактировалось: senyaarseniy (18:15 11-08-2009), всего редактировалось 1 раз Последний раз редактировалось: Santier (23:23 10-08-2009), всего редактировалось 1 раз |
|
|
Rokar 1221 EGP
Рейтинг канала: 3(47) Репутация: 237 Сообщения: 17628 Откуда: дремучее Подмосковье Зарегистрирован: 21.08.2002 |
|
Ну и запросы у тебя Собсно, это вопрос о том, как создавать сектора. Это тема не для одного поста даже. И к собственно эффектам имеет весьма слабое отношение. Только в плане их юзания, но никак не создания.
_________________ Непостоянство тоже бывает постоянным |
|
|
Endeavour 1015 EGP
Рейтинг канала: 2(23) Репутация: 105 Сообщения: 7041 Откуда: guess Зарегистрирован: 26.05.2005 |
|
К солару можно нацепить AttachedFX на хардпойнт в лоадауте.
Вешаем большой эффект на HpMount - должно получиться как вокруг
П.п. новых эффектов: ALE Editor. Позволяет редактировать ALE как скрипты. Просветляет
Последний раз редактировалось: Endeavour (14:28 13-08-2009), всего редактировалось 1 раз |
|
|
Rokar 1221 EGP
Рейтинг канала: 3(47) Репутация: 237 Сообщения: 17628 Откуда: дремучее Подмосковье Зарегистрирован: 21.08.2002 |
|
Нафига такие сложности? Создаешь вокруг базы зону с соответствующим эффектом. Делов то?
Другой вопрос, ежли нужного (желаемого) эффекта нет в стандартной библиотеке.
_________________ Непостоянство тоже бывает постоянным |
|
|
senyaarseniy 50 EGP
Рейтинг канала: 1(6) Репутация: 0 Сообщения: 21 Откуда: VS Зарегистрирован: 26.08.2008 |
|
Да мне это точно не осилить но всёравно спасибо.
_________________ Люблю freelancer |
|
|
Rokar 1221 EGP
Рейтинг канала: 3(47) Репутация: 237 Сообщения: 17628 Откуда: дремучее Подмосковье Зарегистрирован: 21.08.2002 |
|
Осилить можно все. Было бы желание И время.
_________________ Непостоянство тоже бывает постоянным |
|
|
Abyss
|
|
Привет! Незнаю где еще написать свой вопрос мне нужно изменить цвет при стыковке к торговым путям там он белый а мне нужно чтобы он был синий к примеру вот так:
http://s05.radikal.ru/i178/1005/43/887abdef07e3.jpg
|
|
|
Rokar 1221 EGP
Рейтинг канала: 3(47) Репутация: 237 Сообщения: 17628 Откуда: дремучее Подмосковье Зарегистрирован: 21.08.2002 |
|
Третий пост в этой теме, ссылка на редактор эффектов. Тебе прямо туда и экспериментировать.
_________________ Непостоянство тоже бывает постоянным |
|
|
Abyss
|
|
СПС! попробую
|
|
|
Uvalen 210 EGP
Рейтинг канала: 2(14) Репутация: 44 Сообщения: 2216
Зарегистрирован: 02.09.2009 |
|
описание формата ALE
ALE Format
ALE Format
Work in progress
* - added
X - not present in any ALE, not added
B - Byte 8 bit
W - Word 16 bit
I - Integer 32 bit
U - ULONG 32 bit
F - Float 32 bit
(bool) means is an on/off flag, I may have the on/off reversed,
if someone would test this, I would appreciate it
FX Types
************************************************** *
FLBeamAppearance
FxAirField
FxBasicAppearance
FLBeamField
FxCollideField
FxConeEmitter
FxCubeEmitter
FLDustField
FxGravityField
FxParticleAppearance
FxPerpAppearance
FxRadialField
FxRectAppearance
FxSphereEmitter
FxTurbulenceField
FxRampSingle
FxRampColor
FxAnimatedSingle
FxEffectArchetype
FxEffect
FxEffectLibrary
FxMeshAppearance
FxNodeLibrary
FxColideField
FxAnimatedSingleRamp
FxRampSingleRamp
FxOrientedAppearance
FxRampColorRamp
FxAnimatedTransform
FX Commands
************************************************** *
AirField
************************************************** *
* AirField_Approach
0x0202
0xE5E3524C
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* AirField_Magnitude
0x0202
0xE5E3524C
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
Appearance
************************************************** *
* Appearance_LODCurve
0x0200
0x0C53B008
B - ? Flag
B - ?
F - Value 0
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
}
BasicApp
************************************************** *
* BasicApp_QuadTexture (bool)
0xZ001
if Z=8 it's false, if it's 0 then it's true
0xF87B5FD5
* BasicApp_TexFrame
0x0200
0x015A6F47
B - ? Flag
B - ?
F - Value 0
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
}
* BasicApp_BlendInfo
0x104
0x1506EB6C
U - Value 0
U - Value 1
* BasicApp_TexName
0x0103
0x1BA23359
W - String length
Buffer[String length]
if the file pointer isn't word aligned, there will be an extra 0 here
* BasicApp_Alpha
0x0200
0x04FC9016
Multiple formats
Format 0 (basic)
B - ? Flag
B - ?
F - Value 0
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
}
Format 1...
* BasicApp_Color
0x0201
0x048767E8
B - ? Flag
B - ?
F - Value 0
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
* BasicApp_FlipTexV (bool)
0xZ001
if Z=8 it's false, if it's 0 then it's true
0xE8DC7F5E
* BasicApp_FlipTexU (bool)
0xZ001
if Z=8 it's false, if it's 0 then it's true
0xF3D52EE4
* BasicApp_CommonTexFrame
0x0202
0xF52B8DD5
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
F - Value 2
}
* BasicApp_UseCommonTexFrame (bool)
0xZ001
if Z=8 it's false, if it's 0 then it's true
0xE2F60EEB
* BasicApp_Size
0x0200
0xF7C2EBA9
Multiple formats
Format 0 (basic)
B - ? Flag
B - ?
F - Value 0
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
}
* BasicApp_HToVAspect
0x0200
0xE0E97650
B - ? Flag
B - ?
F - Value 0
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
}
* BasicApp_MotionBlur (bool)
0xZ001
if Z=8 it's false, if it's 0 then it's true
0xE91467F1
* BasicApp_TriTexture (bool)
0xZ001
if Z=8 it's false, if it's 0 then it's true
0xF863872E
* BasicApp_Rotate
0x0200
0x05DB630E
B - ? Flag
B - ?
F - Value 0
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
}
BeamApp
************************************************** *
* BeamApp_LineAppearance (bool)
0xZ001
if Z=8 it's false, if it's 0 then it's true
0x1C65B7B9
* BeamApp_DupeFirstParticle (bool)
0xZ001
if Z=8 it's false, if it's 0 then it's true
0xE8B8CDE7
* BeamApp_DisablePlaceHolder (bool)
0xZ001
if Z=8 it's false, if it's 0 then it's true
0x08508C35
CollideField
************************************************** *
* CollideField_Height
0x0202
0x11336C98
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
F - Value 2
}
* CollideField_Width
0x0202
0x138BDB51
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
F - Value 2
}
* CollideField_Reflectivity
0x0202
0xF2468210
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
ConeEmitter
************************************************** *
* ConeEmitter_MaxSpread
0x0202
0xFA4B5E41
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* ConeEmitter_MinSpread
0x0202
0x100E7F55
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* ConeEmitter_MaxRadius
0x0202
0xF636F07F
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* ConeEmitter_MinRadius
0x0202
0x1C73D16B
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
CubeEmitter
************************************************** *
* CubeEmitter_MaxSpread
0x0202
0x08C7217F
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* CubeEmitter_MinSpread
0x0202
0xE282006B
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* CubeEmitter_Depth
0x0202
0x14B74EB2
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* CubeEmitter_Height
0x0202
0xEFB0F8CF
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* CubeEmitter_Width
0x0202
0xFD22A11C
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
Emitter
************************************************** *
* Emitter_VelocityApproach
0x0202
0x0681233E
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* Emitter_Pressure
0x0202
0x0AB180C5
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* Emitter_InitLifeSpan
0x0202
0x0A635880
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* Emitter_EmitCount
0x0202
0xE7221F95
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* Emitter_MaxParticles
0x0202
0xF5042852
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* Emitter_Frequency
0x0202
0x023C350C
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* Emitter_InitialParticles
0x0002
0x0F9A9D52
F - Particle count
* Emitter_LODCurve
0x0200
0xFE077E05
B - ? Flag
B - ?
F - Value 0
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
}
GravityField
************************************************** *
* GravityField_Gravity
0x0202
0xE02B8BD4
B - ? Flag
B - Count A
Loop A {
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
MeshApp
************************************************** *
* MeshApp_ParticleTransform
0x0105
0xF0004D58
W - ? Always 0x0304
W - ? 0xZ005
If Z=8 then there are 9 transformation matrices following this entry
If Z=8 then A=9
Loop A {
W - ? always 0x0104, may be a count & flag
F - Value 0
F - Value 1
W - Unused
W - Count B
Loop B {
F - Value 0
F - Value 1
F - Value 2
F - Value 3
}
}
* MeshApp_UseParticleTransform (bool)
0xZ001
if Z=8 it's false, if it's 0 then it's true
0x001FC112
* MeshApp_MeshName
0x0103
0x18DADCA8
W - String length
Buffer[String length]
if the file pointer isn't word aligned, there will be an extra 0 here
* MeshApp_MeshId
0x0002
0x0B7EE41C
U - ID - always 0
Node
************************************************** *
* Node_Transform
* Node_LifeSpan
* Node_Name
Node_ClassName (not present in any ALE)
OrientedApp
************************************************** *
X OrientedApp_Width
X OrientedApp_Height
ParticleApp
************************************************** *
* ParticleApp_SmoothRotation (bool)
* ParticleApp_UseDynamicRotation (bool)
* ParticleApp_DeathName
* ParticleApp_LifeName
RadialField
************************************************** *
* RadialField_Approach
* RadialField_Magnitude
* RadialField_Attenuation
* RadialField_Radius
RectApp
************************************************** *
* RectApp_ViewingAngleFade (bool)
* RectApp_Length
* RectApp_CenterOnPos (bool)
* RectApp_Width
* RectApp_Scale
SphereEmitter
************************************************** *
* SphereEmitter_MaxRadius
* SphereEmitter_MinRadius
TurbulenceField
************************************************** *
* TurbulenceField_Approach
* TurbulenceField_Magnitude
|
|
|
G`kar 48 EGP
Репутация: -15 Сообщения: 218 Откуда: Russia Зарегистрирован: 09.11.2009 |
|
Кстати,эфекты как делать в freelancer explorer?просто создаёшь зону с этим эфектом?
_________________ Захожу на этот сайт по одной причине:
здесь нет рекламы,пошлости на странице, всего остального - много.
Dosť hovno tu. |
|
|
Jeider 570 EGP
Рейтинг канала: 5(198) Репутация: 49 Сообщения: 2803 Откуда: Пенза Зарегистрирован: 17.08.2009 |
|
Обучалка создания эффектов (для чайников).
1. Оснащение.
AlE Editor - используется для кодирования/декодирования эффекта
Hash CRC Calculator - считает значения, которые прописывается в ини
2. Перевод из ALE в TXT.
Для этого открываем ALE Editor, нажимаем "Browse For ALE File To Decode" и выбираем нужный эффект в папке DATA\FX.
Совет: было бы целесообразнее скинуть раскодируемые файлы прямо в папку ALE Editor'a, чтобы потом не бегать, т.к. потом вы замучаетесь выбирать для обратно кодирования.
Раскодированные файлы будут сохранены в папке Temp в местоположении вашего ALE Editor'a.
3. Что и зачем?
В папке TEMP появились 2 файлика. Не обращайте внимание на расширение, открываются они блокнотом. Первый файлик с расширением ael содержит в себе описание всех частей эффекта и внутреннее имя файла(это самое западло), а файлик с расширением anl содержит сами части эффекта. Не меняйте расширений файлов, т.к. это нужно при обратно кодировании в ALE.
4. Редактирование эффектов.
Для этого нам нужно открыть файл с расширением anl.
Сам по себе эффект состоит из 2х частей. Первая описывает одиночный эффект(в названии заканчивается на app), вторая описывает его появление и количество(заканчивается на emt). Если в названии файла точно не указанно emt или app, то это определяется визуально и по соотношению с другими эффектами. Ошибиться будет трудно.
Для примеру рассмотрим часть эффекта кольца при взрыве канонерки Рейнланда (на момент написания сообщения я занимался именно им).
Заранее скажу, что ; в коде эффекта означает комментарий!
// - мой комментарий.
Описание отдельного эффекта (кликните здесь для просмотра)
[Section]
; ==> 4
FX_Type = FxBasicAppearance // тип эффекта
//имя Node'a. Обязательно соответствие в файле ael!
Node_Name = gf_explosion_rh_gunboat_ringsbasic ; 0xE6C85204 3871887876
Node_LifeSpan = 3.0000000000000000 //время активности одного эффекта
Node_Transform = {} //изменение размеров и т.п. эффекта (например круиз)
Appearance_LODCurve = { //дальность загрузки эффекта. Если хотите очень дальний эффект, то поищите "хаки" EXE-файла фрила на the-starport.net
Entry = 0.0000000000000000
EFlag = 4
SubEntry = 0.0000000000000000, 1.0000000000000000
SubFlag = 4
}
//я не знаю что это, но менять побаивался
BasicApp_TriTexture = True
BasicApp_QuadTexture = False
BasicApp_MotionBlur = False
//описание цвета. Помните, что из четырех параметров RGB описывают 3 последних соответственно. Первый парметр описания цвета означает прозрачность.
BasicApp_Color = {
Flag = 4
Entry = 0.0000000000000000
SubFlag = 4
SubEntry = 0.0000000000000000, 0.9176471233367920, 0.9176471233367920, 0.0823529437184334 //цвет 1
SubEntry = 0.6609195470809937, 0.0627451017498970, 0.4392157196998596, 0.2509804069995880 //цвет 2
}
//Тут довольно интересно. SubEntry это время и цвет. Вы можете сделать много SubEntry и тем самым создавать переливы цветов.
//Описание параметров:
//Второй параметр - Красный
//Третий параметр - Зеленый
//Четвертый параметр - Синий
//Первый параметр - тайминг или, говоря по-русски, время показа цвета. Последовательность от 0 до 1.0. В нашем примере первую половину времени жизни эффекта будет идти один цвет, а вторую половину другой цвет
//альфа-канал... особо не издевался
BasicApp_Alpha = {
Entry = 0.0000000000000000
EFlag = 4
SubEntry = 0.0000000000000000, 0.4997569918632507, 1.0000000000000000, 0.0000000000000000
SubFlag = 1
}
//размер эффекта. В данном примере размер кольца
BasicApp_Size = {
Entry = 0.0000000000000000
EFlag = 4
SubEntry = 0.0000000000000000, 0.0000000000000000, 1.0000000000000000, 500.0000000000000000
SubFlag = 1
}
//бывают также описания размеров, как Scale - масштаб, Length - длина, Weight - ширина. Зависит от конкретного отображения эффекта
BasicApp_HToVAspect = {
Entry = 0.0000000000000000
SubEntry = 0.0000000000000000, 1.0000000000000000
}
// разворот эффекта в пространстве.
BasicApp_Rotate = {
Entry = 0.0000000000000000
EFlag = 4
SubEntry = 0.0000000000000000, 0.0000000000000000
SubFlag = 4
}
//указывает, что визуально данный эффект - кольцо. Также вместо kioncanring могут быть такие, как small-flare, planet-flare, smokecard и т.д. Просто поищите в других эффектах
BasicApp_TexName = kioncanring ; 0x1CCD8E81 483233409
BasicApp_BlendInfo = 5, 2
BasicApp_UseCommonTexFrame = True
BasicApp_TexFrame = {
Flag = 4
Entry = 0.0000000000000000
SubFlag = 4
SubEntry = 0.0000000000000000, 0.0000000000000000
}
BasicApp_CommonTexFrame = {
Entry = 0.0000000000000000, 0.0000000000000000
}
BasicApp_FlipTexU = True
BasicApp_FlipTexV = True
|
Описание появления и колличества (кликните здесь для просмотра)
[Section]
; ==> 2
//тип эффекта
FX_Type = FxSphereEmitter
//название эффекта
Node_Name = gf_explosion_rh_gunboat_rings_Sphere.emt#1.emt ; 0xF8B30F3B 4172484411
//время активности
Node_LifeSpan = 3.0000000000000000
//изменение размера и т.п.
Node_Transform = {}
Emitter_LODCurve = {
Entry = 0.0000000000000000
EFlag = 4
SubEntry = 0.0000000000000000, 1.0000000000000000
SubFlag = 4
}
//количество отдельных эффектов. Принципиально для мелких вспышек.
Emitter_InitialParticles = 0
//последовательность активации эффектов. Именно таким образом задаются эффекты, как выстрел лобового орудия Крейсера Либерти, выстрел артефакта Бриллиант (Diamond Back) (последовательность колец) или пламя/дым при повреждениях
Emitter_Frequency = {
Flag = 4
Entry = 0.0000000000000000, 100.0000000000000000
EFlag = 0
SubFlag = 4
SubEntry = 0.0029490001033992, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000
SubEntry = 0.7662029862403870, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000
SubEntry = 0.8040210008621216, 50.0000000000000000, 0.0000000000000000, 0.0000000000000000
SubEntry = 0.8136729598045349, -0.0017369921552017, 0.0000000000000000, 0.0000000000000000
}
//максимальное число отдельных эффектов, описанных в app
Emitter_MaxParticles = {
Flag = 4
Entry = 0.0000000000000000, 10000.0000000000000000
EFlag = 0
}
Emitter_EmitCount = {
Entry = 0.0000000000000000, 0.0000000000000000
}
//Время продолжительности эффекта. Лучше не перестараться с этим, так как эффект может работать слишком долго
Emitter_InitLifeSpan = {
Flag = 4
Entry = 0.0000000000000000, 2.0000000000000000
EFlag = 0
SubFlag = 1
SubEntry = -0.0034849999938160, 1.9905710220336914, 0.0000000000000000, 0.0000000000000000
}
//Давление. Т.е. скорость отлета кольца. Если мелкие светлячки, то отлет из центра. Обязателен при описании круизных двигателей (можно тут застрять надолго) - именно он отвечает за дальность шлейфа при круизе!
Emitter_Pressure = {
Flag = 4
Entry = 0.0000000000000000, 10.0000000000000000
EFlag = 0
SubFlag = 1
SubEntry = 0.0061659999191761, 0.0004889999981970, 0.0000000000000000, 0.0000000000000000
}
Emitter_VelocityApproach = {
Entry = 0.0000000000000000, 0.0000000000000000
}
//минимальный радиус показа эффекта. Если не 0, то эффект будет показан дальше центра вашего корабля.
SphereEmitter_MinRadius = {
Entry = 0.0000000000000000, 0.0000000000000000
}
//Максимальный радиус показа эффекта. Если не 0, то будет возможность показа не дальше центра. Так, например, можно реализовать пламя как на моем АТ - отдельные взрывы.
SphereEmitter_MaxRadius = {
Entry = 0.0000000000000000, 1.0000000000000000
SubEntry = -0.0128680001944304, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000
}
|
В общем, эффект это как инишка, только замудренная и очень сложно добавлять удалять новые части эффекта.
5. Кодирование измененного ALE-файла.
Просто нажимаем Browse For ALE File To Encode. Будет создан файлик с расширением tale. Просто переименовываем в ale и кидаем в начальное местоположение. Если вы хотите привязать эффект к другому (ну например взрыв орла к взрыву сабли), то нужно изменить внутреннее имя в файле anl.
6. Создание своих эффектов.
1). Выбираем наиболее подходящий для нового эффект из оригинальных фрилансерских.
2). Придумываем ему новое имя, также прописываем его в anl.
3). В программке Hash CRC Calculator в поле Text вписываем внутреннее имя, нажимаем Calculate и получаем код в поле Unsigned/Signed CRC (они оба одинаковые).
4). Открываем описательную инишку, копируем существующий эффект (наиболее подходящий) и переписываем под свой.
Пример (кликните здесь для просмотра)
Файл explosions_ale.ini
Копируем:
[VisEffect]
nickname = gf_explosion_li_ship01
alchemy = fx\explosions\gf_explosion_li_ship01.ale
effect_crc = 374797940
textures = fx\sarma.txm
textures = fx\lightbeam.txm
textures = fx\standardeffects.txm
textures = fx\kioncannon.txm
Стало:
[VisEffect]
nickname = gf_explosion_new
alchemy = fx\explosions\gf_explosion_li_ship03.ale
effect_crc = сюда впихиваем Unsigned/Signed CRC
textures = fx\sarma.txm
textures = fx\lightbeam.txm
textures = fx\standardeffects.txm
textures = fx\kioncannon.txm
|
5). Прописываем новый эффект в Effects.ini. Выберите подходящий эффект и копируйте с изменениями.
Cкрытый текст (кликните здесь для просмотра)
//Проверяем на любом эффекте, например двигатели - в данном случае Баньши
[Effect]
nickname = gf_rh_smallengine01_playtrail //название эффекта
effect_type = EFT_ENGINE_TRAIL //тип эффекта
vis_effect = gf_rh_smallengine01_playtrail //визуальное представление (т.е. опять название)
vis_generic = gf_br_smallengine01_playtrail // зачем это - не знаю
|
Теперь только осталось присвоить эффект. Это зависит от его типа. Например, если вы редактируете эффект оружия, то нужно менять/создавать раздел в weapon_equip.ini, если вы меняете взрыв (EXPLOSION), то нужно менять/добавлять параметр Explosion_arch в shiparch.ini. Для двигателя прописываем в engine_equip.ini. Я рекомендую в начале проверить изменением текущих объектов, а уже потом проверять на новых. Лучше проверить, что ваш объект вообще работает, ибо последующий труд может стать бесполезным.
Создание эффектов - довольно трудоемкий процесс. Хотя тут все-таки не нужно вычислять какие-то значения, но часто головит башка и хочет сказать "да что ты <...> не хочешь работать!!!:wall:". Также иногда непонятно что для чего нужно, поэтому пока не допрет приходится часто менять разные параметры.
7. Рабочее место.
Вполне логично заранее представить, как вы будете работать. Есть 2 варианта - на сервере и в одиночном режиме. Сервер, ествественно, должен быть свой. Просто каждый раз заходите и проверяйте. Удобно тем, что необязательно взлетать с базы. Я использую одиночный режим - мне так удобнее. Также научитесь пользоваться командой Alt+F4 чтобы резко выходить из фрила и делать изменения, т.к. работа над одним эффектом может продлиться на секунды, что потом сделает минуты и т.д.
Когда я начинаю делать эффекты, то у меня открыто 3 папки - одна с Ale Editor'ом, вторая с местоположением изначального эффекта, третья это EXE. Т.е. копируем из папки 2 в папку 1, декодируем, открываем, кодируем, кидаем во вторую папку, запускаем в третьей - быстро и удобно.
8. Заключение
Эффекты делать хоть и муторно и долго, но если правильно организовать рабочее место и иметь элементарные знания английского языка (или навыки использования Google-переводчика), то можно увеличить производительность в разы. Проверено, т.к. я делал эффекты быстрее своего коллеги Увальня.
9. Эпилог
Редактирование эффектов - очень нестабильный и глюченный процесс. Даже если вы на 100% знаете, что задали значения правильно, результат будет в тайне до запуска игры... эти моменты также страшны, как финальная сцена фильма ужасов, т.к. может неожиданно случиться так, что часы нудной работы станут бесполезными... поэтому, чтобы вам избежать этого, расскажу парочку-троечку глюков.
А. "Наслоение" нескольких эффектов.
Нет, я имел ввиду не то, что куча эффектов слопают друг друга. Проблема гораздо хуже. Если в нескольких эффектах одинаковые названия эффектов (см. Node_Name), а эффекты разные, то сам черт только знает, к чему приведет это! Например, я сделал эффект, основанный на двигателе Горбуна. Новый эффект был двигателем Баттлшипа Рейнланда и, следственно, двигатель был в разы больше! А теперь представьте мои глаза, когда НПЦ-горбун тихо мирно заряжает двигатель, который по размеру в 10 раз больше самого корабля! Поэтому если вы создаете новый эффект на базе старого, удосужьтесь переименовать все параметры Node_Name.
Б. Когда эффект делает вот так: .
Когда я начал делать эффекты по принципу, написанному в пункте А, то оказалась проблема, что эффекты не запускались. Я начал чесать голову... Чесал долго, а потом декодировал полученный эффект... Еще раз повторю смайл: . Так вот, все параметры Node_Name в файле ael были... точнее сказать, их просто не было. Поэтому, в начале поиздевайтесь над файлом anl со стандартными именами частей эффекта, закодируйте эффект, а уж потом при повторном декодировании их переименуйте.
Последний раз редактировалось: Jeider (23:05 10-11-2012), всего редактировалось 5 раз(а) |
|
|
Endeavour 1015 EGP
Рейтинг канала: 2(23) Репутация: 105 Сообщения: 7041 Откуда: guess Зарегистрирован: 26.05.2005 |
|
Дополнения/исправления:
Jeider : |
Первый файлик с расширением ael содержит в себе описание всех частей эффекта и внутреннее имя файла(это самое западло), а файлик с расширением anl содержит сами части эффекта.
|
Для знающих C/C++ удобная аналогия: .h и .cpp файлы соответственно.
Jeider : |
Первая описывает одиночный эффект(в названии заканчивается на app), вторая описывает его появление и количество(заканчивается на emt).
|
Для лучшего понимания:
appearance - внешний вид
emitter - источник, излучатель
Jeider : |
//описание цвета. Помните, что из четырех параметров RGB описывают 3 последних соответственно. Первый парметр описания цвета означает прозрачность.
BasicApp_Color = {
Flag = 4
Entry = 0.0000000000000000
SubFlag = 4
SubEntry = 0.0000000000000000, 0.9176471233367920, 0.9176471233367920, 0.0823529437184334 //цвет 1
SubEntry = 0.6609195470809937, 0.0627451017498970, 0.4392157196998596, 0.2509804069995880 //цвет 2
}// разные цвета означают, к примеру, цвет внутри и на границе эффекта. Также возможны переливы цветов - зависит от параметров в количественном описании
|
По-моему, первое число - время появления цвета.
Причем, если все правильно помню, в процентах (долях единицы) от Node_LifeSpan.
И так для всех других SubEntry, у которых параметров на один больше, чем должно быть.
Jeider : |
//указывает, что визуально данный эффект - кольцо. Также вместо kioncanring могут быть такие, как small-flare, planet-flare, smokecard и т.д. Просто поищите в других эффектах
BasicApp_TexName = kioncanring ; 0x1CCD8E81 483233409
|
Капитан очевидность намекает, что это ссылка на текстуру из .txm.
|
|
|
Jeider 570 EGP
Рейтинг канала: 5(198) Репутация: 49 Сообщения: 2803 Откуда: Пенза Зарегистрирован: 17.08.2009 |
|
thiscall : |
Капитан очевидность намекает, что это ссылка на текстуру из .txm.
|
Угу, но имеется ввиду не файл, а содержимое, которое можно посмотреть через UTF. Например, kioncanring лежит в файле kioncannon.txm и тому подобное.
thiscall : |
По-моему, первое число - время появления цвета.
|
Пробовал менять и никакой реакции... но это, конечно, я давно делал и не помню.
thiscall : |
И так для всех других SubEntry, у которых параметров на один больше, чем должно быть.
|
Не факт - например, у круизного двигателя 2 цвета (например, белая и цветная область) и они показываются одновременно. Время запуска описывается уже в Emitter.
Последний раз редактировалось: Jeider (14:41 11-03-2011), всего редактировалось 2 раз(а) |
|
|
Jeider 570 EGP
Рейтинг канала: 5(198) Репутация: 49 Сообщения: 2803 Откуда: Пенза Зарегистрирован: 17.08.2009 |
|
Еще некоторые мною найденные моменты про эффекты орудий и освещения.
Стандартные эффекты выстрелов.
Эффекты описываются в файле beam_effects.ini. С помощью них в игре реализованы лазерные пушки либерти(джайстисы и т.п.), бандитов либерти(драель и т.п.), кусари и газодобытчиков (скайбласты). Также эти пушки "усиливают" эффекты, например, рейнландских турелей капшипов, Саламанок и т.п.
Пример создания эффекта либертийского джайстиса Мк.I:
Код: |
[BeamSpear]
nickname = Li_laser_01_beam <- название
tip_length = 5 <- длина луча перед шариком
tail_length = 60 <- длина луча после шарика, т.е. шлейф
head_width = 2 <- толщина шарика 1
core_width = 2 <- толщина шарика 2
tip_color = 0, 0, 0 <- цвет переда
core_color = 255, 255, 255 <-цвет шарика 1
outter_color = 200, 200, 255 <- цвет шарика 2
tail_color = 55, 55, 155 <- цвет хвоста/переда
head_brightness = 1 <- яркость шарика
trail_brightness = 1 <- яркость хвоста/переда
head_texture = ball <- указывает что шарик (т.е. текстуру), может быть звезда
trail_texture = thin <- указвыает тип хвоста/переда (текстура)
flash_size = 3 <- размер шарика в том месте, где пушка выстреливает |
Толщина/цвет шарика 1-2 вероятно означают цвет в центре и на краях шарика.
Преимущества: можно легко и непринужденно не используя ALE-редакторы исправить или создать любой эффект выстрела.
Недостатки: всего 2 варианта текстуры выстрела и 2 варианта текстуры хвоста/переда.
Тем не менее можно из скайбластов сделать это:
http://www.youtube.com/watch?v=1sw1fjE8nDI
Все эффекты из beam_effects.ini в effects.ini описываются так:
vis_beam = никнейм
Продолжение данного поста "упорхало" в новую тему.
Активация эффекта Тизоны.
Находите в Effects.ini эффект тизоны и слово vis_generic смените на vis_effect
Код: |
[Effect]
nickname = pi_pulse_03_proj
effect_type = EFT_WEAPON_PROJ
vis_effect = pi_pulse_03_proj |
Последний раз редактировалось: Jeider (14:21 09-06-2011), всего редактировалось 6 раз(а) |
|
|
|
|
|
Канал Freelancer ->
МОДовый отсек: «Эффекты» |
|
|