OpenMW pipeline from a perspective of an art asset creator

Feedback on past, current, and future development.
Post Reply
Lamoot
Posts: 176
Joined: 22 Apr 2016, 12:03

OpenMW pipeline from a perspective of an art asset creator

Post by Lamoot »

Greetings,

I've been testing the art pipeline of OpenMW and CS in the last couple of weeks, during which I encountered several things getting in the way. Some of them are already well-known or on the roadmap, but I'm including those as well. My purpose is to give a thorough overview from an artist's perspective on what's ideally needed for an efficient workflow. My background is in 3d modelling, rigging and animation for games and for that I mainly use Blender.

I would also like to add, I understand the alpha state of OpenMW CS, and I understand nothing implements itself through wishing alone :) So, here they are:


----------Blender navigation scheme in viewport----------

As an open source project OpenMW naturally fits with other open source projects. With this in mind, it would help familiarity if orbit view controls in OpenMW CS preview window used the same control scheme as Blender.
  • MMB rotate view
  • Shift + MMB pan view
  • Ctrl + MMB zoom view
  • Alt + MMB click focus view under the mouse cursor and set the orbit point there
One other, widespread control scheme is Maya's, which I don't personally use, but I know many people do.
  • ALT + LMB rotate/orbit view
  • ALT + MMB pan view
  • ALT + RMB zoom view

----------Reloading / refreshing of assets without restarting OpenMW CS----------

When adding a new asset to /data folder, you need to restart OpenMW CS for the asset to show in the editor. Doing this once per asset is ok, but when iterating on one or more assets it quickly adds up. Ideally this would be done automatically whenever a change in /data is detected.


----------Scaling factor for the OSG exporter----------

Blender:OpenMW scale ratio is 70:1, where 70 Blender units translate into 1m in OpenMW. This is an odd scale to work with. It's a lot easier to say 1 Blender unit equals 1m when creating models and then apply a desired scale at export, without affecting the working files.


----------Custom mesh normals----------

In Blender and other 3d apps, you can define custom normals for meshes, to adjust and improve their shading. This is useful for many things, especially foliage and trees. BetterCollada exporter from the Godot engine and Blender's FBX one support this (in case anyone wishes to inspect how it's being done)
https://simonschreibt.de/gat/airborn-trees/
http://ericchadwick.com/img/ericchadwic ... arison.gif
http://i.imgur.com/ljyRkJ2.jpg


----------Exporting of textures named other than diffuseMap, normalMap, specularMap----------

The current setup requires textures with specific names so they fit into appropriate slots in OpenMW's shader. The problem appears as soon as you have more than one material per Blender file, where different textures cannot share the same name. This requires some sort of post-export fixing of texture names in the files. Perhaps an approach can be used where only a part of texture's name is taken into account, e.g. texture01, texture01_spec, texture01_nor etc.


----------Custom collision meshes----------

A way is needed to export custom collision shapes. Like OpenMW, Blender uses Bullet for physics. If possible, the exporter could check whether an object has physics enabled in Blender and with what kind of collision hull. Preferably a separate object would be used for that.

Alternatively, the collision mesh could share its name with the asset, and have a suffix to tell the mesh is meant for collision. For example:
  • rock, rock_col
  • item, item_col
  • chair, chair_col
----------Preview of meshes, textures, icons, audio in OpenMW CS without assigning them to objects----------

Currently you need to assign a mesh to an object before you can check the preview. It'd allow faster inspection of meshes and other assets, if you could preview them on their own.


----------Terrain editing----------

There are two ways I can think of editing the terrain – importing a heightmap, and terrain editing tools in OpenMW CS. heightmap would be applied to a rectangular region of cells, ranging from a single cell to any desired, sensible size. This way you could create a whole world at once, smaller areas such as individual islands, and tweak and edit individual cells.

Terrain editing tools in the editor.
  • raise
  • lower
  • level – make flat terrain at a particular height
  • smooth / sharpen
  • noise – add random noise offset to break regularity.
----------Animation exporting----------

Beside animation support in the native format, an option is needed when exporting rigs due to how they are made. A common, usable rig in Blender has bones with different roles:
  • deform bones – they deform the mesh but are not animated directly
  • control bones – used to control the rig, made to behave and feel nice for animation
  • helper bones – various extra bones used to automate and drive the rig, not animated directly
In-game only deform bones are needed and exporters such as the FBX have an option to discard all but those (in Blender, bones can be flagged as deform with no need for a naming scheme to differentiate them). Such an option for the OSG exporter would be very useful.


----------Conclusion----------

It's quite a list and from what I understand, these suggestions are all beyond the initial purpose of OpenMW (So it's mostly a post 1.0 affair). But hopefully, it'll give you an insight into the needs of asset creators. If you've come this far, thank you for reading :)
User avatar
DestinedToDie
Posts: 1181
Joined: 29 Jun 2015, 09:08

Re: OpenMW pipeline from a perspective of an art asset creat

Post by DestinedToDie »

X, Y, Z drag lines can sometimes be inside the object when it is large, and thus inaccessable. They should be transparent (like in Blender) so you can always see them while your object is highlighted.
CMAugust
Posts: 285
Joined: 10 Jan 2016, 00:13

Re: OpenMW pipeline from a perspective of an art asset creat

Post by CMAugust »

All look like very good points to me :) I recently made a topic of my own musing about the native format and what artists could get out of it. Stuff like this could be very good for modding going forward.
User avatar
openmwfan27
Posts: 113
Joined: 23 Apr 2015, 22:11

Re: OpenMW pipeline from a perspective of an art asset creat

Post by openmwfan27 »

The ability to create 'prefabs' from a set of objects, then you can use that prefab throughout your scenes. If you need to change an object in the prefab you only need to change it once and all other instances of that prefab are updated.

Similarly it would be good to be able to clone a prefab easily, like if you have a prefab you've used multiple times, but you need a slight variation of that prefab, you can just clone it and make changes to the clone without effecting the instances of the prefab you cloned from.

A tabbed interface for the panels in OpenMW-CS would be a great addition for workflow, i made a thread about it here: viewtopic.php?f=3&t=3549

In addition to that, having some panels such as the code editor or cell scene view open in a new tab by default rather then a new panel would be handy. So if you have a code panel open, and you open another script it will automatically open that new script as a tab in with the already open script, additional opened scripts would create additional tabs for that tabset.

Dragging a tab off the tabset would allow you to pickup that panel and drop it elsewhere in the ui either as a standard panel or as part of another tabset. If you had two code editor panels open that were not in the same tabset, when you open a new script it could open the panel for that script in the tabset which last had focus.

Being able to create 'arrays' of objects would also be handy, this way you could easily repeat objects in a line X number of times. You could set the offset amount for the x,y,z axis which is the space in that axis between any two instances in the array on that axis and set the number of times you want the array to repeat in each axis.

This would be really handy for interior cells, instead of placing a new instance of a wall into the scene, lining it up, then doing the same one for the next bit of wall, you could just drop in the first piece, position it correctly and then use an array to repeat it X number of times in each direction you want the wall to go. You could also easily build floors this way, position your first floor tile where you want it, then if you want your room to be 20x20 floor pieces across, you just set the X and Y repeat to 20 and your floor is done.

You could also create prefabs which contain objects and arrays for extra flexibility, if you wanted to create a prefab of a room you could. If you had a scenario where you need multiple identical rooms joined onto each other, you could even create an array of your prefabed room, which in itself is made of arrays of objects.
Lamoot
Posts: 176
Joined: 22 Apr 2016, 12:03

Re: OpenMW pipeline from a perspective of an art asset creat

Post by Lamoot »

Thank you for the replies, these are also all good points you mention.

I played with the 3d navigation settings and the following values feel much more comfortable if you're coming from Blender. MMB for view navigation, RMB for select, LMB to edit. I tweaked and tested the values until it felt right for me, so some of the changed values don't apply to the orbit mode I'm using.
CSviewcontrols.png
Post Reply