In light of paladin's lack of updating in about a year, I'll be taking over this section, as a PyPRP developement journal.
For starters, let's do a short recap of the latest changes:
The update of a few weeks ago does not seem to have many major changes. However, the internal support for materials, textures, layers and bitmaps has been totally reworked.
This means that you might run into some changes that you didn't expect, for example with the import of ages.
The first thing you willn otice is that PyPRP no longer puts a uv texture on every object. This was an intentional change, as there is now import support for materials, and it puts everything orderly under blenders material settings. It also supports multiple textures per object now.
Another under-the-hood update, but one which I hope will be expanded on in the future, is the addition of AlcScript.
(called that way, because "PyPRPScript" just wasn't as easily pronounced ).
This is the feature that requires you to install PyYAML with the newest versions of the plugin.
AlcScript can be used in the exporting process to obtain extra settings for objects, that cannot be placed in any normal blender property. Up until now we always used logic properties for that, but editing them is extremely tedious work, and not quite flexible. AlcScript is meant to alleviate the use of logic properties.
It is implemented in a blender-internal text file called - how appropriately - "AlcScript". And it has the following structure:
- Code: Select all
- <object name>
type: [object | camera | etc...]
<subset 1>:
<property>: <value>
<property>: <value>
<subset 1a>:
- <listitem1>:
<property>: <value>
- <listitem2>:
<property>: <value>
<subset 2>:
<property>: <value>
- <object name>
type: [object | camera | etc...]
<subset 1>:
<property>: <value>
<property>: <value>
This is just a basic structure description, the items between "<" and ">" are generic describers, and should be replaced with the name of a subset, or an object.
An example of how I practically envision it's use in the future:
Fictional Example: (Not all used properties and subsets exist yet!)
- Code: Select all
- GroundFloor:
type: object
physical:
refriction: 4.5
visual:
lights:
- sun1
- IndoorLamp2
- GroundCam:
type: camera
brain:
type: fixed
transitions:
- HallCamera1:
cutto: false
accel: 50
decel: 60
maxspeed: 30
- SkyCam:
cutto: true
Well, tha's about how AlcScript basically should work.
Currently only the camera support is implemented, and unfortunately, I couldn't access the source code while writing this post, so I had to do quite some guesswork in the above example.
Nevertheless, the principles behind the example are solid.
Until the the next post!
--Trylon