forums | blogs | polls | tutorials | downloads | rules | help

Error message

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in remember_me_form_alter() (line 78 of /var/www/siegetheday.org/sites/all/modules/contrib/remember_me/remember_me.module).

"Hidden" quiver ornament...

Sharkull's picture

Found this today:

Here's the code to add the ornament (tested using the my_test_world_amr_bdy_a2 template):

	[aspect]
	{
		[armor_ornaments]
		{
			*=type02_quiver_01,b_c_gah_amr_orn_type02_quiver_001; 
		}
	}

Note: m_c_gah_amr_orn_fa_type02_quiver_01.asp & m_c_gah_amr_orn_ma_type02_quiver_01.asp exist... but there's nothing in the half-giant folder so I'm guessing it might not be ideal for an in-game armor. Probably best used as eye candy on actors in a map.

Still, that is pretty cool.

nice find Laughing out loud

The "ornament" idea is one of the best things about DS2. When I built Wanda the waitress for DS1. I had to make the tray a sword, which gave me the problem of having to prevent it being randomly dropped, sold by vendors etc. I did the same thing for DS2 making it an ornament instead.

An ornament is built just like a helmet, gloves or boots, except that it doesn't replace anything in the original mesh, it just adds on. You weight the ornament mesh to the same skeleton the figure uses and it moves accordingly. A single ornament can actually be multiples pieces weighted to multiple bones, so you could add greaves and bracers to type1 armor, for example. In this case the tray and the bunny tail are a single ornament - just because I could!

(Edited to add picture)

Cool pic ghastly and nice find sharkull. I also thought the ornaments were powerful after reading documentation on it. I'm glad somone is putting it to good use Smile .

We need more of thease. Maybe ornamets as helmets, quivers or scabbards? Now, I do understand that the stress on the graphical engine would be great but really, whole armors should be carried as "ornaments", realistically, don't hesitate to add parts to the armor this way thou. Imagine a single armor that can take on several different looks depending on the differnt ornaments put on it. Another idea, for those that are fans of Bare Elfs nude armors, maybe whole "armors" consisting of nothing but a few ornaments? :oops: Laughing out loud

I'm not sure how much it stresses the engine, but we can make neat armor parts that are low poly. I have not looked into ornaments too much but plan to in the future. Leads to all sorts of neat possibilities.

Items as ornaments should be no more work for the engine than the same polys built-in to the mesh. Ornaments let you run less base meshes to get the same result so that should mean overall (video) memory requirements go down when the variants are all in use together. I.e if you made two meshes, with and without some addition, they'd both need to be loaded as separate items, single mesh plus ornament should be smaller, because the common part is not duplicated. Bones aren't rendered, so the duplicate skeleton should not be a factor.

firebat's picture

Maybe someone could make a tutorial on how to use these ornaments...

Quote:
Maybe someone could make a tutorial on how to use these ornaments...

Wel its just like this:
Head making tutorial
except you don't stitch a neck when it's not a head. The ornament is weighted to whatever bone is appropriate, instead of the head bone. E.g. the tray is weighted 1.0 to the right hand and the tail 1.0 to the pelvis in the bunny pic.

The one "use" question I still need to answer is how to equip/unequip an ornament. I have a vague recollection of some armour being associated with ornaments (mage robe with a collar?) so I'll start there.

firebat's picture

ghastley wrote:
Quote:
Maybe someone could make a tutorial on how to use these ornaments...

Wel its just like this:
Head making tutorial
except you don't stitch a neck when it's not a head. The ornament is weighted to whatever bone is appropriate, instead of the head bone. E.g. the tray is weighted 1.0 to the right hand and the tail 1.0 to the pelvis in the bunny pic.

The one "use" question I still need to answer is how to equip/unequip an ornament. I have a vague recollection of some armour being associated with ornaments (mage robe with a collar?) so I'll start there.

I took a look at that tutorial and it doesn't look clear at all to me, also there is a lot of stuff in it that you will not need when you make a (armor)ornament..

I would not advise this tutorial to anyone... at least not someone that wants to make an ornament.

Ornament tutorial (without any extra stuff)

1) Open farmboy/girl model from DS1 art pack. the skeletons are unchanged.
2) Add the ornament to the scene and position it where you want it.
3) Delete the skinmesh - you only needed it for positioning the ornament.
4) Add the UV map to the ornament and paint a texture.
5) rename the ornament as "skinmesh"
6) Add a skin modifier to the ornament object and add all the bones.
7) weight the ornament to the bone(s) it will move with (Normally weight = 1, as it won't bend).
Cool Save the result with the appropriate name for an ornament - i.e. m_c_amr_orn....
9) Export mesh.
10) Create template by copying and editing an existing one.

Done.

Now note that these are exactly the same steps as you would use for a head/helmet, or gloves, or boots, except that for those you might retain part of the skinmesh (face inside a helmet, for example).

ok so what about little capes and such that flap in the wind. I have finally completed the code for my equip slots and they work perfectly now, so capes are something i would really like to add in Smile

If something needs to move independently then it's going to need its own bones. Ornaments only use the base model's bones, so a cape couldn't be an ornament or any other armor type.

However, a separate cape model could be attached to the wearer. Xaa did that for the rat heads and tails in LoH (as well as Lactri, who was a spider model ridden by a legless woman). I think he explained it all in his "30-day skrit" tutorial. I assume most of it carrie over to DS2, with a few adjustments.

yeah, attaching objects is fairly easy if you get the orientations right. but the real problem is having them animate correctly to flap in the wind appropriately *ponder*

Making them attach and detach when you move them in the inventory might get tricky too. I assume you have figured out how to get code notified of these changes. I side-stepped the problem by replacing shields and amulets with other things, so i can just replace those two wherever they appear.

Be sure to write it all up when you're done!

Hey guys Cool I was just wondering, and if you cant no problem, dose anyone mind posting up a already finished Quiver toon or soo =/ I forgot so much when my computer craped out =( took me 5 hours lastnight just to figure out how to build maps =/

Well any help would rock =) thanks

Sharkull's picture

What do you mean by "already finished Quiver toon"?

=/ Ive been gone so long I forgot where and how to put the code in =/

Im so ashamed =(

so any help would help =/ being a noob again sucks

Sharkull's picture

The code I put in the first post of this thread would need to go into a new (or modified) armor template... armor template examples can be found in: logic.ds2res\world\contentdb\templates\interactive\...

Here's the code I used in making the pic (just some tweaked junk armor from my_test_world):

[t:template,n:my_test_world_amr_bdy_a2]
{
	doc = "my_test_world junk armor";
	specializes = base_armor_body;
	[aspect]
	{
		gold_value = 0; 
		use_pcontent_gold_value = false;
		[armor_ornaments]
		{
			*=type02_quiver_01,b_c_gah_amr_orn_type02_quiver_001; 
			// m_c_gah_amr_orn_fa_type02_quiver_01.asp & m_c_gah_amr_orn_ma_type02_quiver_01.asp exist...
			// but there's nothing in the half-giant folder.
		}
	}
	[common]
	{
		screen_name = "Type a2-002 body armor";
	}
	[defend]
	{
		defense = 1.0;
		armor_style = 002;
		armor_type = a2;
	}
	[gui]
	{
		inventory_icon = b_gui_ig_i_amr_suit_a2_002;
		inventory_height = 2;
		inventory_width = 2;
		is_droppable = false;
	}
	[pcontent]
	{
		[base]
		{
			item_level = 1000.0;
		}
	}
}