Home » Fable TLC » Discussion » Requests » Request - Separate controls for block/roll
|
Re: Request - Separate controls for block/roll [message #70154 is a reply to message #70153] |
Sun, 23 March 2014 11:19 |
|
asmcint
Messages: 1360 Registered: April 2010 Location: Behind the beef
|
Moderator
|
|
|
Alright, for the block/roll thing... Not possible.
You can swap animations about in the game, but I'd reccomend you get a little more experience under your belt before trying it. Still, if you want to give it a shot, you'll need Fable Explorer and Silverback's CAppearanceDef app. As for making new animations, I'm not entirely certain. If I remember correctly, it's possible, but hard as balls for you to get anything to work correctly.
Read the site rules, as well as individual thread rules, stickies and announcements, and use search, or you will have smartassy or exasperated ownage rained down upon you by the site's crack team of mods and admins. Also, you can find all you need to get started on modding here.
|
|
|
|
|
Re: Request - Separate controls for block/roll [message #70159 is a reply to message #70156] |
Mon, 24 March 2014 07:26 |
|
Keshire
Messages: 1266 Registered: July 2005
|
Administrator
|
|
|
asmcint wrote on Sun, 23 March 2014 20:59 | Huh. If that's the case, maybe we can get some slightly more historically accurate animations into the game.
|
I did some brief looking around, and this looks like it might be a bit complicated to get setup.
There isn't a game action for rolling. Just blocking, and I'm not sure how they assign the game actions to the anim actions. I'd assume your best bet is to hijack a game action and find which anim action it's assigned to.
pc_controls.def
Controls.Add(CActionInputControl(GAME_ACTION_BLOCK, CONTROLLER_MOUSE, MOUSE_BUTTON_MIDDLE_CONTROL));
some CAppearanceDef entry examples
Animation.StartGroup("SWORD");
Animation.Add("ST_IDLE", ANIM_HERO_COMBAT_IDLE_1_1);
Animation.Add("ST_IDLE_SUBTLE", ANIM_HERO_COMBAT_IDLE_1_1);
Animation.Add("ST_WALK", ANIM_HERO_WALK_WITH_SWORD, Flags(ANIM_FLAG_PRELOAD), TransTime(7));
Animation.Add("ST_JOG", ANIM_HERO_JOG_WITH_SWORD, Flags(ANIM_FLAG_PRELOAD), TransTime(7));
Animation.Add("ST_RUN", ANIM_HERO_RUN_WITH_SWORD, Flags(ANIM_FLAG_PRELOAD), TransTime(7));
Animation.Add("ST_SPRINT", ANIM_HERO_SPRINT_WITH_SWORD_01, Flags(ANIM_FLAG_PRELOAD), TransTime(7));
Animation.Add("ST_SNEAK", ANIM_HERO_SNEAK_WITH_SWORD, Flags(ANIM_FLAG_PRELOAD), TransTime(5));
Animation.AddCombat("BLOCK_FRONT_RESPONSE", ANIM_HERO_BLOCK_FRONT_RECOIL_1_1);
Animation.AddCombat("BLOCK_FRONT_RESPONSE", ANIM_HERO_BLOCK_FRONT_RECOIL_2_1);
Animation.AddCombat("BLOCK_FRONT_RESPONSE", ANIM_HERO_BLOCK_FRONT_RECOIL_3_1);
Animation.AddCombat("BLOCK_LEFT_RESPONSE", ANIM_HERO_BLOCK_LEFT_RECOIL_1_1);
Animation.AddCombat("BLOCK_LEFT_RESPONSE", ANIM_HERO_BLOCK_LEFT_RECOIL_2_1);
Animation.AddCombat("BLOCK_RIGHT_RESPONSE", ANIM_HERO_BLOCK_RIGHT_RECOIL_1_1);
Animation.AddCombat("BLOCK_RIGHT_RESPONSE", ANIM_HERO_BLOCK_RIGHT_RECOIL_2_1);
Animation.AddCombat("BLOCK_BACK_RESPONSE", ANIM_HERO_BLOCK_BACK_RECOIL_1_1);
Animation.AddCombat("BLOCK_START", ANIM_HERO_BLOCK_FRONT_1_1);
Animation.AddCombat("BLOCK_FINISH", ANIM_HERO_BLOCK_FRONT_1_1);
Animation.Add("BLOCK_IDLE", ANIM_HERO_BLOCK_FRONT_1_1, TransTime(1));
**snipped the end of that off**
Apathy Cannot Inspire.
Ambivalence cannot lead.
Loved me. Feared me.
Changed me. Killed me.
Anything would be something.
But nothing is worst of all.
|
|
|
Re: Request - Separate controls for block/roll [message #70196 is a reply to message #70153] |
Sun, 30 March 2014 19:51 |
xxNick
Messages: 54 Registered: March 2014 Location: San Antonio, TX
|
|
|
|
Looked into this. Speccing the CAppearanceDef isn't doable in xml. Keshire and other dev types are already going to know this. This post is for people who might be wondering why the CAppearanceDef isn't editable within FableExplorer.
You'd need a language capable of case handling. Most unfortunate, but knowing how they pieced it all together does mean that editing the animations won't involve as much crossing of fingers as people will have a better understanding of what they're doing. Curious if Silverback's tool can benefit from the data though.
Edit: Nope. No external definitions like the def.xml.
It's those flags. You have cases 0-5, each with flags that determine how the rest of it is going to go. You could work up a very, very hackish way of working it but because those flags are the same number between cases but different data... For example, cases 2, 4 and 5 all have the 0 flag, but those 0 flags are all different (also, case 5 flag 0 is just crazy, it has it's own flag!). That would be hard to spec in any language, but xml just doesn't have the case handling needed to make it happen.
If all the cases and flags were different numbers and 4 bytes, you could set up controls in xml and set it up like a hacked together entry definition.
How to make a good Fable game.
And how to make it even better.
[Updated on: Sun, 30 March 2014 22:31] Report message to a moderator
|
|
|
Re: Request - Separate controls for block/roll [message #70200 is a reply to message #70196] |
Mon, 31 March 2014 05:46 |
|
Keshire
Messages: 1266 Registered: July 2005
|
Administrator
|
|
|
xxNick wrote on Sun, 30 March 2014 21:51 | Looked into this. Speccing the CAppearanceDef isn't doable in xml. Keshire and other dev types are already going to know this. This post is for people who might be wondering why the CAppearanceDef isn't editable within FableExplorer.
You'd need a language capable of case handling. Most unfortunate, but knowing how they pieced it all together does mean that editing the animations won't involve as much crossing of fingers as people will have a better understanding of what they're doing. Curious if Silverback's tool can benefit from the data though.
Edit: Nope. No external definitions like the def.xml.
It's those flags. You have cases 0-5, each with flags that determine how the rest of it is going to go. You could work up a very, very hackish way of working it but because those flags are the same number between cases but different data... For example, cases 2, 4 and 5 all have the 0 flag, but those 0 flags are all different (also, case 5 flag 0 is just crazy, it has it's own flag!). That would be hard to spec in any language, but xml just doesn't have the case handling needed to make it happen.
If all the cases and flags were different numbers and 4 bytes, you could set up controls in xml and set it up like a hacked together entry definition.
|
Ya it's a pain. These were all the ones I've seen so far. And when I say optional, it's means those animations can contain some, or all of the listed arguments.
<!-- CAppearanceDef -->
<!-- I'm not sure this can be done via xml
Animation.SetDefaultDelay(int)
Animation.Add(link, link)
Animation.AddCombat(link, link)
//With optionals
Animation.Add(link, link, Flags(bitwise??),TransTime(int), Delay(int))
Animation.AddCombat(link, link, Combo(int, int), Handedness(link, link), Recoil(link), CombatMisc(bool, bool), TargetOffset(float, float), StrikeResponseAnim(link), NextAnimFilter(link));
Animation.StartGroup(link)
// and any number of the Animation members
Animation.EndGroup()
-->
Apathy Cannot Inspire.
Ambivalence cannot lead.
Loved me. Feared me.
Changed me. Killed me.
Anything would be something.
But nothing is worst of all.
[Updated on: Mon, 31 March 2014 05:47] Report message to a moderator
|
|
|
Goto Forum:
Current Time: Thu Dec 26 02:55:40 PST 2024
Total time taken to generate the page: 0.07577 seconds
|