The Seraphim - A custom Ship OXP from start to finish.

Discussion and information relevant to creating special missions, new ships, skins etc.

Moderators: another_commander, winston

Post Reply
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

The Seraphim - A custom Ship OXP from start to finish.

Post by Scarecrow »

I just discovered Oolite and whilst I'm really looking forward to getting stuck into playing it, what excites me more is the fact that I can make my own ships for it.

I'm interested in re-designing the Police Viper, as that's the first ship you see in the game - launched directly in front of you when you start the game.

I thought it might be useful for other people interested in the process to see my "working out" so I'll use this thread as a sort of development blog as I progress. Also, it means folks can help me out when I get stuck :)

I began by opening the model dat file in Notepad++

I found some vertex, face and texture data - pretty straight forward stuff.
I also opened the shipdata.plist - again, I'm slightly familiar with scripting and most of the variables and settings contained in the plist (Flashers and Subentities, Weapon and Thruster locations etc.) made immediate sense.

I noticed an OBJ2DAT converter script in one of the sticky'ed threads in this forum but it's a dead link. I'll need that to get anywhere, so more on that later.

Next I started scanning the various threads here for information on making custom models and immediately discovered the awesome Griff - a fellow Welshman, no less! - and realised that the Oolite engine has some nifty features.

I also discover that there's a 500 triangle limit on elements which almost made me give up on the project there and then. I'm a professional video-game artist, I appreciate the importance of keeping poly counts low, but 500 triangles, in this day and age!? strewth!

Then I discovered that you can have model sub-entities. Now you're talking. It's possible to shoot these elements off too. Bonus!

So then, I want to customise the Police Viper. Where do I start?

Well, I'll need an accurate model of the viper first. How do I do that? well, there was nothing for it, I'd have to build it by hand, using the DAT file.

In Maya (my modelling package of choice) I positioned locators at the vertex coordinates given in the dat file and then snapped the vertexes of a primitive object to those points. I then positioned the locators in the positions of the 'Flasher' sub-entities so I can see where they are too.

In addition, I also built the Anaconda, CobraIII, Asp, Nav Bouy and a human for size and scale.

Now I need to decide what I want the Police Viper to look like.
I also need to figure out wether I can use PNG transparency for cockpit glass - or wether I need to use the old reversed poly trick to fake it.

I'm guessing I'm going to need to figure out shaders too if I want my finished piece to look half as good as Griff's :)

Crow
Last edited by Scarecrow on Tue Mar 02, 2010 4:35 pm, edited 1 time in total.
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

And here's a screengrab of the ship constructions in Maya.


Image

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
DaddyHoggy
Intergalactic Spam Assassin
Intergalactic Spam Assassin
Posts: 8501
Joined: Tue Dec 05, 2006 9:43 pm
Location: Newbury, UK
Contact:

Post by DaddyHoggy »

Hi Scarecrow - welcome to the forums.

I'm pretty sure the poly count is higher than 500 (800 in the latest version?) and there will be soon no limit at all!

There's a whole thread on ruining the classics so you cross post your redesigns there if you feel they're appropriate and/or in keeping.

In your pic of the comparisons - the adder, viper and Cobby3 look to scale but the buoy looks huge and the Anaconda looks tiny!

Look forward to seeing what you've got in store for us!
Selezen wrote:
Apparently I was having a DaddyHoggy moment.
Oolite Life is now revealed here
User avatar
Thargoid
Thargoid
Thargoid
Posts: 5525
Joined: Thu Jun 12, 2008 6:55 pm

Post by Thargoid »

Firstly greetings, salutations, hiya and welcome :) Always nice to see someone jumping straight in and joining the team and giving something back into the game.

There are a few places around where you can get the scripts (Obj2Dat and Dat2Obj) of various vintages. I've just added to it by putting the copies I have (which seem to work well enough) onto my webspace, link is in my sig below. Feel free to grab them if you still need them. They do of course need a python installation to run (I just mention for completeness).

For your viper, the first comment is that it's not always the first ship you see. The game isn't centred around the player, so when you launch you may follow a viper out, or (almost) any other ship, or indeed nothing. The ships in the game lead a semi-life of their own and have quasi-intelligence via their AI scripts.

But if you're doing the viper, what I would do is grab a copy of the dat file for the ship from your trunk installation (under Oolite/oolite.app/resources/models from your install's directory), make a copy and then run dat2obj on it to turn it back into an obj file that you can import and work on in Maya (or in my case Wings3d as I'm just an amateur alien at this).

For the poly/vertex limitation, for 1.72 it's still 500. I know it has been increased once a few versions ago, but I saw in a post here recently that for the next full release the aim is to remove that limitation. I'll have a hunt around and find the post after I finish this one and make a pointer here to it.

IIRC you can't use transparent PNG, but as I said I'm not an expert on this so don't take that as gospel.

And as for shaders, you've already identified the man for that ;)

Editted to add: Post I was looking for is here, but the relevant information is:

In his post linked-to above, Ahruman wrote:
As also mentioned earlier, there will be no vertex or face limit in 1.73, and using a single entity is more efficient than splitting it up.

Otherwise, the limits are 320 vertices and 512 faces up until 1.69, then 500 vertices and 800 faces. Each model may use up to 7 materials. I don’t know of a limit to subentity count.
PS Can we also presume you know of the wiki for the game (and it's Elite sisters), a goldmine of information on all the elements including how to make an OXP and how to write a shipdata.plist, make Oolite models and textures (not that you should need the last two, but I include them for completeness). All useful reference stuff :)

And of course if you get stuck, need advice or just a hearty dose of support and congratulations you've got this place :D Can't comment on your designs yet, as work blocks photobucket :evil:
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

That's a veritable gold mine of info! Thanks a lot, mate.

I do know of the wiki and I shall definately be putting it to good use - particularly the pages you linked to.

Re: the Police Viper. Fair enough, I notice one launches ahead of me quite often, but if I ever have a situation where one doesn't I need only shoot the Coriolis station ;)

I'm thinking too that if I just want to check a model, I can simply, temporarily replace the nav-buoy with the model. Shame there's no 3rd person camera in the game.

Cheers,

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Thargoid
Thargoid
Thargoid
Posts: 5525
Joined: Thu Jun 12, 2008 6:55 pm

Post by Thargoid »

No probs.

I presume by 3rd person camera you mean one that can go roaming around looking at things independently of the player ship. It is possible to view the ship you're flying (in some cases) from the outside, just press "v". The external views are defined in the shipdata.plist entry for the ship, and not every player ship has them.

For model checking etc you could replace the buoy yes, but the more normal way is to set-up and use the debug console. You can use this to spawn ships, monitor scripts, change game settings and all sorts of interesting and dubious chainsaw hacks on-the-fly.

Oh and there's some issues with the current version and a couple of OXPs which makes the nav buoy not appear. Just as a side comment.
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

Okay then, here's my first dead end.

I grabbed a copy of OBJ2DAT and DAT2OBJ and installed Python (3.0) and restarted my machine.

I dragged a DAT file onto DAT2OBJ.py and....

Nothing. The command line window flashed up for a second and then disappeared again and nothing happened.

Equally when I drag an OBJ onto OBJ2DAT.py same thing happens :(

I was under the impression that it was a drag and drop script. No?

I checked the Wiki for info but couldn't find anything.

What am I doing wrong?

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Thargoid
Thargoid
Thargoid
Posts: 5525
Joined: Thu Jun 12, 2008 6:55 pm

Post by Thargoid »

I'm on a Windows PC, so for me it's command line. If you are too then go via a command prompt. Typically I just copy the script to the directory where my obj (or dat) file is, then go into a command line prompt, to that directory and then run one on the other.

I would guess Linux will be along similar lines, but there I'm no expert.

If you're on a Mac then it may be that you need a different version or some other way to do it, I'm sure one of our Mac users can help there.
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

I'm on a PC but I'm afraid I'm at a loss as to how to run a python script via a command prompt window. Do I need to put in arguments? If so, what are they? What's the format?

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Thargoid
Thargoid
Thargoid
Posts: 5525
Joined: Thu Jun 12, 2008 6:55 pm

Post by Thargoid »

For me it's "obj2dat.py myshipdesignfile.obj" typed into the command prompt, having cd'd into the correct directory first, and using your filename of course.

The texture and materials files should also be in the same directory, hence why I tend to move the script file into the directory I'm using for the design work and finish things off there.

The end result should be a .dat file with the same name as the obj file (but in lower case iirc).
User avatar
Pangloss
---- E L I T E ----
---- E L I T E ----
Posts: 303
Joined: Wed Dec 13, 2006 5:57 pm
Location: Scranton, PA (via Stevenage, Herts)

Post by Pangloss »

Hi Scarecrow.

I know sweet bugger all about 3D models, but I know how to slap together a design or two. If you get to the stage of coloring (sorry, been in the US too long) the ship, can you post the basic texture map? I'd love to pimp it a bit, make a GalCop decal or two for it, and so on. Even if you don't use the texture in your design, it gives me an excuse to do more ship designs.
"All is for the best in this best of all possible worlds..."
Dr.Pangloss, Voltaire's 'Candide'.

Image
User avatar
Cmdr Wyvern
---- E L I T E ----
---- E L I T E ----
Posts: 1649
Joined: Tue Apr 11, 2006 1:47 am
Location: Somewhere in the great starry void

Post by Cmdr Wyvern »

@Crow

I'm not sure if you're aware of this, Oolite is based more-or-less loosely on an old classic game called Elite. Elite was coded for the none too powerful computers of the 80's, and as such had very low poly ship models, and in some cases no models at all, just 3d sprites consisting of skeletal lines.
The native ships in Oolite, such as the Viper, Cobby, Anaconda et al, are modeled as close to exactly as possible to Elite's ships.

OXPers are of course welcome to stick with the low-poly 'plated' classic plan, or go as crazy as the game engine allows. 8)

-- Wyvern
Running Oolite buttery smooth & rock stable w/ tons of eyecandy oxps on:
ASUS Prime X370-A
Ryzen 5 1500X
16GB DDR4 3200MHZ
128GB NVMe M.2 SSD (Boot drive)
1TB Hybrid HDD (For software and games)
EVGA GTX-1070 SC
1080P Samsung large screen monitor
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

Oh yes, I used to play it on the Spectrum when it first came out.

I know a lot of people prefer to keep the ships looking as they did in the original. I'm an artist and modder, however and I just can't leave it alone :)

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Scarecrow
Dangerous
Dangerous
Posts: 99
Joined: Fri Jan 09, 2009 9:21 am
Contact:

Post by Scarecrow »

Still no joy.

I run the python command line and I type in:

obj2dat.py mymodel.obj

and I get a syntax error: Invalid Syntax

I'm actually not sure if I'm directed to the correct directory. I tried cd\ and it just gave me three dots ... I don't know what that means.

I dragged the folder that contains the files and scripts into the command line window and it automatically switched to the correct folder path.

I tried again and again got a syntax error: Invalid Syntax.

:(

Crow
Senior Artist - Blitz Games
My other work
The Crow's Nest
User avatar
Svengali
Commander
Commander
Posts: 2370
Joined: Sat Oct 20, 2007 2:52 pm

Post by Svengali »

Scarecrow wrote:
I run the python command line and I type in:
obj2dat.py mymodel.obj
and I get a syntax error: Invalid Syntax
On my computer it is called obj2DatTex.py mymodel.obj. Give it a try .-)

This python-script uses the textures (when done in WINGS -> xyz_auv.png).
Post Reply