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
49 user(s) are online (25 user(s) are browsing Forum)

Members: 0
Guests: 49

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

Current balance: 60€
(last updated 03/2020)

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 80 users playing Freelancer on 42 servers.
May. 28, 2020
The Starport Forum Index > All Posts (Treewyrm)

Bottom Bottom   Previous Topic   Next Topic

(1) 2 3 4 5 »


Re: The big .thn/.lua research thread
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
That's kinda stupid. For a revolute part (which quarters_lod1 is) the values that go there are pairs of timestamp (in seconds) and rotation angle (in radians). The ones you list are going to create partial spin back and forth rather than continious one.

Assuming you want to do full 360 spin in 10 seconds the solution is:
0.0 <- Frame 1 timestamp: 0 seconds
0.0 <- Frame 1 value: 0 degrees
5.0 <- Frame 2 timestamp: 5 seconds
3.14159 <- Frame 2 value: 180 degrees
5.0 <- Frame 3 timestamp: 5 seconds
-3.14159 <- Frame 3 value: -180 degrees
10.0 <- Frame 4 timestamp: 10 seconds
0.0 <- Frame 4 value: 0 degrees


Notice the doubled keyframe at half duration, a flip occurs there to continue rotation into a loop.

Flip signs at values of mid-keyframes if you want to rotate the other direction. Naturally your Rev part must have min/max angles set to -360 and 360 degrees respectively.

Posted on: 3/26 14:09
Top
Topic | Forum


Re: The big .thn/.lua research thread
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
Quite frankly I just don't see what's wrong there, probably because whatever is supposed to be incorrect is just too far and youtube quality makes it all kinda hard to spot anyway.

Either way it's all about how map keyframes are set and whether they are looped or not. Some vanilla models have that and for full 360 rotation they have to make a quick jump as maximum rotation between two keyframes is 180 degrees. This jump can become noticable if there's time delta between its keyframes.

Posted on: 3/24 11:01
Top
Topic | Forum


Re: The big .thn/.lua research thread
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
How animation plays out depends on several factors. If animation script contains maps for more than one part and each map has different durations the animation will go out of sync as each part will have its animation looped independently. Type of looping is defined by event_flags property (restart, reverse, ping-pong, etc).

Posted on: 3/24 9:56
Top
Topic | Forum


Re: The big .thn/.lua research thread
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
There is a simpler fix for lights textures, you just need a model to embed texture used by those light sprites (matching name too) and push it into scene so it'll load the resources and display those sprites.

Regarding paths I'd normally just make them in 3Ds MAX. But there isn't a readily available solution I'm afraid, so it's not like you can install it, make paths and grab em from there. For my own uses I've made a script to export spline knots and capture rotation of a dummy object to THN path key points.

Posted on: 2019/11/15 16:34
Top
Topic | Forum


Re: The big .thn/.lua research thread
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
Glad to be of help. Just keep in mind while most information here is correct a few things aren't, I simply never got around to correct them or to continue writing it.

Monitor is meta-object representing your viewport, your screen to put it simple. Switching between cameras is event of SET_CAMERA. You should have only one monitor object in scene.

Pretty much every color there is going to be RGB, however THN is inconsistent when it comes type of values: integers ranging from 0 to 255 or normalized floats from 0.0 to 1.0. Some properties expect integer, others expect float.

Regarding lights it's just a case of textures not loaded for some reason, so it defaults to plain white color which is then tinted to whatever sprite had for diffuse color.

Posted on: 2019/11/15 13:43
Top
Topic | Forum


Re: The big .thn/.lua research thread
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
Here is unfinished doc I was writing on THN stuff. If you want to continue from where I left off feel free to request writing rights.


Posted on: 2019/11/15 11:40
Top
Topic | Forum


Re: OpenGL Rendering
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
TBN data could be put and spread across uv mapping vectors in VMeshData. FL materials don't use more than two uv maps, so six more channels as defined by FVF are free for the taking. Some quantization techniques could be employed to compress into fewer bits. Though if the cost of generating them on the fly isn't hitting performance it might not be as useful.

Posted on: 2019/11/11 10:59
Top
Topic | Forum


Re: 3Ds MAX tools
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
A quick update. It is still in development.

Character animations. I was really curious about that given complete lack of .dfm tools. Ichiru helped to get initial mesh, after that I began digging into bone structures and finally animations which proved to be not so simple. Currently I only have importing functionality, but once most things there are put together exporting deformable models will be relatively simple to do.

Open in new window
Open in new window

Most work regarding rigid models is complete. CMP and 3DB are supported. Hitboxes (.sur) can be imported and exported as well, as closely as I can to match vanilla behavior (like parent parts duplicating hulls from fixed descendants in parent coordsys).

Open in new window
Open in new window

Materials use custom DirectX shaders, can be imported and exported (either separately or embedded into model files). At the moment only a few common types are implemented: various Dc* types, nebula, btdetailmaterial and nomadmaterial. Textures are automatically decompressed into Targa images and specific filename patterns can be used to indicate what format texture will be exported to when put into .mat file or embedded into model (requires Nvidia Texture Tools installed).

Open in new window
Open in new window

HUD wireframes can be created either by line objects with knots snapped to mesh vertices or by extracting visible edges (in 3Ds max Editable meshes have manual edge visibility).

Open in new window

A few additional tools were made to have starscape modeling much easier.

Getting pretty close.

Posted on: 2019/11/4 15:23
Top
Topic | Forum


Re: 3Ds MAX tools
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
Similar to other tools I've made visuals for hardpoint objects and displaying arcs for revolute hardpoints.

Each individual hardpoint can have its own display sizes, one for base and another for arrow + arc.

Open in new window

Posted on: 2019/5/8 22:47
Top
Topic | Forum


Re: 3Ds MAX tools
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
Necessary things for .sur.

Made simple but decent API for AABBs analysis and processing to tweak algorithm further and arrange BSP pairs intelligently, which is important for object parts with a lot of convex hulls.

Animated BSP traversal 1
Animated BSP traversal 2

Open in new window

p.s. Generation/processing is instantaneous, I've simply added delays and viewport refresh on every step for animation purposes.

Posted on: 2019/4/21 12:01
Top
Topic | Forum


Re: 3Ds MAX tools
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
Unfortunately, no. Different modeling software have different scripting languages and APIs used to create such tools. MAX has MaxScript, Maya has MEL, Blender uses Python and so on. I've picked 3Ds MAX over others simply because of personal experience.

Posted on: 2019/4/6 11:03
Top
Topic | Forum


Re: 3Ds MAX tools
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
Preliminary DFM import support

Open in new window

Posted on: 2019/4/5 17:00
Top
Topic | Forum


3Ds MAX tools
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
Hi again, im-not-dead-yet forum.

A few more things (actually lot more underneath, a lot of code rewritten and far less bugs and errors). Proper interface to interact with.

Attachable models like destroyed parts, guns, etc.

Open in new window

Open in new window

Open in new window

I'm kinda happy with importing routines and features so far, moving to getting exporting to work as nicely. Considering custom material shaders to replicate some of the special materials FL has.

Hopefully some beta soon.

Back to 3ds max stuff after a bit of fun in js.
Open in new window

Posted on: 2019/4/3 0:06
Top
Topic | Forum


Re: about .ale editing
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline

Posted on: 2019/3/14 17:36
Top
Topic | Forum


Re: Deformable2
Not too shy to talk
Joined:
2010/8/27 14:02
Group:
Registered Users
Posts: 72
Offline
Had a few observations while parsing and digging through DFM recently.

Regular rigid compound model constraint data typically contains two strings of fixed length (64 bytes each) per each joint: parent and child object names. DFMs use spherical and loose constraints, but their header contains more than just two zero padded strings. With some it's pretty clear there are three strings: parent (64 bytes), child (24 bytes) and another child (40 bytes). Worth to note sometimes parent string contains some junk after nul terminator, but the layout of 64/24/40 for triple strings remains common across.

Perhaps biped skeleton for bodies and hands might be hardcoded elsewhere, perhaps in dll, and not contained within DFM but heads and nomad worm aren't, so they have to have custom rigging somewhere in the file.

Posted on: 2019/1/7 14:38
Top
Topic | Forum



Top Top
(1) 2 3 4 5 »



[Advanced Search]