Home » Fable TLC » Development » Tools » Miscellaneous Applications
Miscellaneous Applications [message #15142] |
Tue, 12 December 2006 20:43 |
|
Silverback
Messages: 170 Registered: July 2005 Location: Illinois
|
Cow Tipper
|
|
|
Sigh, This is something I really never wanted to do. But as requested here are some applications I wrote. Please keep in mind these applications were not meant or designed for you. There will be no support from me, I don't care if it works for you or not. Judging by the majority of the posts, it won't.
Lets start it off simple. CAppearanceDef application, first off what does this do? It basically is the list of animations the hero users when called upon. This is essentially how I created the "Piss" Expression, you could change animation IDs for say when your hero runs with a large sword, add jumps etc... This Cdef couldn't be done with the xml so something custom was made.
Basically all you need to do is extract the CAppearanceDef for whatever you want to edit (check the cdefs in Fable Explorer). Click Open on the application, select the CAppearanceDef and then select the appropriate names.bin (if you only have one platform this is way simple). The list will load with all the name calls and the header/footer will display in textboxes (Note Xbox you can't edit header/footer). Double click whatever from the treeview and it will open a new window. Here is a brief explanation of what the buttons do:
Names.Bin List - This is just a quick search for you to look up names and offsets
Animation List - You will be asked to open Graphics.big to have a quick search of animation and ID's. This will also cause previous form to display names for animation IDs
Create - I never did move this oh well. This creates a new entry in the CAppearanceDef itself, not the entry. This was a bad design idea. You will be asked to import something it was meant to be used with Extract below. This re-orders CRC list and is Fable safe.
Extract - This extracts the entry auto-names on extraction to Name and ID. You will want to extract before you create. The naming convention will look like this ST_RUN 3432 where ST_RUN is the namesbin link and 3432 would be the Animation ID.
Import - Copies something directly over top over entry. This does not cause list to be resorted. So if you import something with a different CRC value odds are the list will not be read by Fable anymore. This was/is really meant to test out the various arrays at the tail of entry.
Apply - It writes textbox values back to file. This will not take in consideration arrays (there are 14 different types) and it will not matter. Once again CRC value is not re-ordered. If you want this to work I recommend not changing that value.
Delete - It um deletes the entry
Close - It closes the frame.
The rest of the applications will follow soon, I will more than likely delete any post in this thread so don't bother.
Update: Basic Idea of use.
1. Open up desired Creature and select its CAppearanceDef.
2. Export The CAppearanceDef (I think you can figure out how to name it)
3.With CAppearanceDef Open (common sense is not a step) Select the Open button (I know this was difficult with the freeroam app lol)
4. Select Whatever you extracted in Step #2
5. Then Follow the prompt and open up your Names.Bin Fable - The Lost Chapters\data\CompiledDefs
This one is just a quick guide to current screen now.
A. Treeview Data (This is the CRC sorted list) This List must be sorted or it will not work! Don't worry you can only break this a few ways. The names are displayed for simplicity.
B. Header Data for CAppearanceDef (you cannot edit this)
C. Tail Data is well, the tail data. You don't really need to mess with this unless you are wanting to fill in the unknowns.
D. Apply only writes data from textboxes in C.
Step #4 and further UI overview.
6. Double Click Entry to bring up new window.
Well really that is it for getting there, I'll cover some basics later in post.
E. Header Data This is the important part of the data. I do not suggest editting CRC_Name and hitting (K.) Apply. It will more than likely break your file.
F. Names.bin list. Opens a quick search tool for Names.bin so you can find data if you need to.
G. Animation List. You must point open file dialog window to your graphics.big file on your first load. This is used to quickly search the entries to get animation IDs.
H. Create This one is important! It creates a brand new entry and automatically sorts it in the list. This button should of been on the main form, but oh well.
I. Extract another Important one. It Extracts current entry. When you are saving don't worry about the name just type in random stuff it will name the file for you like this: Name - Anim ID. So if I extracted what is in the picture the file would be named LIGHT_LAMP-3179.
J. Import This imports new data over the top of the current entry. If the CRC number is not the same I do not recommend doing this.
K. Apply this writes (some) textboxes in current window. The reason I say some is that the data is being generated on a very loose system and I'll cover that in a technical addition at the bottom.
L. Delete this erases the entry.
M. Close, it umm closes it.
You will find the app writes the file on the fly so once you do something well it is ready to go.
Ok now a simple idea on how to use this application. Lets do an example on how I added the Expression stuff (please note these differ from some expressions, in the other expressions the data existed for the Hero already. We are going to create this data with the application.
Anyhow find the animation you want. I wanted the Bandit's pissing animation. So extract bandits CAppearanceDef open it up. Use the search it is much faster! Search "piss" double click treeview entry. When the new window opens hit Extract (I.)
Now open CAppearanceDef for the Hero double click any entry when the new window opens hit Create (H.) and select the data you just extracted. Keep in mind the naming system. So find ST_PISSING-1401 .
Thats it import CAppearanceDef back into Fable Explorer (you don't need to save with CAppearanceDef application it does automatically) Link your names.bin offset to new expression and that is it. You can see the names.bin offset for the entry in (E.)
Further data if you wanted to replace all side rolls/strafes with jumps you could just open desired entry and change the animation ID and select apply.
*Technical*
Now if you receive any errors they should just be numbers and if you haven't altered this file yourself, I need the file name and the number given. Don't be a jackass and say the file is CAppearanceDef (give specific entry) This is how the format was cracked the application was really designed to break the format and that was it.
Why does this application only write to some textboxes. Well for entry type I have the current setup and I do not care to find out more. So I left the option for you to extract and edit the data and import back over it. (That is the only reason there is a import button there!) Here is current setup, numbers are entry type numbers and exist as shown:
lolwut |
0 - No bytes (My personal favorite)
1 - 2 Ints (No Strange Stuff)
2 - INT, Byte, Byte (flag)
Flag = 1: Int, Byte, Float, Int
Flag = 0: Short, Int Int
3 - Int, Int, Int, Int (Flag?)
Flag = 6: Byte, Byte
Flag = 3: Int Int
Flag = anything else?: Int
4 - Int, Int, Int, Int, Int, Int, Int (Flag)
Flag = 0: Int
Flag = 4: Int, Int
Flag = 5: Int
Flag = anything else?: No further data
5 - Int, Int, Int, Int, Int, Byte, Byte (Flag)
Flag = 1: Int, Byte, Float, Float, Int, Int (String Size), ~String
Flag = 0: Short, Int, Int, Int (Flag?)
Flag = 4294966519: Int, Int, Byte, Byte
Flag !=4294966519: Int, Int, Int
|
[Updated on: Mon, 11 January 2010 04:26] by Moderator Report message to a moderator
|
|
|
|
Re: Miscellaneous Applications [message #15144 is a reply to message #15142] |
Tue, 12 December 2006 21:48 |
|
Keshire
Messages: 1266 Registered: July 2005
|
Administrator
|
|
|
I'd just like to also state that the CAppearanceDef most likely controls combo moves with that trailing data. I know for a fact that it controls what the recoil animation is for certain moves.
I used this app to add Whisper's Staff moves into the Hero's CAppearanceDef. Whether it can create entirely NEW weapon types hasn't been tested.
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: Tue, 12 December 2006 21:48] Report message to a moderator
|
|
|
Re: Miscellaneous Applications [message #15147 is a reply to message #15144] |
Wed, 13 December 2006 01:11 |
|
Silverback
Messages: 170 Registered: July 2005 Location: Illinois
|
Cow Tipper
|
|
|
Misc Bin Poker - To be used to modify sound_animation_events and game_animation_events (.bins) that are located in /Data/Misc/
These essentially link Ingame.met sound groups to animations. You can do volume stuff with the floats.
To use - open one of the bins above, open graphics.big. List loads, you can change sound groups and it will tell you in the label what group it is. To add/delete arrays just change the number of the textbox. If you want an idea what groups there are look at the list.txt. You must keep this file as this is where the info is coming from.
The only thing I've done with this is I changed all my footsteps to sounds of villagers laughing at me.
[Updated on: Wed, 13 December 2006 01:27] Report message to a moderator
|
|
|
Re: Miscellaneous Applications [message #15148 is a reply to message #15142] |
Wed, 13 December 2006 08:08 |
|
Satan
Messages: 1033 Registered: September 2005 Location: Hades
|
Administrator
|
|
|
There will be EXTREMELY LIMITED support for these tools. Any stupid posts about them either in this thread or in new ones WILL be deleted without any further warning.
There is nothing in the Void.
There is no point to it's being.
I wish there was a reason.
There is nothing in the Void,
But what we put there.
[Updated on: Thu, 14 December 2006 00:39] Report message to a moderator
|
|
|
Re: Miscellaneous Applications [message #15154 is a reply to message #15148] |
Wed, 13 December 2006 20:04 |
|
Silverback
Messages: 170 Registered: July 2005 Location: Illinois
|
Cow Tipper
|
|
|
Another one, This is for Effects.big it is pretty limited and while you can mess with some stuff other things you can't see. The def list needs to be redone (the way it is loaded is crazy). You can fill in unknowns etc, I will need to actually finish this one some time.
To use file->effects.big select stuff and then just click on the form for options.
::oops::
[Updated on: Wed, 13 December 2006 21:38] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Miscellaneous Applications [message #70117 is a reply to message #15142] |
Fri, 14 March 2014 09:31 |
|
Keshire
Messages: 1266 Registered: July 2005
|
Administrator
|
|
|
Silverback wrote on Tue, 12 December 2006 22:43 |
0 - No bytes (My personal favorite)
1 - 2 Ints (No Strange Stuff)
2 - INT, Byte, Byte (flag)
Flag = 1: Int, Byte, Float, Int
Flag = 0: Short, Int Int
3 - Int, Int, Int, Int (Flag?)
Flag = 6: Byte, Byte
Flag = 3: Int Int
Flag = anything else?: Int
4 - Int, Int, Int, Int, Int, Int, Int (Flag)
Flag = 0: Int
Flag = 4: Int, Int
Flag = 5: Int
Flag = anything else?: No further data
5 - Int, Int, Int, Int, Int, Byte, Byte (Flag)
Flag = 1: Int, Byte, Float, Float, Int, Int (String Size), ~String
Flag = 0: Short, Int, Int, Int (Flag?)
Flag = 4294966519: Int, Int, Byte, Byte
Flag !=4294966519: Int, Int, Int
|
From what I've seen from Fable Anniversary
<!-- CAppearanceDef -->
<!-- I'm not sure this can be done via xml
~~Animation.Add("action", AnimID)~~
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)
//any number of the Animation members from above
Animation.EndGroup()
-->
//first number in AddComboStage is the combo number (ie 0, to 1, to 2, to 3 etc...)
//second number is a unique ID for a combo
//move 1
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED", ANIM_HERO_RIGHT_HOOK_1, Combo(0, 21), Handedness(HANDED_NONE, HANDED_NONE));
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED", ANIM_HERO_RIGHT_UPPERCUT_1, Combo(0, 21), Handedness(HANDED_NONE, HANDED_NONE));
//move 2
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED", ANIM_HERO_LEFT_UPPERCUT_1, Combo(1, 21), Handedness(HANDED_NONE, HANDED_NONE));
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED", ANIM_HERO_LEFT_HOOK_1, Combo(1, 21), Handedness(HANDED_NONE, HANDED_NONE));
//move 3
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED", ANIM_HERO_RIGHT_UPPERCUT_1, Combo(2, 21), Handedness(HANDED_NONE, HANDED_NONE));
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED", ANIM_HERO_RIGHT_HOOK_1, Combo(2, 21), Handedness(HANDED_NONE, HANDED_NONE));
//move 4
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED", ANIM_HERO_LEFT_HOOK_1, Combo(3, 21), Handedness(HANDED_NONE, HANDED_NONE));
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED", ANIM_HERO_RIGHT_UPPERCUT_1, Combo(4, 21), Handedness(HANDED_NONE, HANDED_NONE));
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED", ANIM_HERO_KICK_AFTER_RIGHT_PUNCH_1, Combo(5, 21), Handedness(HANDED_NONE, HANDED_NONE));
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED_AC90", ANIM_HERO_RIGHT_HOOK_90_1, Combo(21), Handedness(HANDED_NONE, HANDED_NONE));
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED_C90", ANIM_HERO_LEFT_HOOK_90_1, Combo(21), Handedness(HANDED_NONE, HANDED_NONE));
Animation.AddCombat("STRIKE_SHORT_FRONT_UNARMED_LOW", ANIM_HERO_KICK_1_1);
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: Fri, 14 March 2014 09:35] Report message to a moderator
|
|
|
|
|
Goto Forum:
Current Time: Sat Nov 23 18:07:51 PST 2024
Total time taken to generate the page: 0.12487 seconds
|