cc.adoc 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. == Character customization Introduction
  2. This is an introduction of Character customization tool of Atom framework
  3. <<quickstart#,quickstart>>
  4. === Ideas & Features
  5. ==== Ideas
  6. The initial idea of Character customization is: We (human) are soooo *similiar*!!
  7. The second idea: *resuable* and *composable*!
  8. . Cloths, skins, 3dmodels, animation.. are components of a whole, which made up character
  9. . The same ideas with component oriented architecture
  10. So to reduce a very big workload of data and assets need for a game with vast data of character (football players, etc…) More over we can support and encourage gamer to “build their own character! This is how we handle the situations, similiar scenario can happen in a MMOs.
  11. ==== Features
  12. * Customize parts of characters (body, face, weapon) in gender | race (male - female, human - animal…), various height, weight!
  13. * Customize cloths ( shirt, skirt) and their appearance (color, decal) . The cloth will fit its wearers!
  14. * Customize the face with animation, emotions ( eyes, nose, mouth ) with (smile, angry …) goto <<facial#,facial>>
  15. * As close as seen in current AAA games, open to MMORPG and social games.
  16. <<jme3/atomixtuts/kickgame/cc#,cc>>
  17. == AtomFacial framework - First look
  18. === Features
  19. . Template: Slot, Part are “place and “item just like textbox, choicebox in a form.
  20. . Composing: Provide Node base way to define Customable parts, material and assets for CC. A mesh can be stiched together again after composing.
  21. . Optimization : Compress texture space, mesh verticles
  22. . Transformation: Provide way to include mesh morph or bone transformation can be describle in Blender, Free form deformation to make fitable clothes.
  23. . Paint and Projection: support layered paint and decal projection (box, cylinder, sphere) in mesh surface, can be baked afterward.
  24. === Screenshots & Video
  25. image:youtube_fcf6grenolg[youtube_fcf6grenolg,with="",height=""]
  26. === Techniques
  27. *1) Blend shape* :
  28. *2) Bone* :
  29. *3) Free form deformation*:
  30. === Problems
  31. *1) Blend shape* :
  32. I saw that going to be added into the core soon. So exciting, that will help a tons, as soon as finish, I will make a patch to help import blend shape from blender too. One thing I still have to consider is: Can we make a type of Mesh that save a whole topology from Blender or other CAD and then become the base mesh for futher manipulate?
  33. *2) Bone* :
  34. I saw the current behavior of Bone, SkeletonControl are quite limited. I remember once @nehon explain that we don’t save the Length of the bone, but the trans/rot/scale just like a mat4… In fact, we can save more information in a Bone, and it will help tons when it come to a situation that someone want to manipulate the bone his self.
  35. _setUserControl_ didn’t sastify me cause I force me to patch the whole animation system just because I want to scale a bone up and down (ex: bigger nose for a character), and sync that with the existed animation. You can say it’s just my very own problem but …
  36. *3) Free form deformation*:
  37. For the need of cloth customization, I made my self a quick FFD system, in fact, it works extactly like a set of bones still have lengths and envelops on them. But in the end, once again I have to hack into the Mesh class and other things, just because a lot of private and final methods… It’s kind of sad that it should not be that hard for the engine users to add more features to the engine if the user want to.
  38. At the end, I just want what I want, that mean I just want things work if it’s really easy, silly me. So is there another way around to make those 2 simple things?
  39. 1) Scale/Translate/Rotate a bonebut preseved the current animation. ⇒ If yes, go for Characer custumization and facial…
  40. 2) The mesh class is the center of the system, we should provide a way for people to build in from scratch or preseved topology. May be another type of Mesh, like HalfEdge mesh. If the answer it’s No need for now just consider it once in the future (We are not just making game for the moment)!
  41. === Architecture
  42. === Components
  43. == Manuals
  44. Go Quick
  45. Go in depth
  46. === Basic video tutorials
  47. === In depth
  48. ==== Quickstart
  49. ==== Asset making
  50. ==== Programming
  51. == Researches & Papers
  52. This is a short list of Researches &amp; Papers
  53. I have a Character customization system which i've plan to be quite complete. I reviewed a fews character system including:
  54. link:http://www.youtube.com/watch?v=RO8GIoRLGa0[http://www.youtube.com/watch?v=RO8GIoRLGa0]
  55. * Perfect World
  56. * APB: Reloaded
  57. * Aion
  58. * Star Trek Online
  59. * Champions Online
  60. Some technical articles:
  61. * link:http://www.heroengine.com/heroengine/dynamic-character-systems/[http://www.heroengine.com/heroengine/dynamic-character-systems/]
  62. * link:http://hewiki.heroengine.com/wiki/Character_Design_and_Development[http://hewiki.heroengine.com/wiki/Character_Design_and_Development]
  63. * link:http://anticto.com/[http://anticto.com/]
  64. == Alternatives
  65. === Opensource
  66. === Commercial