Search the Community
Showing results for tags 'tuorial'.
-
What is a prop-point? A prop-point is a specific point in a 3D space (basically a coordinate) with a specific name which is used to reference that specific spot within 0AD actors (structures' models, units, animals, even props) What are they used for? They're used to spawn an actor within another actor. Basically you load another model/unit/structure/prop of the game inside the model where the prop-point is. Examples: - In a structure, you can use a prop-point to have a fountain which is already in the game and place it within that structure. - In units, you can use prop-points to have different gear in different places like the head for helmets, in the hands for shields/weapons etc - In animals, you can use prop-points to spawn effects like dust in their feet when they're running or blood when they die. - In props, you can use it for randomization of the prop, like a helmet which can use different styles of feathers spawned at the prop-point location. Which are the benefits? There are many. Just saying that you can reference any existing prop/model in the game directly in a place within your model is quite powerful already. - Powerful recursive system - Easy set-up - Randomization capabilities - Memory saving (you don't need to store again the data of a model that is already in the game) How can I create them? In Blender3D: In blender these prop-points are made with "empties". An empty is just a point in space which stores the coordinates where it's located within the scene. No materials, no geometry, no lighting data. Just location and rotation. To create an empty in your model, just open the "add menu" with shift+space in the viewport and select "Empty" there will be a list with different empties types, but these are all the same, just different types of representations of it. Select your preferred type (the standard is "Plain Axes") and an empty will be created in the location of the 3D cursor. IMPORTANT NOTES: -It is obligatory that the name of these empties start with: "prop- " or "prop_ " -Examples: prop-fountain , prop-helmet, prop_flag-AND it is also obligatory that the empties are parented to the geometry of your model. To parent the empties to your model, (in object mode) select all your empties first, then your model and use the hotkey CTRL+P and they'll be parented to the geometry.-Finally, when exporting, select all your empties first, and you model last, and export as usual.How can I reference a prop-point inside an .xml actor? Props are defined in the .xml normally after the mesh has been defined. Here's an example of the persian stables, where the horses are propped by prop-points. Note that minheight and maxheight are OPTIONAL parameters used for anchoring the prop-point to the ground. Prop parameters: actor= the actor .xml that we want to spawn in that prop-point attachpoint= the name of the empty/prop-point that we created in the mesh WITHOUT the "prop-" or "prop_" prefix minheight/maxheight= These are optional parameters to determine the anchoring to the ground, the max and minimum height the prop will have when conforming to terrain. <?xml version="1.0" encoding="utf-8"?><actor version="1"> <castshadow/> <group> <variant frequency="100" name="Stables"> <mesh>structural/pers_stables.dae</mesh> <props> <prop actor="props/structures/decals/dirt_4x4.xml" attachpoint="root"/> <prop actor="props/structures/decals/celt_sb1_mud.xml" attachpoint="root"/> <prop actor="props/structures/persians/stable_horse_a.xml" attachpoint="horsea" minheight="-20" maxheight="1.7"/> <prop actor="props/structures/persians/stable_horse_b.xml" attachpoint="horseb" minheight="-20" maxheight="1.7"/> <prop actor="props/structures/persians/stable_horse_c.xml" attachpoint="horsec" minheight="-20" maxheight="1.7"/> </props> <textures> <texture file="structural/pers_struct.png" name="baseTex"/> [...]Prop-points in armatures When creating prop-points for meshes that are animated (in other words, when they have an armature/skeleton) the prop-points are created with bones. These bones doesn't need to have a vertexgroup in the mesh, but they're required to have a name with the prefix "prop-" or "prop_" just the same as when using empties.These bones also need to have a parent bone, which will inherit it's movement (location and rotation)Animating these bones would not have any effect when the animation is imported into the game.When defining prop-points on animated meshes, nothing changes. It is the same procedure as normal prop-points. Other useful tutorials in this forum: Import/export assets from Blender to 0AD and baking AOHow to export animations from Blender to 0ADLowpoly modelling tipsHow to create textures with Blender3DIt would be nice if Stan could post also some guidelines to create these prop-points called dummies in 3DSMAX in this thread too