Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Historica Fantasia devblog10 Level Design Prototype

1,035 views

Published on

Historica Fantasia devblog10 Level Design Prototype

Published in: Technology
  • Very nice tips on this. In case you need help on any kind of academic writing visit our website ⇒ HelpWriting.net ⇐ and place your order
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Historica Fantasia devblog10 Level Design Prototype

  1. 1. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 1 By Matumit Sombunjaroen V1.0 2017/12/21 Historica Fantasia Dev Blog Chapter10: Level Design Prototype
  2. 2. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 2 Level Design Introduction
  3. 3. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 3 Tools Used ProCore Bundle include various tools that could speed up Level Design ProBuilder Advance for Geometry ProGroups for quick Grouping QuickDecals for Decorative Works QuickEdit for Editing Meshes in Editor QuickBrush to populate Prefabs
  4. 4. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 4 Tools Used Archimatix is used mainly for Artificial Objects. World Creator to create Terrain //Buy it from the Asset store if you only need Unity Version. //They won’t refund the standalone version Unity Terrain has some serious issues with Shaders, Complete Terrain Shader should solve these issues.
  5. 5. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 5 Design Revision Multiple Areas Each Average Area is at least 80m in width or length Max 30Degree for Traversable Slope 10m Height Cut per Major Elevation Has Destructible Obstacles Walls need to be at least 5m wide to prevent Overshoot
  6. 6. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 6 Objectives Terrain Geometry Prototyping Multiple Area Placement Procedure Objects Placement Procedure
  7. 7. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 7 Terrain Geometry
  8. 8. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 8 Overall Map After going through much consideration, It is more convenient to build a Large Terrain, Then form Areas around it Use Terrain Former by adding its to Terrain Because Terrain cannot have Negative Height Value, We are using 0 for Sea or River Bed And 10 for Ground Floor
  9. 9. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 9 Open Field Use Set Height of 10 to bring everything to Ground Level Open Field must be surround by other features that mark its boundary This is to prevent Units reaching the Edge and feel weird when finding Empty Ground
  10. 10. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 10 High Ground Max Slope got changed to 45, Because it’s just easier to design The Maximum Height for Ground is 30 (20 above Ground) Slopes need to have clear Cliff Cut
  11. 11. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 11 Internal Area Caves or other Major Interior Will be surround by the wall that reach the top ground, Or at least placing a Collider to block visibility from outside Entry Points will be either Small Openings or Warp points
  12. 12. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 12 Terrain Geometry Take-2 World Creator
  13. 13. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 13 Initialize Setup Call World Creator Window Editor and press New to create new Terrain Set overall Sizes accordingly Height should be 40 by maximum
  14. 14. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 14 Blockout Height Paint Area Mask for Ground Floor, Add Flatten Terrain Filter Use Flatten Anchor to push it to appropriate Height Block out 4 Major Elevation Height 00 – Flatten Anchor 0 10 – Flatten Anchor 0.25 20 – Flatten Anchor 0.5 30 – Flatten Anchor 0.75 30 20 10 30 00
  15. 15. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 15 Refine other parts Paint Area Mask for Mountain and Erosion Filters Mountain should be use to carve out inaccessible Areas Adjust accordingly. Use Path to smooth out Roads to Accessible Areas
  16. 16. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 16 Terrain Texture Put Ground Base Texture at the Bottom, Then add Cliff Texture, with minimum Terrain Slope adjusted to override the Slope. Use Cavity to add Depth & Highlight Use Terrain Height to add Height Gradient
  17. 17. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 17 Customized Shader Forge Shader Unity Shader use Splatter map to blend 4 textures together Name Texture Slots, Control, Splat0, …. Splat3 And the appropriate Textures will be referenced automatically. Add shading passes accordingly
  18. 18. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 18 Settings PlaceHolder
  19. 19. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 19 Settings PlaceHolder
  20. 20. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 20 Objects
  21. 21. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 21 Procore QuickBrush QuickBrush will be activated as long as the Window is up Drag Prefab to paint Ctrl+ Left Click to place object Settings can be save and reuse
  22. 22. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 22 Objects to be replace with Houdini later
  23. 23. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 23 Plan – Movement Tutorial Stage 1. Pickup Warp Item And use it to warp to nearest Base (Item usage Mechanic) (Warp to Base Mechanic) 2. Rendezvous with PathFinder (Form Squad at Base Mechanic) (PathFinder increase Movement Range) 0. Impassable Blockade 3. Activate TraWell (Near Water Warp Locations) (TraWell Mechanic) 4. Thrown Boulder destroy Bridge (Siege Weaponry Mechanic) (Building Destruction Mechanic) 5. Activate Magical Bridge (Gimmick Activation Mechanic) 6. Defeat BOSS!!! (Stage Clear Mechanic)
  24. 24. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 24 Archimatix Features to note Programmable Handle Han_x Save and Reuse Modular Variations from a Single Asset Placeholder Assets are used for now In Final Production => Create Complete Buildings by adjusting Handle only
  25. 25. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 25 Base (Place holding Asset) Village, Town, Hospital, Castle, etc Bases represent Key strategic points that each side must take over. Each Base will provide different Units to recruit. Each Base must have an adjacent Key Building, Units will come out of the Building once recruited. If the Key Building is destroyed, Unit cannot be recruit. Raise & Lower appropriate Faction Color Flag when conquered. Base Area will have different sizes. To claim -> Have at least an Ally Unit && No Enemy Unit in the Area Building production should be automated by Adjusting Archimatix Volumetric size handle.
  26. 26. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 26 TraWell (Place holding Asset) TraWell Should be place directly above a body of Water. Platform should be place underneath <= Work on this later Add some kind of FX To increase visibility later Customized Archimatix Handles Radius, Thickness, Height, Water Level Can be change on the fly
  27. 27. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 27 TraWell Platform (Place holding Asset) Archimatix Shape Control can be created manually Syntax Ref: http://www.archimatix.com/manual/archimatix-turtle-script-api Create Several Shapes & Boolean Merge to get a final Result Since they won’t be use in actual Gameplay, && they will be Stamped in the end, It is OK to make complex stuffs. TraWell can be activated when the Squad is standing on a central Area We should make something visual to represent this
  28. 28. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 28 TraWell Take2 Create 2 poles and sparkling effects to link 2 TraWells together Warp Area Once the Squad is placed on top, Squads can warp to linked TraWell Via Action Command
  29. 29. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 29 Bridge A Bridge is made up of 3 Parts 2 Ends & 1 Middle For the Prototype, We will only hide it The Middle part can be destroyed with Siege Attacks
  30. 30. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 30 Magical Bridge Magical Bridge can be activate when a Unit is standing on a Platform We are using a straight Bridge for now The Final Product should be a Curve Bridge
  31. 31. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 31 Stair Slopes Final Slope shall be made with Houdini The Slope should be around 30degree from ground And must not be greater than 45degree
  32. 32. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 32 Buildings & Trees & Obstacles Final version shall be made with Houdini Fences, Walls, etc, They will block line of Sight, Block Path, And can be destroy with Siege Attack
  33. 33. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 33 Bushes Final version shall be made with Houdini A group of Bush is roughly 2m high And will hide Units when they are inside They can be burn, and will spread fire to surrounding area after a turn Once completely burned, They will disappear
  34. 34. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 34 1st Draft
  35. 35. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 35 Path-finding Take2 A* Path Finding Project
  36. 36. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 36 Issues Unfortunately, APEX Path has this really big issues with cliffs. After working around for sometime, I couldn’t fix it. As such, we decided to drop it for alternative solution. Because Formation is no longer an issue, We chose to go with A*Path Finding Project Pro By Aron Granberg
  37. 37. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 37 How to Setup Add Astar Path component, and add a new Graph I chose Recast Graph for this Snap bounds to Scene will automatically set this up to cover the stage In Layer Mask, Make sure that objects are in appropriate Layers And Set those Layers to true
  38. 38. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 38 Result WALLAH! It even automatically do Multiple Floors!!!
  39. 39. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 39 Setup Notes Because Objects such as Buildings, trees, etc Are destructible They must be excluded from scan, Otherwise, the mesh underneath them will not be generated Add NavMeshCut to obstacles instead They will update during Runtime
  40. 40. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 40 Dynamic Obstacle - Navmesh Cutting Add only one Tile Handler Helper Add Navmesh Cut to an Object Set the data accordingly This will cut a hole inside a graph
  41. 41. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 41 Dynamic Path - Bridges Add only one Recast Tile Update Handler This will coordinate the Updates from various Objects Add Graph Update Scene to a dynamic path Object Set Modify Walkability and call Apply() from another Script **NOTE** THIS CANNOT BE USE TO GENERATE NEW GRAPH ONLY EDITING EXISTING ONE
  42. 42. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 42 Dynamic Path - Navmesh Cutting Add NavmeshCut to Mid Bridges instead. Rect Size => (1,1,1) Height => Set to cover entire Object Use Rotation and Scale => True Cuts Added Geom => False Enable/Disable Components to De/activate path In final ver, replace disable mesh with Mesh animation
  43. 43. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 43 Set Tag – Flaming Area In A* Setting, create Fire Area Tag In Unit’s Seeker, set Tag Penalty for the Area Value difference of around 10000 is good Add the Followings GraphUpdateScene <= Set Modify Tag NavMeshCut <= Set to isDual Collider <= Must be a bit smaller than NavMeshCut Tag will be modified when GraphUpdateScene is Apply()
  44. 44. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 44 Warp Portals Add Link2 to a Transform, Then add another Transform to End <= Turn off Component to deactivate Link **Link1 will not update in Realtime** Link the 2 TraWells **Immediate Jump will not be made** This has to be done in movement control
  45. 45. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 45 Warp Distance Calculation AstarPath.active.GetNearest(pos); Will return Node info of that position Portals are created as PointNode Check to see if the wayPoint is a PointNode pathInterpolator.remainingDistance Included Portal`s vertical distance as well Calculate distances between Portals, To get actual distance
  46. 46. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 46 Setup Unit Seeker is the main PathFinding Component Add a Custom Component To control Unit Funnel Modifier Will smooth out curves
  47. 47. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 47 Programming Use Seeker.StartPath() to generate Path use OnPathComplete callback To get the path once it’s got generated Vector3 arrays of each waypoints’ Positions Are stored in path.vectorPath Use it to program Movement Set PathInterpolator in OnPathComplete It contains several Data, such as remaining Distance
  48. 48. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 48 Result In Area with Multiple Floors, The Seeker will target the nearest floor from referenced Point Recast Graph treated the center of each grid as the waypoint Funnel Modifier will fix this out Smooth Modifier can be added on top to provided smoother curve
  49. 49. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 49 RVO Local Avoidance Add One RVONavMesh & RVOSimulator These two will do managements of RVO Agents Use RVOController.SetTarget(); & RVOController.CalculateMovementData(); To obtain desirable Movement Delta **The Controller does not move the Unit, A Separate Control code is needed** Add RVO Controller to Units
  50. 50. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 50 Basic Movement Control Rotate Unit toward moving direction Add CharacterController to Unit Apply Gravity to Movement Delta Use CharacterController.Move()
  51. 51. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 51 Fixing Movement Stutter Each time the Unit did a Repath It will stutter for a frame To Fix this issue, Calculating Delta is separated from Movement The Unit will continue moving In the same direction, While new Delta is being calculated Waypoint 0 == Unit’s original position Movement Vector of zero caused the stutter.
  52. 52. @OtakuEatMama : @HistoricaFantasiaDevBlog : Zenneth@zodiac-alliance.com 52 Next Slide, Squad Formation

×