PDA

View Full Version : effect mechanics


KwirkyJ
7th Oct 08, 2:05 PM
What, exactly, does it take to create an effect in homeworld 2?

From what I can find, some form of texture(s) (as a ROT), a HOD mesh, and a .LUA file work to form an effect.

What I find largely unanswered, however, is what role each of these play specifically in an effect, way or ways to create each (notably, are HOD's needed, and what makes an acceptable texture), and keeping the process at large organized and logical.

Any help or resources are welcome to address my question.

There may or may not be an answer to this conundrum already on this forum, but I have been unable to find it.

Outlaw
9th Oct 08, 1:23 PM
I just figured some stuff out, concerning you questions. Will write about it tommorow, just to tired right now.

KwirkyJ
10th Oct 08, 9:07 AM
Upon further investigation, more questions arise. It seems that .ANIM files play some role in some textures (sprites, in this case?), usually for those of non-solid weaponry. Additionally, while looking closely I noticed that HODs are usually only needed for solid object components (such as in cluster missiles), and again in some impact effects (some of the spray upon impact)

What puzzles me most is the last part: impact. Should it not be possible to rig up the effect to simply spray in a truncated cone, as opposed to pairing a texture to a HOD? If that is indeed the case, why is it not done in this manner? Is it less taxing on the computer, more precise than rendered effects, or something else altogether?

I apologize if my rambling seems counterproductive. I hope it may spark new ideas in the community, as well as creating a reference for myself as I try to unlock these mysteries. And whenever you have the chance, Outlaw.

Outlaw
10th Oct 08, 6:10 PM
Its 2:42 in the night here in germany atm, but weekend so i have the possibility to answer at least one question.

What is a anim?

A weapon fire graphic effect consists of two things : The actual fire effect and the muzzle flash, stored in the ship.events file.

The top level of the fx file structure is the effect combo (can consist of various effect combos itself) which is specified in the wf.file in scripts/weaponfire as you probably know. the combo is in most cases a lua.file in the Art/fx folder for example kpr_beam_combo. If you open it you will find a mess of Vartype_string commands and such. Most of them i know what they do, because i have messed around with the fxtool for long. Zatch wrote his overview for some commands in my fx tutorial thread, too.
To begin just pick a weapon, which has similar effect structure to your wanted custom effect, if you want to create a beam-style weapon, pick ion beam and so on.
So you dont have to mess around to much with the code, but just change the fx.
A combo consists of at least two effects, for example "kpr_pulse_beam" and "kpr_lasersquirt". So the combo points to graphic files one level below, which are played timed or together if the weapon fires.

If you open such a single graphic file, for example "kpr_pulse_beam" you will notice, that it points to a anim.file in the fx/kpr_beams folder.

What does a anim file?
A Anim file is a row of tga images, which are played timed or all together to form a more complex effect.
The anim.file itself contains (afaik) the name of the images/location and (the part im not sure about) the time when to play.
For example: The kpr_pulse_beam.anim points to six different images of a first charging, thin yellow beam which starts thin in image000.tga ,has it greatest diameter in image003.tga (not the name of the actual files cant look it up right now, this is not my modding pc) and fades away to image005.tga. If played proper you get the impression of a dynamic beam this way.

NOTICE: All these files can be named freely, but i would keep a certain structure to it, or it will probably all mess up, like it did with me :(

Now, the most important thing, when starting to edit graphics?
How to get a template?
My way is somewhat tricky, but it works. The graphic file is stored as a rot. I open it with RotTool by spookysoft, which gives me a dds.file out. A dds file is afaik a row of scaled tga images, one half the size of the other, or at least it is used like that by HW2.
So I use the DDS.file as a template, work with photoshop (need dds.plugin) seperate each single tga, create the tga and save them. Now I let the anim.file point to my newly created tga.files.
If you have done everything right, you should have your anim file working, and can admire it in the game :) Dont forget to check all file references!!!
You probably know, that a combo has several different effects, so you may have to edit up to 45 images. But if it works, it a f***ing rewarding thing.

The "tutorial" is a bit messed up, my brain doesnt want to work anymore, so ill get to sleep now. Hope this is a help at creating effects. I know there are probably many questions still unanswered, so feel free to ask.

KwirkyJ
11th Oct 08, 9:29 AM
As disjointed as that was, it is very helpful! Especially the information on the rot/dds/tga relationship. I'll look into some of this stuff as I mess around with it again. As I do, I'll undoubtedly turn up more questions...

Zatch wrote his overview for some commands in my fx tutorial thread, tooIs this up on the main page somewhere?

Outlaw
11th Oct 08, 11:03 AM
This was my attempt to get a working tutorial on fx editing. Just didnt worked out like i expected :) : http://forums.relicnews.com/showthread.php?t=203257

KwirkyJ
11th Oct 08, 1:37 PM
Thanks. I remember looking at that before, but getting just as much out of it as I did now. [EDIT: sees the values near the bottom of the page again] It's a great idea, but it more or less fizzled out. If I work some stuff out, I'll compile an archive of my own for the community.

Back to LUAs, I have a question in regard to combo effects, if one can answer. (In this case, I am looking at the bullet_generic_multi.lua file, from the hgn interceptor's gun) In the file, there are eight properties (00-07, respectively), but only property_00 has a value, being the "bullet-generic_beam_group." Is it necessary to have the other seven values, and if so, what do they do (and where are they?!)? It seems so unnecessary to have that much garbage if it doesn't do anything...

EDIT: I may have an answer to my above: it is simply the nature of the COMBO effect. Because of the nature of the coding, whatever it may be, there must be eight values present, even if all but one are empty.
While this fails to address the question of WHY it is necessary to create combo effects of only ONE effect (doesn't that defeat the purpose??), it's one step closer to unravelling the mystery.
:Loco:

Outlaw
12th Oct 08, 4:10 AM
My Guess :Perhaps the coders and artists just wanted to keep everything at its level.

Another Thing. You dont have to split the dds actually, like I recently said. Just edit the dds, created by the rotviewer, and after that use the "Create from file function" to get a new rot. Now make the fx file point to file.rot

KwirkyJ
12th Oct 08, 8:01 AM
Can you elaborate on that last part? In what way can I edit the ROT directly in the viewer (I don't see how)? On that note, is it NECESSARY that there be ROTs instead of DDSs or tgas? What is the rationale behind using ROTs in the first place? Is it part of the coding within the game? (I have noticed SOME textures are indeed tga files, as opposed to the rot I have been expecting...)

Joe 2987
12th Oct 08, 8:51 AM
I believe the ROT's are a package for the image, not enitrely unlike a zip file. Basically, it's to save disk space. It's hardcoded into the game. It can't read other images.

To edit ROT's, you need the ROT tool, and Photoshop, GIMP, or another program that can edit TGA's and DDS's. The ROT tool creates the DDS or TGA when you open the ROT, but it is in the same file where the original ROT is, so you may have to hunt for it. When you're done editing the DDS or TGA, just open ROT tool, and click "Create from File" or whatever, then choose your edited DDS or TGA. Oh, and you need an MRES file too.

KwirkyJ
12th Oct 08, 8:57 AM
Outlaw's latest post, I misinterpreted. I understand: edit DDS or TGA in editing program (in my case, photoshop), and then use the "create from file..." in the rotviewer to create a rot. Thanks for pointing my eyes in the right direction, joe!

Is there any advantage to using dds over tga?
The stock fx point to all .tga files. In custom effects, can rots be referenced as tgas in the same manner??

Joe 2987
12th Oct 08, 9:05 AM
I'm not sure what you mean by that one, but I'll try my best to answer. ROT's can be made oout of TGA or DDS files. I'll have to experiment to see if there is a size or quality optimization depending on the original filetype. The only advantage I can immediately see with TGA's is that they are more common (Photoshop cannot open DDS's by default, I believe).

KwirkyJ
12th Oct 08, 1:41 PM
Okay, I took a day and began dumping what I know into an annotated "archive," if you will. Taking a couple stock lua files from the game, I started annotating the files, picking up where Zatch left off in the linked thread above. They're kinda long (as I only added stuff, not removed it), so they're in the spoilers below.
BTW: this is a work-in-progress post, so I'll be updating these from time to time, as I work.

Spray effect:
Taken from flak_cloud_spray.lua

fx =
{
style = "STYLE_SPRAY", -- effect style (spray)
properties = -- begins effect properties
{
property_16 =
{
name = "Particle_Scale", -- scales particle size over time [keyframe, value; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
0.33333,
0.39625,
0.83333,
1,
0.56667,
},
},
property_15 =
{
name = "Gravwell_Strength", -- strength of "gravwell" on particles [keyframe, value; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
9.81,
1,
9.81,
},
},
property_09 =
{
name = "Emitter_Volume", -- determines in-game volume of emitter [keyframe,X,Y,Z] (1.5 radius)
type = "VARTYPE_ARRAY_TIMEVECTOR3",
value =
{
entry_00 =
{
0,
3,
3,
3,
},
entry_01 =
{
1,
3,
3,
3,
},
},
},
property_04 =
{
name = "Emitter_InheritVelocity", -- amount of vectored velocity received from parent [%?]
type = "VARTYPE_FLOAT",
value = 0,
},
property_03 =
{
name = "Emitter_Direction", -- sets direction of emitter [0="normal", 1=up, 2=down]
type = "VARTYPE_INT",
value = 0,
},
property_06 =
{
name = "Emitter_Rate", -- keyes particles/sec [0-100000] [keyframe, value; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
0,
0.15875,
10.06666,
0.5175,
0,
1,
0,
},
},
property_05 =
{
name = "Emitter_Drag", -- air resistane of emitted particles [0=100%, 1=0%]
type = "VARTYPE_FLOAT",
value = 1,
},
property_08 =
{
name = "Emitter_Deviation", -- cone aperture of emitter [degrees] [_,_,_,val?] [0,0,1,val?]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
0,
1,
180,
},
},
property_07 =
{
name = "Emitter_Rate_LOD%", -- minimum percentage particle count at lowest LOD [_,_,_,value??]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
0,
1,
0,
},
},
property_02 =
{
name = "Emitter_ScaleSpeed", -- scalable with the .xls tools in the efect-event paramter (no) (unnecessary?)
type = "VARTYPE_BOOL",
value = 0,
},
property_01 =
{
name = "Emitter_Loop", -- does this effect loop? (no)
type = "VARTYPE_BOOL",
value = 0,
},
property_13 =
{
name = "Particle_Fx", -- targets sprayed (emitted) effect
type = "VARTYPE_STRING",
value = "FLAK_ANIME_RING",
},
property_14 =
{
name = "Particle_Dynamics", -- How do the particles act? [0-10, see bottom]
type = "VARTYPE_INT",
value = 0,
},
property_11 =
{
name = "Particle_Speed", -- speed of particles flung from emitter [.001-100] [keyframe,value; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
0,
1,
0,
},
},
property_12 =
{
name = "Emitter_RotRate", -- rotate the emitter, spinning the effects with it [keyframe, value; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
0,
1,
0,
},
},
property_00 =
{
name = "Emitter_Duration", -- time emitter will spew [.1-30 seconds]
type = "VARTYPE_FLOAT",
value = 2,
},
property_10 =
{
name = "Emitter_Offset", -- offsets emitter from marker [keyframe,X,Y,Z]
type = "VARTYPE_ARRAY_TIMEVECTOR3",
value =
{
entry_00 =
{
0,
0,
0,
0,
},
entry_01 =
{
1,
0,
0,
0,
},
},
},
},
}


Ring effect:
Taken from flak_anime_ring.lua

fx =
{
style = "STYLE_RING",
properties =
{
property_28 =
{
name = "PointDistance", -beyond this distance, effect becomes vectored point [-1 disables]
type = "VARTYPE_FLOAT",
value = -1,
},
property_27 =
{
name = "DepthOffset", -- moves particle forward in scene; removes clipping with meshes
type = "VARTYPE_FLOAT",
value = 0,
},
property_26 =
{
name = "SortOrder", -- high values prioritize particles when drawing and "drowning" [0 disables]
type = "VARTYPE_INT",
value = 6,
},
property_25 =
{
name = "RandomBitmap", -- does it use a random bitmap? [does it ever?]
type = "VARTYPE_BOOL",
value = 0,
},
property_24 =
{
name = "BirthSpawn_Fx", -- targets spawned effect as ring generates
type = "VARTYPE_STRING",
value = "flak_trail_ring1",
},
property_23 =
{
name = "Spawn_Fx", -- unknown ??
type = "VARTYPE_STRING",
value = "",
},
property_22 =
{
name = "Mesh", -- targets mesh of the effect
type = "VARTYPE_STRING",
value = "Data:art/fx/box.hod",
},
property_21 =
{
name = "Texture", -- targed 32-bit TGA texture of effect (or reference...)
type = "VARTYPE_STRING",
value = "DATA:ART/FX/CLOUDS/OUTLINE_FAST.ANIM",
},
property_11 =
{
name = "SpinRandom", -- will the effect spin randomly? (no)
type = "VARTYPE_BOOL",
value = 0,
},
property_15 =
{
name = "UseDepthSort", --
type = "VARTYPE_BOOL",
value = 1,
},
property_18 =
{
name = "Billboard", -- does the effct always orient itself to the camera? (yes)
type = "VARTYPE_BOOL",
value = 1,
},
property_17 =
{
name = "AlternateFOV", -- ?? always 0, except for background effects ??
type = "VARTYPE_BOOL",
value = 0,
},
property_16 =
{
name = "Loop", -- does this effect loop? (no)
type = "VARTYPE_BOOL",
value = 0,
},
property_19 =
{
name = "SelfIlluminated", -- does this effect self-illuminate? (yes)
type = "VARTYPE_BOOL",
value = 1,
},
property_09 =
{
name = "SpinEpsilonY", -- variation in Y-axis rotation [.001-1]
type = "VARTYPE_FLOAT",
value = 0,
},
property_04 =
{
name = "SpinZ", -- animated values of rotation in Z-axis [-360 to 360 (deg/sec?)] [keyframe, value; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
1.66667,
0.00625,
0,
1,
0,
},
},
property_03 =
{
name = "SpinY", -- animated values of rotation in Y-axis [-360 to 360 (deg/sec?)] [keyframe, value; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
0,
1,
0,
},
},
property_06 =
{
name = "RadiusEpsilon", -- randomness of effect radius (.001-1]
type = "VARTYPE_FLOAT",
value = 0.5,
},
property_05 =
{
name = "Colour", -- keyed color of effect [keyframe,RGBA]
type = "VARTYPE_ARRAY_TIMECOLOUR",
value =
{
entry_00 =
{
0,
1,
1,
1,
1,
},
entry_01 =
{
0.51045,
0.66038,
0.44233,
0.44233,
0.97044,
},
entry_02 =
{
0.74328,
0,
0,
0,
0.54717,
},
entry_03 =
{
1,
0,
0,
0,
0,
},
},
},
property_08 =
{
name = "SpinEpsilonX",", -- variation in X-axis rotation [.001-1]
type = "VARTYPE_FLOAT",
value = 0,
},
property_07 =
{
name = "RateEpsilon", -- randomness of effect duration [.001-1]
type = "VARTYPE_FLOAT",
value = 0.5,
},
property_02 =
{
name = "SpinX", -- animated values of rotation in X-axis [-360 to 360 (deg/sec?)] [keyframe, value; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
7.73333,
1,
0,
},
},
property_01 =
{
name = "Offset", -- keyed offset of effect [keyframe,X,Y,Z]
type = "VARTYPE_ARRAY_TIMEVECTOR3",
value =
{
entry_00 =
{
0,
0,
0,
0,
},
entry_01 =
{
1,
0,
0,
0,
},
},
},
property_13 =
{
name = "UseMesh", -- does it use the targed mesh? [1=disables texture, as mesh has that already] (no)
type = "VARTYPE_BOOL",
value = 0,
},
property_14 =
{
name = "UseDepthTest", -- use rendering system to sort meshes for accurate z-buffer rendering? (no)
type = "VARTYPE_BOOL",
value = 0,
},
property_20 =
{
name = "Blending", -- blending mode of effect (additive blend)
type = "VARTYPE_INT",
value = 2,
},
property_12 =
{
name = "Duration", -- time in seconds the effect lasts
type = "VARTYPE_FLOAT",
value = 1,
},
property_00 =
{
name = "Radius", -- animated radius of effect [keyframe, value; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
0,
0.03,
0,
0.08198,
0.23333,
0.19835,
0.6,
0.35202,
0.8,
1,
1.1,
},
},
property_10 =
{
name = "SpinEpsilonZ",", -- variation in Z-axis rotation [.001-1]
type = "VARTYPE_FLOAT",
value = 0,
},
},
}


Light effect:
Taken from flak_light.lua

fx =
{
style = "STYLE_LIGHT", -- style of effect (light)
properties = -- begins properties [any order?]
{
property_02 =
{
name = "Offset", -- offsets position of effect [keyframe,X,Y,Z] (no offset)
type = "VARTYPE_ARRAY_TIMEVECTOR3",
value =
{
entry_00 =
{
0,
0,
0,
0,
},
entry_01 =
{
1,
0,
0,
0,
},
},
},
property_01 =
{
name = "Colour", -- sets keyed colors for effect [keyframe,RGBA]
type = "VARTYPE_ARRAY_TIMECOLOUR",
value =
{
entry_00 =
{
0,
0,
0,
0,
1,
},
entry_01 =
{
0.08806,
1,
0.89571,
0.69811,
1,
},
entry_02 =
{
0.14776,
0.67265,
0.30806,
0.17134,
1,
},
entry_03 =
{
0.21791,
1,
0.83774,
0.59434,
1,
},
entry_04 =
{
0.29104,
0.5,
0.21844,
0.18396,
1,
},
entry_05 =
{
0.3806,
1,
0.84528,
0.61321,
1,
},
entry_06 =
{
0.47612,
0.45283,
0.21671,
0.12816,
1,
},
entry_07 =
{
0.5806,
0.84906,
0.73051,
0.55269,
1,
},
entry_08 =
{
0.6791,
0.59434,
0.32653,
0.19624,
1,
},
entry_09 =
{
0.76567,
0.83019,
0.68423,
0.50908,
1,
},
entry_11 = -- notice: 11 listed before 10, but key values match entries!
{
1,
0,
0,
0,
1,
},
entry_10 = -- notice: 11 listed before 10, but key values match entries!
{
0.89701,
0,
0,
0,
1,
},
},
},
property_04 =
{
name = "Duration", -- duration in seconds of the effect
type = "VARTYPE_FLOAT",
value = 1,
},
property_03 =
{
name = "Loop", -- does the effect loop? (no)
type = "VARTYPE_BOOL",
value = 0,
},
property_00 =
{
name = "Radius", -- keyed radius of the effect [keyframe, value]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
50,
1,
50,
},
},
},
}

Unlisted:
property_n =
{
name = "PRIORITY" -- 0 is high priority, 1 is low priority WHY NOT HERE?
type = "(integer, float, or boolean; I don't know)"
value = n
}


Beam effect:
taken from ion_beam_simple.lua

fx =
{
style = "STYLE_BEAM", -- this is the type of effect (beam)
properties = -- begins the list of properites (any order?)
{
property_16 =
{
name = "LineDistance", -- distance from effect where effect becomes vector line
type = "VARTYPE_FLOAT",
value = 1750,
},
property_15 =
{
name = "WidthEpsilon", -- variation in beam width
type = "VARTYPE_FLOAT",
value = 0,
},
property_09 =
{
name = "Texture_U_Offset", -- animates where texture will be offset [0-10] in the effect [keyframe, val; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
0,
1,
6,
},
},
property_04 =
{
name = "SelfIlluminated", -- does it light itself (here, yes)
type = "VARTYPE_BOOL",
value = 1,
},
property_03 =
{
name = "Texture", -- targets the texture used for the beam
type = "VARTYPE_STRING",
value = "DATA:ART/FX/ION_BEAM/ION_BEAM.TGA",
},
property_06 =
{
name = "Length", -- sets beam length [1 to join two points] (keyframe, value; repeat)
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
1,
1,
1,
},
},
property_05 =
{
name = "Offset", -- xyz offset in space [keyframe,X,Y,Z; repeat] (no offset) ?
type = "VARTYPE_ARRAY_TIMEVECTOR3",
value =
{
entry_00 =
{
0,
0,
0,
0,
},
entry_01 =
{
1,
0,
0,
0,
},
},
},
property_08 =
{
name = "Segments", -- number of segments [1-10] along beam length [_,_,_,value; repeat] ? [0,1,1, val?]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
1,
1,
10,
},
},
property_07 =
{
name = "Noise", -- adds noise to the beam [_,_,_,value; repeat] ? [0,0,1, val?]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
0,
1,
0,
},
},
property_02 =
{
name = "Blending", -- sets blending mode for texture/effect (additive alpha)
type = "VARTYPE_INT",
value = 4,
},
property_01 =
{
name = "Loop", -- will this effect loop? (no)
type = "VARTYPE_BOOL",
value = 0,
},
property_13 =
{
name = "Arc", -- sets number of arcs witin beam [keyframe, val, val, val; repeat] ?
type = "VARTYPE_ARRAY_TIMEVECTOR3",
value =
{
entry_00 =
{
0,
0,
0,
0,
},
entry_01 =
{
1,
0,
0,
0,
},
},
},
property_14 =
{
name = "LengthEpsilon", -- variation in the length of the beam [.001-1] ? [specifics!]
type = "VARTYPE_FLOAT",
value = 0,
},
property_11 =
{
name = "Width", -- animated width of beam [keyframe, value; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
0,
0.01285,
2.08534,
0.07285,
2.08534,
0.08047,
10.08872,
0.09552,
4.93015,
0.11809,
8.57716,
0.18494,
10.90312,
0.85375,
11.14667,
0.975,
10.33333,
1,
0,
},
},
property_12 =
{
name = "Colour", -- animates color of beam [keyframe, RGBA] [R=G=B?]
type = "VARTYPE_ARRAY_TIMECOLOUR",
value =
{
entry_00 =
{
0,
0,
0,
0,
1,
},
entry_01 =
{
0.02537,
0.5283,
0.5283,
0.5283,
1,
},
entry_02 =
{
0.85672,
0.5283,
0.5283,
0.5283,
1,
},
entry_03 =
{
1,
0.51887,
0.51887,
0.51887,
1,
},
},
},
property_00 =
{
name = "Duration", -- duration in seconds of effect
type = "VARTYPE_FLOAT",
value = 2,
},
property_10 =
{
name = "Texture_U_Repeat", -- times (1-100) texture is repeated along beam [keyframe, value; repeat]
type = "VARTYPE_ARRAY_TIMEFLOAT",
value =
{
0,
10,
1,
10,
},
},
},
}

Segments=Texture_U_Repeat ?


So, after all that, I'm kinda done for the day. Kinda feel like :stupido: but at least I'm getting somewhere for a change

Outlaw
12th Oct 08, 4:16 PM
I believe, that dds files are tga with so-called mip-maps. This means DXT1-5 (compression methods of dds.files) allows compressing tgas in a LOD style method and having them in one file.
The easiest way to create a custom effect by the way is to move you eyes and hand to bullets. I managed today to create a whole custom bullet effect (ets a lot easier than beams). ill show of tommorow (Youtube). So if you want to create a bullet, I can exactly say how its done.

KwirkyJ
12th Oct 08, 4:40 PM
ill show of tommorow (Youtube). So if you want to create a bullet, I can exactly say how its done.Please do! I'm pretty sure I have a good idea how, myself, but I just haven't tried yet. Do show us what you came up with! :cube:

EDIT: I lied. I can't get it right on my own. It should be noted this is my first mod I've done by myself (not from a tutorial), although I do know most of the "-overrigeBigFile" stuff, as well as some of the hierarchy garbage. What I did was created a highly distinguishable texture for the hig_interceptor. I traced its file pathways to the five bullet_tracer files and changed their target to a new subfolder with my texture (art/fx/other/*file*). I have tried it with a raw DDS of multiple mipmap properties, multiple ROTs of said DDS files, and of TGA files with differing alpha channel setups. Any recommendations for what may be going wrong? :banghead:

...But please show us what you devised, Outlaw

Outlaw
13th Oct 08, 3:05 AM
First, dont make the effect in one workstep, but just keep changing the files bit per bit and look at the in the game. Helps a lot, to remove syntax errors and such, which can fuck up the whole thing, and you can see, if it will be possible what you are doing.

Second, dont edit fx files with "generic" in it. These are different i believe, they have something like a hod in it and are generated randomly by the game. So try to change kinetic_large, which is the most easiest to work with, I believe :)

"I lied. I can't get it right on my own." That sounds like your losing it :) Cheer up mate! Ill post a step by step tutorial for editing the kinetic_large file when im done with writing it. For the moment just see, what you can do with it :
http://de.youtube.com/watch?v=mhSRch5UIIc
Added a second video where you can see the fx better.
http://de.youtube.com/watch?v=fZEB0IspYCU


NOTE : This is not only a fx presentation, but also the demonstration of my newest Model, the Scorpion Cruiser, and my custom Rapid-fire Turret. Its engine isnt finished, so there is just a lonely engine_burn flying around behind it :)
You see the white Bullets flying around? THis is my custom FX. The step by step tutorial will be about it.

Outlaw
14th Oct 08, 3:15 AM
Another thing i learned from tinkering. Often, when you PLAN to create a certain effect, it doesnt look like you expect it to do. Naturally this is pretty annoying, but from time to time a new effedct, which simply looks awesome, was created by you and chance :). So the only way to go is, play with it!
This way I got the energy ball for my next ship, the King Scorpion.

KwirkyJ
14th Oct 08, 9:25 AM
For the time being, I'm just going to settle for the interceptor shooting something other than the yellowy streaks it usually does. Once that works out, I'll go to town with my project(s). I'm just terribly frustrated because, for everything I manage to understand thus far about how effects function, the game SHOULD be accepting what I've put into it. :rant:

(to clarify, all I did was create a new weapon texture in a few different formats. I then changed the "Texture" in the bullet_tracer_01 through _05 (the effects in bullet_tracer_combo) to the new texture's location. I know it's accepting mod material, because I inserted a Plasma Trail mod on its own, and it does work. Can you see what I may be doing wrong?)

Outlaw
14th Oct 08, 1:34 PM
What does happen actually? Nothing?

KwirkyJ
14th Oct 08, 2:08 PM
Check PM inbox. I'd rather not clutter his thread up with my problem just yet.

Outlaw
14th Oct 08, 2:56 PM
If we manage to solve your problem, ill update this thread to give the results to the community.

KwirkyJ
23rd Oct 08, 2:49 PM
The cause of my major issues has been solved-- I was simply being an idiot and neglecting the "art" folder, simply placing the "fx" folder in what would be the data directory. Now that I can make some headway, this thread should move forward a bit more.