Freelancer Community Network
Reminder: Internet Explorer 6 or below are NOT supported.
HomeHome
ForumForum
WikiWiki
DownloadsDownloads
ForgeForge
Multiplayer Connection Tutorial
Collapse/Expand Random Image
Collapse/Expand Login
Username:

Password:

Remember me



Lost Password?

Register now!
Collapse/Expand Chat
Collapse/Expand Who's Online
61 user(s) are online (34 user(s) are browsing Forum)

Members: 0
Guests: 61

more...
Collapse/Expand Donations
Monthly costs: -30€
Income (ads): +5€
Donations (last month): +30€

Current balance: -190€
(last updated 04/2017)

Please make a donation if you want to help keeping The-Starport online:

Bitcoin address:
Thanks!
Collapse/Expand Links
Collapse/Expand Advertisement
There are currently 35 users playing Freelancer on 39 servers.
September. 21, 2017

Browsing this Thread:   1 Anonymous Users



 Bottom   Previous Topic   Next Topic  Register To Post

(1) 2 3 »


ALE lurker

Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 38
Offline
Not a frequent visitor, nor a poster here, but finally thought I'd share something here.

For quite some time been playing with ale effects in FL to create various new things and trying interesting combinations. Here's a more recent demo I've made.



During my experiments I had been recording findings and have most of the stuff there figured out. It's not really a user-friendly guide or manual to begin with, but perhaps will be useful to some.

GoogleDoc for ALE-XML format

Posted on: 2015/6/29 20:07
Top
Re: ALE lurker
Quite a regular
Joined:
2012/8/10 14:03
Group:
Registered Users
Posts: 139
Offline
nice work

Posted on: 2015/6/30 13:17
Top
Re: ALE lurker
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 466
Offline
I'm just moving to this topic:
Quote:

Treewyrm wrote:
Seem it went offtopic but anyway.

Looks nice, it would be even nicer to have a track view/curve editor, and in case of color editing a nice gradient preview below Also where's pairing window? I've been simplifying things a lot by having things like several instances of same emitter node in effect but each one spawning different particles. Or some weirder stuff like having multiple emitters for beam to draw lines.

Also I'm curious about MeshAppearance, is it really and hopelessly broken or had I missed something?


A curve editor would be very nice, indeed. But this adds a lot of extra work and since this editor won't be used by many people, I don't see any reason to implement it.
The window to create those "pairs" actually is that tree view at the left.
Open in new window
About Mesh Appearance: I've never tested it since I don't know how it works.

Posted on: 2015/6/30 22:37
How to create .SUR files - Tutorial
Top
Re: ALE lurker

Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 38
Offline
Ye, but it seem to me the window to the left kinda mixes parenthesis and pairing, which honestly are two very different things, one is basically nesting transformation matrices and the other telling which emitter instance shoots what particle instance and which particle instances are affected by which field instances. Which leads me into another question - how do you deal with multiple instances of same nodes? Do you allow them there? Because that's very handy and certain results can be accomplished only through that, like the in video above.

Also, straight off the bat - I want to betatest it for start

Posted on: 2015/6/30 22:53
Top
Re: ALE lurker
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 466
Offline
You can use as many emitters as you want. To every emitter you can just add one appearance. Every appearance can have any number of fields. Also emitters can have fields.
The editor allows you to reuse emitters, appearances or fields at any node you want.
So you could do:

partsys
-emitter1
--appearance1
-emitter1
--appearance2
---field1

etc.

Posted on: 2015/6/30 23:27
How to create .SUR files - Tutorial
Top
Re: ALE lurker

Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 38
Offline
Aha, that's cool. So what about parenthesis then? Like sometimes say you'd have emitter having translation animation and you'd want particle to move along with it. Or kind of like nest even same instances one on top of another making funky animations like this:



MeshAppearance is in few effects in vanilla but they're never actually used and having them spawned by emitter simply crashed the game. Probably was supposed to spawn sort of asteroid fields in THN scenes. But it is kinda unclear what MeshName is supposed to refer to. Not a filename, not a mesh in petaldb, not a vmeshdata name if embedded into ale file (since they're utf files anyway). Granted it was all just trial and error, I never dug into alchemy dll with debuggers.

Posted on: 2015/6/30 23:45
Top
Re: ALE lurker
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 466
Offline
As you probably know there is a flag which defines whether a node should be moving with its parent node or not. In the ALE Editor you see the "Move Independently" check box below the tree view (left). This enables you to specify this.
For example smoke appearance would need to move independed through space, otherwise it would look odd. But for glow appearance it would of course need to move with its parent emitter.

We tested it on that blackhole spout effect in standardeffects.ale (which uses similar effects as the effect in your video).

As far as I tested it, emitters can't be attached to other emitters. Same goes for appearance on appearance and fields on fields. There is only the fixed hierarchy of "root -> emitter -> apperance or field -> field (if appearance)".

Posted on: 2015/6/30 23:52
How to create .SUR files - Tutorial
Top
Re: ALE lurker

Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 38
Offline
Ah, that's where you're wrong I'm afraid. Parenthesis and pairing (or who-uses-what, as in what particle emitter uses, etc) are entirely independent, in fact they have no relation whatsoever. You certainly can set one emitter instance to be a parent of another. So then if you have animation on parent it'll of course affect the 'child' emitter since parenthesis (the second argument of each node instance listed in ALEffectLib) simply means that the child node instance inherits its parent node instance transformation matrix, better yet you can nest them for many levels like that. You can drop off say radialfield, by giving it 32768 for parent and it'll be now in relation to scene or system rather than where effect is.

On my video above it's actually just one CubeEmitter and one FLBeamAppearance. In ALEffectLib there are four instances of same emitter, and four instances of same particle. CubeEmitter has simple rotation loop in its NodeTransform block. If that emitter instances were attached to root then they'd simply all shoot at same angles, effectively quadrupling beam intensity since the beam particles just overlap. However if goes like this:

instanceID, parentID, type, name
1, 32768, 1, 0xEE223B51
2, 1, 0, beam.emt
3, 2, 0, beam.emt
4, 3, 0, beam.emt
5, 4, 0, beam.emt

you get what you see in that video because transformation matrices stack for as many parent nodes you have in chain, with the last beam.emt node essentially multiplying all of its predecessors and then of course applying its own.

Posted on: 2015/7/1 0:14
Top
Re: ALE lurker
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 466
Offline
I see what you mean. So I was describing that pair hierarchy. That still works that way. But you were talking about that node transform hierarchy.
I really mixed them up into one in the ALE Editor. That's a problem here, as you say.

Posted on: 2015/7/1 0:29

Edited by Skotty. on 2015/7/1 0:47:29
Edited by Skotty. on 2015/7/1 0:48:05
How to create .SUR files - Tutorial
Top
Re: ALE lurker

Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 38
Offline
Yes, pairing hierarchy is somewhat that, but there are few interesting tidbits. Just to be clear on what I mean I imply instances that are defined in ALEffectLib as there can be multiple instances of same node from AlchemyNodeLibrary. Here's what I had observed. Like mentioned earlier a single particle instance can have multiple emitters spawning it (same instances or even entirely different nodes), although one emitter instance can spawn only one particle instance. One particle can be affected by multiple field instaces, although some fields will override almost every other, like AirField, but some can have combined effect on same particle. Also one field instance can affect multiple particle instances.

I don't have xml from that particular effect since it was just a test one I did a long time ago, but here's more recent and using same, if not more advanced, approach: grab from pastebin. And you can see it in action at this video when the door starts to open (it's the one from another thread).

Posted on: 2015/7/1 0:47
Top
Re: ALE lurker
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 466
Offline
Yes, that 1 emitter to n appearances relationship etc. is already implemented. Just the transform matrix stack has to be made separate.

One question for you: Have you any idea what those four additional float parameters in version 1.1 ALEs (right at the head) do? That should be called "unused" in the xml.

Edit:
To get a clear view on the transform matrix stack: Do only emitter nodes stack their transforms, or can I parent an emitter to an appearance (which wouldn't make any sense to me)?

Posted on: 2015/7/1 0:52

Edited by Skotty. on 2015/7/1 1:03:06
How to create .SUR files - Tutorial
Top
Re: ALE lurker

Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 38
Offline
Effectively any node can be stacked to any other node, this is because any node can have own transformation matrix. Heck I even use FxNode which does absolutely nothing at all but can be used for something like a rotation pivot for other nodes (see code in pastebin link above). And you might be surprised what interesting effects can be accomplished by rather unorthodox things like setting appearance to be parent for emitter when you start to animate them all together, so yeah there's definitely use for that too.

Four floats in effect header in ALEffectLib seem do absolutely nothing, at least no matter what values I set there I couldn't see any observable difference. Probably unused stuff, much like the unfortunate MeshAppearance and several other properties like NodeClass that kinda do nothing.

Posted on: 2015/7/1 1:03
Top
Re: ALE lurker
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 466
Offline
Very good to know. Thank you! I will have to change some code and the GUI itself to make all those combinations useable.

Edit: I saw in your documentation those loop types for Curve Animations are missing:

0 - no loop
16 - jump to first key after last key
32 - backwards to beginning
48 - set last key as first key (keeps transform of last key and adds transformation of first key etc).

Posted on: 2015/7/1 1:09

Edited by Skotty. on 2015/7/1 1:16:59
How to create .SUR files - Tutorial
Top
Re: ALE lurker

Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 38
Offline
Thanks. Although I did find them a while ago but then simply forgot to add them to the doc as well, it (doc) hadn't seen much use beside myself unfortunately, as a result had been rarely updated.

Here's the crazy map effect from first post to test your editor. Just replace particle sprite names with your own since I use my own sprite library and not vanilla txms.

Attach file:


zip dsy_universe_map.zip Size: 12.40 KB; Hits: 116

Posted on: 2015/7/1 1:31
Top
Re: ALE lurker
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
FLServer Admins
Trusted Speciality Developers
Senior Members
Posts: 1770
Offline
Quote:
Treewyrm wrote:

MeshAppearance is in few effects in vanilla but they're never actually used and having them spawned by emitter simply crashed the game. ... But it is kinda unclear what MeshName is supposed to refer to.

Without actually trying anything, it does seem the "intro_volcanoplanet" meshes would be used - they're part of the template in SCRIPTS\INTRO\intro_volcanoplanet.thn, the asteroid band around the sun. In this case, it would appear MeshName refers to asteroids in SOLAR\asteroidarch.ini.

Quote:
Skotty wrote:

One question for you: Have you any idea what those four additional float parameters in version 1.1 ALEs (right at the head) do? That should be called "unused" in the xml.

IIRC, I set breakpoints on them which were not triggered; since they're read, but not apparently used (seemingly backed up by Treewyrm's findings), that's how I stored them.

Posted on: 2015/7/1 3:13
Top
(1) 2 3 »