Difference between revisions of "Korman:Getting Started"

m (Collision)
(Undo revision 7987 by Zeke365 (talk))
 
(28 intermediate revisions by 5 users not shown)
Line 3: Line 3:
  
 
This tutorial will familiarize you with basic functions to build an Age in '''Korman''' by creating a simple Age from scratch.  Be sure to follow the [[Korman:Installation|installation instructions]] to properly set up Blender and Korman.
 
This tutorial will familiarize you with basic functions to build an Age in '''Korman''' by creating a simple Age from scratch.  Be sure to follow the [[Korman:Installation|installation instructions]] to properly set up Blender and Korman.
 +
 +
<blockquote>'''NOTE: Korman's tutorials assume you already have a knowledge of Blender and its basic workings and functions. There are many off-site tutorials that can be searched for online.'''</blockquote>
  
  
Line 9: Line 11:
 
The first thing you want to do is get the basic information for your Age.  If you're intending to release your Age publicly, this includes finding and reserving an unused [[Uru:CC_Sequence_Prefixes|sequence prefix]].  Follow the directions at that link to get a prefix and avoid possible conflicts with other fan Ages.
 
The first thing you want to do is get the basic information for your Age.  If you're intending to release your Age publicly, this includes finding and reserving an unused [[Uru:CC_Sequence_Prefixes|sequence prefix]].  Follow the directions at that link to get a prefix and avoid possible conflicts with other fan Ages.
  
Switch one of your windows in Blender to '''Properties'''.  Next, click on the '''World''' button.  Under the '''Plasma Age''' panel, put your reserved sequence number under '''Age Settings:ID'''.  While there, be sure to check '''Age Global SDL''' and '''Use Textures Page'''.
+
===Age Options===
  
[[file:KorStart01.jpg]]
+
[[file:KorStart01.jpg|300px|right]]
 +
 
 +
Switch one of your windows in Blender to '''Properties'''.  Next, click on the '''World''' button.  Under the '''Plasma Age''' panel, put your reserved sequence number under '''Age Settings:ID'''.
  
 
In this same panel, you can also set the length of your Age's day in hours for a day/night cycle.
 
In this same panel, you can also set the length of your Age's day in hours for a day/night cycle.
  
This is also where you can add more "pages" to your Age.  This is good for organizational purposes.  You'll notice this is done for the larger Cyan Ages such as Ae'gura (city) or Gahreesen (garrison).  If nothing is here, everything will be exported to a default page.
+
The '''Plasma Games''' will choose which version of the game to which you'd like to export. Each install of URU can be set up in Korman's [[Korman:Installation#Choosing_Game_and_Python_Installations|user preferences]].
 +
 
 +
Next, add your Age's filename (preferably as one word) into the box just below your Age ID (it'll be red until you enter something). Once that's done, that panel will be all set for [[Korman:Exporting#The_Easy_Method|exporting]].
 +
 
 +
<blockquote>NOTE: It's recommended not use any special characters or spaces in the file name. Just letters and numbers usually works best.</blockquote>
 +
 
 +
The '''Plasma Age''' panel is where you can add more "pages" to your Age.  This is good for organizational purposes with larger and more complex Ages.  You'll notice this is done for Cyan Ages such as Ae'gura (city) or Gahreesen (garrison).  If nothing is here, everything will be exported to a default page.
 +
 
 +
To add a new page, simply press the '''plus''' symbol next to the window under the '''Plasma Age''' panel.
 +
 
 +
* '''Page Flags''': options for the loading of a particular page.
 +
** '''Auto Load''': loads the page/PRP upon Linking in. Checked by default.
 +
** '''Local Only''': the page should not synchronize with the server.
 +
* '''Page Info''': Details for the page itself.
 +
** The field just below this is where you can change the name of the page/PRP.
 +
** '''ID''': the ID number of the page. By default, the pages will go in sequence as you add them.
 +
** '''Export Versions''': choose which versions of URU for which the PRP will export. All three options are checked by default.
 +
 
 +
You can add as many pages/PRPs as you like. '''If you change some ID numbers, be sure no two numbers are the same across all pages!''' Again, just letters and numbers work best; no spaces or special characters.
 +
 
 +
Under '''Export Settings''', there are two options:
 +
* '''Display Verbose Log''': checking this displays a much more detailed account of what is exporting, both in the console and in the text file log.
 +
* '''Display Log Console''': checking this will cause the console window to appear when you export so you can watch its progress.
 +
 
 +
'''Plasma Settings'''
 +
* '''Age Global SDL''': Choose this if you are planning on exporting an SDL file, which can be created in the '''Text Window''' (much like how AlcScript used to be done).
 +
* '''Use Texture Page''': Choose if you'd like textures to be displayed in your Age (unchecking this will only show the solid mesh).
 +
 
 +
===More Options===
 +
 
 +
'''Environment Maps''': While Korman can determine which environment maps can be handled by which URU installation, if you'd like to set them all to a certain type, click this drop down and choose either:
 +
 
 +
* '''Export Supported EnvMaps''': Needed for dynamic camera maps.
 +
* '''Downgrade Planar EnvMaps''': Downgrade all environment maps to less accurate cube environment maps.
 +
* '''Don't Export EnvMaps''': Turn off all EnvMaps. Helps with performance in some cases.
 +
 
 +
'''Static Lighting''': This will set all lit objects with a '''Lighting Modifier''' to a certain type:
 +
 
 +
* '''Bake Lighting''': The default option. This will bake all lighting to objects according to your specifications.
 +
* '''Force Lightmap Bake''': This will apply a lightmap to all objects with a modifier (more accurate lighting).
 +
* '''Force Vertex Color Bake''': Less accurate lighting, but this allows faster export and better Age performance.
 +
* '''Don't Bake Lighting''': No lighting will bake and your Age will export fully bright. Good for examining any texture/uv problems, etc.
 +
 
 +
'''Python''': This will tell Korman how to handle any custom Python scripts you've set to export along with the Age:
 +
 
 +
* '''Pack All Scripts''': This will pack any script that's been added into your blend and exist in your '''Text Editor''' with PY extensions. This is not recommended if you've used Cyan scripts as those are already included in the game.
 +
* '''Pack Requested Scripts''': This is the preferred option. This will export...or in the case of offline URU, pack...any scripts in the Text Editor that have had '''Export''' checked next to their filename.
 +
* '''Pack Nothing''': None of your custom scripts will be exported.
 +
 
 +
'''Texture Cache''': Korman uses a cache to store previously exported textures to speed up future exports, and this drop down menu can manage that cache:
 +
 
 +
* '''Rebuild Texture Cache''': If, for some reason, there are problems with textures after the first export, you can use this to refresh the texture cache.
 +
* '''Use Texture Cache''': The usual option to use the existing cache. Speeds up future exports.
 +
* '''Don't Use Texture Cache''': This will cause the cache to neither be used or updated. Textures will export each time, but this will slow down exports.
  
To add a new page, simply press the '''plus''' symbol next to the window under the '''Plasma Age''' panel.  You can rename it as well (letters and numbers ONLY, '''NO spaces or special characters''').
 
  
 
Under the '''Plasma Environment''' settings, you can set your fog color and density.  If you'd rather have no fog, click on '''Fog Type''', the click '''None'''.
 
Under the '''Plasma Environment''' settings, you can set your fog color and density.  If you'd rather have no fog, click on '''Fog Type''', the click '''None'''.
Line 47: Line 103:
 
To add collision, click the '''Add Modifier''' button under '''Plasma Modifiers''' and click '''Collision'''.   
 
To add collision, click the '''Add Modifier''' button under '''Plasma Modifiers''' and click '''Collision'''.   
  
For the '''Bounds Type''', it's best to use '''Triangle Mesh''' for the complicated meshes and '''Convex Hull''' for the more simple shapes.
+
For the '''Bounds Type''', it's best to use '''Triangle Mesh''' for the complicated meshes or flat planes and '''Convex Hull''' for the more simple shapes.
  
 
[[file:KorStart04.jpg]]
 
[[file:KorStart04.jpg]]
  
'''Blocks Avatars''' will keep any avatars from passing through the mesh.
+
'''Blocks Avatars''' will keep any avatars (and kickables) from passing through the mesh.
  
 
'''Blocks Camera''' will keep the third person camera from passing through.   
 
'''Blocks Camera''' will keep the third person camera from passing through.   
  
'''Terrain''' will keep the avatar from "sliding" around on the surface, so you can deselect this if you'd like to have a "walking/running on ice" effect.
+
'''Terrain''' will keep the avatar from "sliding" around on the surface, so you can deselect this if you'd like to have a "walking/running on ice" effect - but only in CC: tPotS.  
 +
 
 +
<blockquote>NOTE: : "sliding" is not possible in MOULa (due to Moula's PhysX).</blockquote>
  
 
'''Dynamic''' is used for kickables.
 
'''Dynamic''' is used for kickables.
 +
* '''Start Asleep''': The kickable object is stationary until moved by the avatar or another object.
 +
* '''Mass''': The weight of the kickable object in pounds (lbs).
  
 
<blockquote>NOTE: Flat planes cannot have Convex Hull collision or URU will crash.</blockquote>
 
<blockquote>NOTE: Flat planes cannot have Convex Hull collision or URU will crash.</blockquote>
Line 99: Line 159:
 
If you'd prefer the avatar not grab for the Relto book when it falls, you can uncheck '''Play Animation'''.
 
If you'd prefer the avatar not grab for the Relto book when it falls, you can uncheck '''Play Animation'''.
  
 +
<blockquote>'''NOTE''': Panic Regions may not work as expected in Path of the Shell in Korman (0.09 or lower), resulting in the avatar panic linking immediately upon linking into the age. Applying the location transform to the region may correct this issue.</blockquote>
  
 
===Lighting===
 
===Lighting===
Line 120: Line 181:
 
Under the '''Groups''' panel, click on the + next to '''Add to Group''' to create a new group.  Name it something you'll remember in the form below.  Select each lamp you want included in the group, click the '''Add to Group''' button and select your light group.  All the lights in the group should now have a green outline in the 3D window.
 
Under the '''Groups''' panel, click on the + next to '''Add to Group''' to create a new group.  Name it something you'll remember in the form below.  Select each lamp you want included in the group, click the '''Add to Group''' button and select your light group.  All the lights in the group should now have a green outline in the 3D window.
  
Next, select your ground plane.  Go back to the '''Physics''' panel and click '''Add Modifier->Lightmap'''.
+
Next, select your ground plane.  Go back to the '''Physics''' panel and click '''Add Modifier->Bake Lighting'''.
  
 
[[file:KorStart08.jpg]]
 
[[file:KorStart08.jpg]]
  
In this new panel, you can select the size of the lightmap image. For larger and/or more complex objects, it's best to choose a larger size (1024px).
+
In this new panel, you can adjust a few options.
 +
 
 +
'''Bake To''' determines if the lighting will be baked into a texture ('''Lightmap Texture''') or into the Col value ('''Vertex Colors'''). For this instance, we will choose '''Lightmap'''.
 +
 
 +
'''Quality''': This determines the size of the texture image to use. The bigger, the more detailed, but big textures also expand the file size of your texture PRP. You can use anywhere from 128 pixels to 2048 pixels. The average is usually '''512px''', so we'll use that.
 +
 
 +
'''Bake Pass''' should be left blank for now. You can choose specific bake passes determined in the '''Render Layer''' panel, but we'll be fine for now.
 +
 
 +
'''Light Group''' is where you can select our light group from earlier.
 +
 
 +
You can leave your '''UV Texture''' blank.  Otherwise, if you already have a Lightmap UV map, you can choose that instead.
 +
 
 +
Once everything is set, to see if the lightmap will turn out the way you like, you can click '''Preview Lightmap'''.  If it doesn't look right, you can change the settings and UV mapping.
 +
 
 +
 
 +
For more on lighting in Korman, click on the [[Korman:Lighting|Lighting]] tutorial.
 +
 
 +
==More Modifiers==
  
Note the '''Active Render Layers''' section.  Here, you can choose what objects on which layers will affect the lightmap.
+
There are many more modifiers that provide a multitude of functions in URU.
  
Next, choose your Light Group from earlier (if you don't, only non-Plasma Object lights will project on to the surface).
+
For a full list of Plasma modifiers and what they do for your Age, click on the [[Korman:Plasma Modifiers|modifiers]] tutorial.
  
You can leave your UV Texture blank.  Otherwise, if you already have a Lightmap UV map, you can choose that instead.
+
==Wiring Your Age==
  
To see if the lightmap will turn out the way you like, you can click '''Preview Lightmap'''. If it doesn't look right, you can change the settings and UV mapping.
+
Korman does away with AlcScript in favor of Blender's [[Korman:Logic_Nodes|node system]]. In that tutorial, you can learn what each node does and how they interconnect, plus see a few basic examples of node trees.
  
 
==Exporting==
 
==Exporting==

Latest revision as of 18:07, 13 November 2024

Disambig gray.png

This is a tutorial page.Versions available: PyPRP; 3ds Max; Korman.
 


This tutorial will familiarize you with basic functions to build an Age in Korman by creating a simple Age from scratch. Be sure to follow the installation instructions to properly set up Blender and Korman.

NOTE: Korman's tutorials assume you already have a knowledge of Blender and its basic workings and functions. There are many off-site tutorials that can be searched for online.


Setting Up Your Age

The first thing you want to do is get the basic information for your Age. If you're intending to release your Age publicly, this includes finding and reserving an unused sequence prefix. Follow the directions at that link to get a prefix and avoid possible conflicts with other fan Ages.

Age Options

KorStart01.jpg

Switch one of your windows in Blender to Properties. Next, click on the World button. Under the Plasma Age panel, put your reserved sequence number under Age Settings:ID.

In this same panel, you can also set the length of your Age's day in hours for a day/night cycle.

The Plasma Games will choose which version of the game to which you'd like to export. Each install of URU can be set up in Korman's user preferences.

Next, add your Age's filename (preferably as one word) into the box just below your Age ID (it'll be red until you enter something). Once that's done, that panel will be all set for exporting.

NOTE: It's recommended not use any special characters or spaces in the file name. Just letters and numbers usually works best.

The Plasma Age panel is where you can add more "pages" to your Age. This is good for organizational purposes with larger and more complex Ages. You'll notice this is done for Cyan Ages such as Ae'gura (city) or Gahreesen (garrison). If nothing is here, everything will be exported to a default page.

To add a new page, simply press the plus symbol next to the window under the Plasma Age panel.

  • Page Flags: options for the loading of a particular page.
    • Auto Load: loads the page/PRP upon Linking in. Checked by default.
    • Local Only: the page should not synchronize with the server.
  • Page Info: Details for the page itself.
    • The field just below this is where you can change the name of the page/PRP.
    • ID: the ID number of the page. By default, the pages will go in sequence as you add them.
    • Export Versions: choose which versions of URU for which the PRP will export. All three options are checked by default.

You can add as many pages/PRPs as you like. If you change some ID numbers, be sure no two numbers are the same across all pages! Again, just letters and numbers work best; no spaces or special characters.

Under Export Settings, there are two options:

  • Display Verbose Log: checking this displays a much more detailed account of what is exporting, both in the console and in the text file log.
  • Display Log Console: checking this will cause the console window to appear when you export so you can watch its progress.

Plasma Settings

  • Age Global SDL: Choose this if you are planning on exporting an SDL file, which can be created in the Text Window (much like how AlcScript used to be done).
  • Use Texture Page: Choose if you'd like textures to be displayed in your Age (unchecking this will only show the solid mesh).

More Options

Environment Maps: While Korman can determine which environment maps can be handled by which URU installation, if you'd like to set them all to a certain type, click this drop down and choose either:

  • Export Supported EnvMaps: Needed for dynamic camera maps.
  • Downgrade Planar EnvMaps: Downgrade all environment maps to less accurate cube environment maps.
  • Don't Export EnvMaps: Turn off all EnvMaps. Helps with performance in some cases.

Static Lighting: This will set all lit objects with a Lighting Modifier to a certain type:

  • Bake Lighting: The default option. This will bake all lighting to objects according to your specifications.
  • Force Lightmap Bake: This will apply a lightmap to all objects with a modifier (more accurate lighting).
  • Force Vertex Color Bake: Less accurate lighting, but this allows faster export and better Age performance.
  • Don't Bake Lighting: No lighting will bake and your Age will export fully bright. Good for examining any texture/uv problems, etc.

Python: This will tell Korman how to handle any custom Python scripts you've set to export along with the Age:

  • Pack All Scripts: This will pack any script that's been added into your blend and exist in your Text Editor with PY extensions. This is not recommended if you've used Cyan scripts as those are already included in the game.
  • Pack Requested Scripts: This is the preferred option. This will export...or in the case of offline URU, pack...any scripts in the Text Editor that have had Export checked next to their filename.
  • Pack Nothing: None of your custom scripts will be exported.

Texture Cache: Korman uses a cache to store previously exported textures to speed up future exports, and this drop down menu can manage that cache:

  • Rebuild Texture Cache: If, for some reason, there are problems with textures after the first export, you can use this to refresh the texture cache.
  • Use Texture Cache: The usual option to use the existing cache. Speeds up future exports.
  • Don't Use Texture Cache: This will cause the cache to neither be used or updated. Textures will export each time, but this will slow down exports.


Under the Plasma Environment settings, you can set your fog color and density. If you'd rather have no fog, click on Fog Type, the click None.

Clear Color sets the background color of the "outside" of your Age should someone inadvertently see it. You can also use it in place of a sky dome if you don't mind one solid color for a sky.

Building a Test Age

KorStart02.jpg

Adding Terrain

For this demonstration, we'll use a simple plane as the "ground". Bring up your tool shelf in the 3D View window by hovering the cursor there and pressing T. Click the Create tab and choose Plane.

Give your ground a material and texture. Be sure to unwrap the object too by pressing Tab->U in the 3D window, pressing U, and then choosing an unwrapping option.

Collision

If we export our plane like this, your avatar will fall right through. It needs some collision. In your Properties window, select the Physics button.

KorStart03.jpg

Here, you can rename the object if you'd like (and as you add more objects, this is recommended).

For any object you'd like to export, make sure Plasma Object is checked. If you forget this step for a few objects, don't worry...you can enable everything as a Plasma object when exporting.

You can also set which page to which you would like the object exported (selecting nothing exports it to the default page).

To add collision, click the Add Modifier button under Plasma Modifiers and click Collision.

For the Bounds Type, it's best to use Triangle Mesh for the complicated meshes or flat planes and Convex Hull for the more simple shapes.

KorStart04.jpg

Blocks Avatars will keep any avatars (and kickables) from passing through the mesh.

Blocks Camera will keep the third person camera from passing through.

Terrain will keep the avatar from "sliding" around on the surface, so you can deselect this if you'd like to have a "walking/running on ice" effect - but only in CC: tPotS.

NOTE: : "sliding" is not possible in MOULa (due to Moula's PhysX).

Dynamic is used for kickables.

  • Start Asleep: The kickable object is stationary until moved by the avatar or another object.
  • Mass: The weight of the kickable object in pounds (lbs).
NOTE: Flat planes cannot have Convex Hull collision or URU will crash.

Footstep Region

When we walk on our floor, we want some footstep sounds. For this, we'll need a footstep region.

Add a cube and scale it (S key) so that it encompasses everything.

Next, click the Physics button in the Properties window, click Add Modifier and then click Footstep

KorStep01.jpg

For bounds, use Convex Hull for simple shapes and Triangle Mesh for the more complicated meshes.

You can choose which type of surface noise for your floor: Dirt, Grass, Metal, Puddle, Rope, Rug, Stone, Water, Wood Bridge, Wood Floor, and Wood Ladder.

Adding a Link In Point

Our next step is to add a place for the avatar to Link into the Age. For this, we'll need to place an Empty object. In your 3D View window under the Tools tab, scroll down and click Empty.

Your empty should be placed about 1 Blender unit above your plane so that your avatar won't fall through or get stuck in the floor AND so it won't look like your avatar is dropping out of the sky slightly when Linking in.

With the empty selected, go back to your Physics panel in the Properties window. Rename the empty to LinkInPointDefault (any other Link in points after this can be named something else). Once again, click Add Modifier and then choose Spawn Point.

KorStart05.jpg

In the 3D Window, switch the orientation from Global to Local. Note that the avatar will face AWAY from wherever the spawn point's local Y axis (green arrow) is pointing, so rotate it according to where you want the avatar facing when it appears in the Age.

Panic Linking

What if we fall off this platform? We can add a Panic Link Region, useful for Linking the avatar out of hazards or if they somehow fall out of the Age.

For our example Age, we'll create a cube. Resize it and make it very large. Move it a short distance below the Age. To apply all the changes to the region, press Ctrl+A and then click Rotation and Scale.

Click on the Physics button of the Properties window, then click on Add Modifier, then Panic Link. Convex Hull is usually the best Bounds type, but if your panic region mesh is more complicated in shape, you can use Triangle Mesh.

KorStart06.jpg

If you'd prefer the avatar not grab for the Relto book when it falls, you can uncheck Play Animation.

NOTE: Panic Regions may not work as expected in Path of the Shell in Korman (0.09 or lower), resulting in the avatar panic linking immediately upon linking into the age. Applying the location transform to the region may correct this issue.

Lighting

Things are looking a little dark in here, so let's add a few lamps. The most common are Point lamps or a Sun lamp, but all should work with proper placement. Add any of these, choosing color, energy and location.

If you want any lamp to cast light on the avatar after export, you must check Plasma Object in the Physics panel in the Properties window.

Lightmapping

Now that we have some lighting, we can also create lightmaps.

NOTE: Unlike PyPRP, you will not need to uncheck all textures before this process. In fact, doing so will keep them from exporting at all.

By default, only lights with Plasma Object unchecked will cast on to a lightmap, but they won't cast light on the avatar upon export, which won't look realistic.

To create a lightmap and light the avatar, we must first have all lights we want to cast light put into a group. Select the first light and click on the Object button (orange box) in the Properties window.

KorStart07.jpg

Under the Groups panel, click on the + next to Add to Group to create a new group. Name it something you'll remember in the form below. Select each lamp you want included in the group, click the Add to Group button and select your light group. All the lights in the group should now have a green outline in the 3D window.

Next, select your ground plane. Go back to the Physics panel and click Add Modifier->Bake Lighting.

KorStart08.jpg

In this new panel, you can adjust a few options.

Bake To determines if the lighting will be baked into a texture (Lightmap Texture) or into the Col value (Vertex Colors). For this instance, we will choose Lightmap.

Quality: This determines the size of the texture image to use. The bigger, the more detailed, but big textures also expand the file size of your texture PRP. You can use anywhere from 128 pixels to 2048 pixels. The average is usually 512px, so we'll use that.

Bake Pass should be left blank for now. You can choose specific bake passes determined in the Render Layer panel, but we'll be fine for now.

Light Group is where you can select our light group from earlier.

You can leave your UV Texture blank. Otherwise, if you already have a Lightmap UV map, you can choose that instead.

Once everything is set, to see if the lightmap will turn out the way you like, you can click Preview Lightmap. If it doesn't look right, you can change the settings and UV mapping.


For more on lighting in Korman, click on the Lighting tutorial.

More Modifiers

There are many more modifiers that provide a multitude of functions in URU.

For a full list of Plasma modifiers and what they do for your Age, click on the modifiers tutorial.

Wiring Your Age

Korman does away with AlcScript in favor of Blender's node system. In that tutorial, you can learn what each node does and how they interconnect, plus see a few basic examples of node trees.

Exporting

Now, we are ready to export the new Age.

Expanding Your Age

To further add to your Age, you can use any of the associated tutorials for Korman.