*****************************************************************************
*                                                                           *
*                       BodyWarp - BETA v0.4  README.txt                    *
*                                                                           *
*****************************************************************************
*                                                                           *
*                      A Product of Spanki's Skin Shack                     *
*                                                                           *
*                       Copyright (c) 2000 Keith Young                      *
*                                                                           *
*                       web: http://www.bodywarp.com                        *
*                    e-mail: spanki@bodywarp.com                            *
*                                                                           *
*****************************************************************************

       *** BodyWarp v0.4 is BETA SOFTWARE - USE AT YOUR OWN RISK!! ***
                        (see Disclaimer section below)


Revision History
=================

v0.4
-----------------------------

    ************************* IMPORTANT NOTE *********************************
    
    This version is being shipped WITHOUT an updated Manual.  As I write this,
    I am still in the process of converting the manual to HTML and updating it
    with all the new information.  However, some Real Life issues have come up
    that will be taking up a lot of my time from here on out, so I decided to
    go ahead and distribute this version without a manual.
      
    As I am able to update it, the current and/or in-progress manual will be
    found from the BodyWarp Page on the web-site, .

    To get Support for this version (all versions, actually), please use follow
    the steps below, in the order listed:
    
    0. Before you do anything else... as I mentioned, it may intially take me
       a few days to get some new information posted, so please be patient and
       just take some time to play around with it for a while... it might start
       making sense :).

    1. Check the BodyWarp Web Page for the latest Manuals/FAQ/User-Guides and
       Tutorials.  (click on the BodyWarp link at:http://www.bodywarp.com)
    
    2. If you can't find your answers there, please check the BodyWarp Support
       Fourms (http://pub11.ezboard.com/bspankisforums).  Someone may have
       already asked and/or answered your question.
    
    3. If you didn't find your answer(s) there, Ask your questions THERE. I
       check there often and will answer questions there as soon as I am able
       (ie. just as fast if not faster than you'd get a response from me in
       e-mail).
    
    4. As a last resort, or if you don't want your question public for some
       reason, you can send it to: support@bodywarp.com.
    
    ...I really don't mind helping out with anything I can, but it gets
    frustrating at times having to answer some question that's already been
    explained in the manual/readme/forum/whatever.
    
    If you didn't understand what I wrote the first time, then at least let me
    know that you've read it, otherwise my relpy may just be a pointer to where
    it's explained.
    
    Additionally, the forums have many advantages to an e-mail exchange...
    
    - Since everyone can see the questions and answers, your question may
      already be answered there.
      
    - This may sound strange but, I spend most of my time creating the
      application rather than 'using' it, so there may be other forum members
      who can answer questions (from a user-perspective) better than I can.
      
    - Similar to the above, I'm not always available, but some other user may
      know the answer and post a reply.
    
    Thanks,
            - Spanki

    ********************** END OF IMPORTANT NOTE *****************************
      


New/Changed Features in BETA v0.4:
----------------------------------


- Body Mesh Orientation/Display finally Fixed! The arms are finally down by the
  side - as intended. (thanks to Clive Pygott for providing the rotation
  information)

- Child bones support added. You can now toggle between viewing your mesh as an
  adult or child.

- Rendering options (wireframe/solid, flat/smooth, lit/unlit, etc.) are now on
  a per-mesh basis instead of a scene basis.

- Face-Splitting. This was a bear to implement and is still not 100% right, but
  you can now sub-divide faces of a mesh. It splits every polygon that is
  entirely contained within the (each) currently selected body part at least
  once, adding new vertices and filling in new faces.

- New 'Reload Texture' feature added (at the request of BriAnna over at The
  Well Dressed Sim). You can now just hit <Ctrl>+R to re-load the texture on
  the currently selected mesh.

- You can now Rotate and Translate (move) body segments around, in addition to
  Scaling them. NOTE: Rotations/Translations are 'mirrored' on opposite sides of
  the torso.

- User-modifiable Secondary Texture (who comes up with this stuff?). Anyway,
  When you 'Toggle Texture On/Off', I was actually swapping out the texture for
  a 'white' bitmap to simulate 'no texture'. This bitmap is now loaded from
  disk (named 'skinblank.bmp', in the appication's directory), so you can
  change the image to something else if you want (maybe you prefer pink instead
  of white? <shrug>, I just give you the options *g*).

- Screen-Capture to Clipboard. You can now hit <Ctrl>+C and copy the current
  viewing area to the clipboard.

- Screen-Capture to Disk. Same as above, but use <Ctrl>+D to save a .bmp file
  to disk.

- Copy UV Map Template. This option allows you to create a texture-mapping
  template and save it either to the clipboard or disk as a .bmp file. When you
  select either option, a dialog will open to let you set the size and colors
  you want to use.
  
- Load/Save Warp File. A Warp file contains all current Rotation, Scaling and
  Translation changes you've made to a mesh.  These can be saved and the later
  loaded onto new meshes to apply the same changes.
  
- Link Bone Pairs. A new feature that lets you operate on 'pairs' of bones at
  the same time.  A bone pair being bones on opposite sides of the torso. So
  you can, for example, scale the L_ARM1 and R_ARM1 at the same time.
  
- New 'Pose Mode'.  Normally, as you rotate bones/body parts, the bones that
  are connected to (or children of) that bone do not rotate along with it. If
  you want to see how your changes will be interpreted by animations in the
  game then you can enable Pose Mode and rotate the bones around (along with
  their children bones).  Note that Rotations applied while in Pose Mode are
  NOT saved to the .skn files.

- Camera/View Rotation.  To rotate a mesh, LEFT-CLICK on it and drag, as usual.
  If you want to rotate the camera around the mesh instead, hold down the CTRL
  key and LEFT-CLICK/Drag anywhere on the screen that is NOT on a mesh.
  
- Camera/View Positioning. You can still use the cursor keys to move the camera,
  but you can now also hold down the CTRL key and RIGHT-CLICK/Drag anywhere on
  the screen that is NOT on a mesh.

- Mouse Wheel support. Rolling the mouse-wheel forward/backward will Zoom the
  Camera/View in and out.  Holding the CTRL/SHIFT keys while rolling it will
  Rotate/Translate the selected bone(s).

- Hot-key changes.  Many hot-keys and/or menu placements changed in this version
  (I just can't seem to make up my mind <g>).  I'm still not completely pleased
  with them, but here is the CURRENT list of keys:
  
  
    'Q'         - Lock X Scale toggle
    'W'         - Lock Y Scale toggle
    'E'         - Lock Z Scale toggle
    'T'         - Zoom view In
    'R'         - Zoom view Out
    '<Up>'      - Move view Up
    '<Down>'    - Move view Down
    '<Left>'    - Move View uhm.. Left.
    '<Right>'   - Hmmm...
    'X'         - Move selected object Away from the [default] camera (into screen).
    'Z'         - Move selected object Towards the [default] camera (out of screen).
    '<Insert>   - Rotate selected bone(s) inwards.
    '<Delete>   - Rotate selected bone(s) outwards.
    '<Home>'    - Scale selected bone(s) down.
    '<End>'     - Scale selected bone(s) up.
    '<Page Up>  - Translate (move) selected bone(s) inwards.
    '<Page Down>- Translate (move) selected bone(s) outwards.

...check the menus for hot-keys not listed here.

- Other stuff I've forgotten.  It's been a while, so I may have changed a few
  things that I've long-since forgotten about <shrug>. 


v0.3
-----------------------------
- Toes and Arms 'fixed'. The arms now point straight Out instead of Up.  This
  was a pain to get working... I may shoot for Down next, but that will be even
  harder, using the method I am currently (which is not correct, but it serves
  the purpose).  The Toes no longer curl down (yay!).

- When I fixed/changed the above, it really started bugging me that I had all
  normals rotated around the wrong way (normals are what determines the way
  light and shadows work on a mesh)... so I fixed that too, finally.  It's now
  MUCH easier to get lights working correctly, with fewer of them.

- Just after posting the previous version (v0.2), I took some time to actually
  'use' the tool for a while (been stuck programming it and updating docs and
  web pages, etc).
  
  Anyway, I realized that the method I was using for scaling - which was a
  hold-over from the previous version - was not right. With the new version,
  it's a lot more WYSIWYG relative to what you see in SimShow or the game. This
  should cut down on the number of revisions needed to get what you want (to
  the extent that you 'can' get what you want with simple scaling of parts).
  
  BodyWarp's display of a [scaled] mesh is still not 100% acurate, due to the
  method I currently use to position the body parts.  I know how/why it's not
  correct, I just hadn't come up with the right math to fix it yet :)
  
  (technically, I'm doing [not so] simple compound translations and reflections
  and I need to be doing compound translations coupled with quaternion
  rotations)

- Added hot-keys for the following:
    'Q' - Lock X Scale toggle
    'W' - Lock Y Scale toggle
    'E' - Lock Z Scale toggle
    'S' - Scale Up
    'D' - Scale Down
    
  ...this can free up the mouse (once you get used to it) for doing mesh
  rotating and body-part selection.

- Added the missing tool-tip strings for the Scale Lock buttons, and various
  other little house-keeping changes.

- I've added the data I need to support scaling child meshes, but I hadn't
  implemented an interface for that yet, so that will have to wait for another
  revision.

- Other stuff I've forgotten.

- Again, no major bugs were found or fixed (the items listed above are all
  simple 'display anomolies' <g>).


v0.2
-----------------------------

- Name changed from working title of SkinView to [hopefully permanent title of]
  'BodyWarp'

- You can now scale each axis (X/Y/Z) independently. See BodyWarp_Manual.txt
  for details.

- In addition to scaling an entire body, you can now select body parts to scale
  individually.

- The 'Scale X Y Z:' readout at the bottom is per body part (a scale value for
  each part is tracked separately)

- Selected parts are now vertex color-coded, making it easy to see which
  vertices belong to which body parts (works great in wireframe mode). See
  BodyWarp_Manual.txt for details.

- You can now load a new texture for the selected mesh.

- You can Hide the texture (toggle it on/off).. this is useful for seeing the
  vertex coloring when scaling.

- '.skn' is now appended to meshes saved out if you didn't already enter that
  as part of the filename (details, details...).

- Of course these changes only really make sense if YOU CAN NOW SAVE BODY
  MESHES (and yes, you can). See BodyWarp_Manual.txt for details.

- .CMX files are now created along with the .SKN files.. there is an option to
  disable this.  ** IMPORTANT!! read BodyWarp_Manual.txt for information about
  .CMX file creation. **

- various code clean-up (no major bugs were found or fixed).

- ** in case I hadn't mentioned it yet, please read BodyWarp_Manual.txt for
  [sometimes important] details of these changes.  I will not take
  responsibility for damaged or lost files. **
  
  (You can search for 'v0.2' to find the relevent sections.)


v0.1  - Initial BETA Release
-----------------------------
There is not much information in this section at this time.  I will use this
file to point out changes between revisions as they are released (assuming any
revisions are ever released).


Description
============

BodyWarp was designed as a viewer for 'Skins' used in Maxis' Game - "The SIMs".


Disclaimer
============
As it says at the top, THIS IS BETA SOFTWARE - USE AT YOUR OWN RISK.  While I
have made all efforts to ensure that the program behaves - on MY system - and
has no obvious or serious bugs, this is no (and I make no) guarantee that it
will work without problems on YOUR system.  It is being provided as-is, with
no warranties or guarantees whatsoever, caveat emptor, etc.

Also note that this program is being developed on my own time and I am
distributing it free of charge... I make no promises to ever release another
version (although I 'plan' to).  Take that into consideration when you send me
your wish-list.. you get what you pay for :).


Distribution/License
=====================

BodyWarp is being distributed as 'Freeware'.  This does NOT mean that it is in
the public domain.  BodyWarp is Copyright 2000 - Keith Young - All Rights
Reserved.

It may be freely distributed provided all files of the original archive remain
intact and un-altered and no charge is required or accepted for it's
distribution.  You have the right to use this program for personal, home use
(noncommercial).  yada, yada, yada... (if you have any questions about usage or
distribution, please contact Keith Young at: cyclone@cfw.com).  Better yet,
offer me a job :) (serious offers will be seriously considered).


System Requirements
====================

* DirectX v5.0 or later
* 3D Accelerated Video Card
* 800x600 resolution
* PII 266 or better [currently only tested on a PIII 500]

BodyWarp is written using Direct3D and expects that you have version 5.0 or
later in order to run the program.  I assume that it might work (dog-slow) on
a machine with no 3D Accelerated video card, but it has not been tested in
that configuration.


Installation
=============

Create a directory and put the contents of the archive in that directory.
BodyWarp currently does not use any external DLLs or .ini files, but it does
expect 3 data files to be in the same directory...

sphere2.x       - Direct3D mesh file (used to depict light sources)
camera.x        -    ""                            ""
skinview.bmp    - Default Backdrop Bitmap [see FAQ section below].
skinblank.bmp   - Texture used for 'no texture'.


I've also included a sample head mesh and texture(s) in the archive, so you'll
have something to play around with.


Operating Instructions
=======================

..are found in the manual :).

You will find fairly complete documentation in the BodyWarp_Manual.txt file
(along with a tutorial). I spent hours writing that file, so do me a favor and
before you send me an e-mail asking how to do something, please look there first.
Thanks.

I'll try to get a FAQ or other support material on the web site as I have the
time to work on that but for now, I'll list a few keyboard short-cuts here
because I know that some folks like to just wing it :).


Interface/Keyboard
==================

There are several hot-keys defined that may or may not be listed in the menus,
but perform the same functions as defined above [in the manual, that is]. Here
is a list...

    'Q'         - Lock X Scale toggle
    'W'         - Lock Y Scale toggle
    'E'         - Lock Z Scale toggle
    'T'         - Zoom view In
    'R'         - Zoom view Out
    '<Up>'      - Move view Up
    '<Down>'    - Move view Down
    '<Left>'    - Move View uhm.. Left.
    '<Right>'   - Hmmm...
    'X'         - Move selected object Away from the [default] camera (into screen).
    'Z'         - Move selected object Towards the [default] camera (out of screen).
    '<Insert>   - Rotate selected bone(s) inwards.
    '<Delete>   - Rotate selected bone(s) outwards.
    '<Home>'    - Scale selected bone(s) down.
    '<End>'     - Scale selected bone(s) up.
    '<Page Up>  - Translate (move) selected bone(s) inwards.
    '<Page Down>- Translate (move) selected bone(s) outwards.

...check the menus for hot-keys not listed here.


Interface/Mouse
===============

Actually manipulating a mesh with the mouse is an acquired art form.  Dragging
an object around is pretty straight forward, but rotating it takes some
practice and getting used to.  I'm not crazy about this method of rotating,
but it's all I've got for now...

'Left Click on object'              - Select an object.
'Right Click on object'             - Also selects object.
'Left Click and drag on object'     - Rotates the object.
'Right Click and drag on object'    - Drags the object.
'CTRL + Left Click and drag'        - Rotates Camera/View.
'CTRL + Right Click and drag'       - Moves the Camera/View.
'Mouse Wheel'                       - Zooms Camera/View In/Out.



[see: BodyWarp_Manual.txt for more detailed information]

-=== END OF FILE ===-

