I love the smell of UnrealEd crashing in the morning. – tarquin
Difference between revisions of "UE3:ProcBuilding (UDK)"
(Talk) |
m (1 revision: class descriptions for UDK January update (part 4)) |
||
(One intermediate revision by one other user not shown) | |||
Line 21: | Line 21: | ||
==Properties== | ==Properties== | ||
+ | ===Property group 'Debug'=== | ||
+ | ====bDebugDrawEdgeInfo==== | ||
+ | '''Type:''' [[bool]] | ||
+ | |||
+ | If TRUE, show face->edge relationships when this building is selected. | ||
+ | |||
+ | ====bDebugDrawScopes==== | ||
+ | '''Type:''' [[bool]] | ||
+ | |||
+ | If TRUE, show scopes extracted from brushes. | ||
+ | |||
===Property group 'ProcBuilding'=== | ===Property group 'ProcBuilding'=== | ||
====bApplyRulesToFloor==== | ====bApplyRulesToFloor==== | ||
Line 48: | Line 59: | ||
If TRUE, generate a poly to fill the hole on the top of the building | If TRUE, generate a poly to fill the hole on the top of the building | ||
+ | |||
+ | '''Default value:''' True | ||
+ | |||
+ | ====bSplitWallsAtRoofLevels==== | ||
+ | '''Type:''' [[bool]] | ||
+ | |||
+ | If TRUE, wall scopes will be split at each roof/floor level in the building group. | ||
+ | |||
+ | '''Default value:''' True | ||
+ | |||
+ | ====bSplitWallsAtWallEdges==== | ||
+ | '''Type:''' [[bool]] | ||
+ | |||
+ | If TRUE, wall scopes will be split when another wall ends in the middle of a face. | ||
'''Default value:''' True | '''Default value:''' True | ||
Line 83: | Line 108: | ||
'''Default value:''' 1024 | '''Default value:''' 1024 | ||
+ | |||
+ | ====LowLODPersistentActor==== | ||
+ | '''Type:''' {{cl|StaticMeshActor}} | ||
+ | |||
+ | '''[[Variables#Modifiers|Modifiers]]:''' const, editconst, crosslevelpassive | ||
+ | |||
+ | Since we want the low lod mesh of the building to be always loaded, we need an actor in the P map (or other always loaded level); this is that actor | ||
====NonRectWallLightmapRes==== | ====NonRectWallLightmapRes==== | ||
Line 143: | Line 175: | ||
Current version of building - set to PROCBUILDING_VERSION when building meshed. | Current version of building - set to PROCBUILDING_VERSION when building meshed. | ||
+ | |||
+ | ====BuildingMatParamMICs==== | ||
+ | '''Type:''' [[array]]<{{cl|MaterialInstanceConstant}}> | ||
+ | |||
+ | Array of MICs created to set BuildingMaterialParams on meshes in this building. | ||
====CurrentSimpleMeshActor==== | ====CurrentSimpleMeshActor==== | ||
Line 174: | Line 211: | ||
UV Information about quads used for intermediate LOD - each element corresponds to element in LODMeshComps | UV Information about quads used for intermediate LOD - each element corresponds to element in LODMeshComps | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
====MaxFacadeZ==== | ====MaxFacadeZ==== | ||
Line 238: | Line 268: | ||
| {{tl|bMovable||Actor internal variables}} | | {{tl|bMovable||Actor internal variables}} | ||
| False | | False | ||
+ | |- | ||
+ | | {{tl|bPathColliding||Actor}} | ||
+ | | True | ||
|- | |- | ||
| {{tl|bRouteBeginPlayEvenIfStatic||Actor internal variables}} | | {{tl|bRouteBeginPlayEvenIfStatic||Actor internal variables}} | ||
Line 260: | Line 293: | ||
| 222 | | 222 | ||
|} | |} | ||
− | |||
− | |||
− | |||
|- | |- | ||
| {{tl|bWorldGeometry||Actor internal variables}} | | {{tl|bWorldGeometry||Actor internal variables}} | ||
Line 280: | Line 310: | ||
! Property | ! Property | ||
! Value | ! Value | ||
+ | |- | ||
+ | | {{tl|bDisableAllRigidBody||PrimitiveComponent properties}} | ||
+ | | False | ||
|- | |- | ||
| {{tl|BlockActors||PrimitiveComponent properties}} | | {{tl|BlockActors||PrimitiveComponent properties}} | ||
Line 363: | Line 396: | ||
Additional information about each scope of the building | Additional information about each scope of the building | ||
; {{cl|ProcBuilding}} OwningBuilding : Building (could be 'child' building) that generated this scope. | ; {{cl|ProcBuilding}} OwningBuilding : Building (could be 'child' building) that generated this scope. | ||
− | ; {{cl|ProcBuildingRuleset}} Ruleset : Which building ruleset is | + | ; {{cl|ProcBuildingRuleset}} Ruleset : Which building ruleset is applied to this scope |
+ | ; [[name]] RulesetVariation : Name of the ruleset variation desired on this scope | ||
; [[bool]] bGenerateLODPoly : Whether we want to generate a RTT poly for this scope in the low LOD building | ; [[bool]] bGenerateLODPoly : Whether we want to generate a RTT poly for this scope in the low LOD building | ||
+ | ; [[bool]] bPartOfNonRect : If this scope is within non-rectangular polygon. | ||
==Native functions== | ==Native functions== | ||
Line 375: | Line 410: | ||
{{code|native function '''ClearBuildingMeshes''' ()}} | {{code|native function '''ClearBuildingMeshes''' ()}} | ||
− | + | Remove all the building meshes from this building | |
====FindComponentsForTopLevelScope==== | ====FindComponentsForTopLevelScope==== |
Latest revision as of 05:44, 17 January 2010
Contents
- 1 Constants
- 2 Properties
- 2.1 Property group 'Debug'
- 2.2 Property group 'ProcBuilding'
- 2.2.1 bApplyRulesToFloor
- 2.2.2 bApplyRulesToRoof
- 2.2.3 bBuildingBrushCollision
- 2.2.4 bGenerateFloorMesh
- 2.2.5 bGenerateRoofMesh
- 2.2.6 bSplitWallsAtRoofLevels
- 2.2.7 bSplitWallsAtWallEdges
- 2.2.8 BuildingFracMeshCompInfos
- 2.2.9 BuildingMaterialParams
- 2.2.10 BuildingMeshCompInfos
- 2.2.11 LODRenderToTextureLightingSize
- 2.2.12 LODRenderToTextureSize
- 2.2.13 LowLODPersistentActor
- 2.2.14 NonRectWallLightmapRes
- 2.2.15 RenderToTexturePullBackAmount
- 2.2.16 RoofLightmapRes
- 2.2.17 Ruleset
- 2.2.18 SimpleMeshComp
- 2.2.19 SimpleMeshMassiveLODDistance
- 2.3 Internal variables
- 2.3.1 AttachedBuildings
- 2.3.2 bQuickEdited
- 2.3.3 BuildingInstanceVersion
- 2.3.4 BuildingMatParamMICs
- 2.3.5 CurrentSimpleMeshActor
- 2.3.6 CurrentSimpleMeshComp
- 2.3.7 EdgeInfos
- 2.3.8 LODMeshComps
- 2.3.9 LODMeshUVInfos
- 2.3.10 MaxFacadeZ
- 2.3.11 MinFacadeZ
- 2.3.12 NumMeshedTopLevelScopes
- 2.3.13 OverlappingBuildings
- 2.3.14 TopLevelScopeInfos
- 2.3.15 TopLevelScopes
- 2.3.16 TopLevelScopeUVInfos
- 2.4 Default values
- 2.5 Subobjects
- 3 Enums
- 4 Structs
- 5 Native functions
- Package:
- Engine
This is an auto-generated page and may need human attention. Please remove the {{autogenerated}} tag if the page seems reasonably complete or replace it with the {{expand}} tag if the page is not yet complete. |
Constants[edit]
ROOF_MINZ[edit]
Value: 0.7
If the normal Z component is greater than this, its a roof
PROCBUILDING_VERSION[edit]
Value: 1
Global building version. Increase this to force a re-gen of building meshes.
Properties[edit]
Property group 'Debug'[edit]
bDebugDrawEdgeInfo[edit]
Type: bool
If TRUE, show face->edge relationships when this building is selected.
bDebugDrawScopes[edit]
Type: bool
If TRUE, show scopes extracted from brushes.
Property group 'ProcBuilding'[edit]
bApplyRulesToFloor[edit]
Type: bool
If TRUE, meshing rules are applied to floor of building, instead of just leaving it as a flat poly
bApplyRulesToRoof[edit]
Type: bool
If TRUE, meshing rules are applied to roof of building, instead of just leaving it as a flat poly
bBuildingBrushCollision[edit]
Type: bool
Controls if the simple brush has collision.
Default value: True
bGenerateFloorMesh[edit]
Type: bool
If TRUE, generate a poly to fill the hole on the bottom of the building volume
bGenerateRoofMesh[edit]
Type: bool
If TRUE, generate a poly to fill the hole on the top of the building
Default value: True
bSplitWallsAtRoofLevels[edit]
Type: bool
If TRUE, wall scopes will be split at each roof/floor level in the building group.
Default value: True
bSplitWallsAtWallEdges[edit]
Type: bool
If TRUE, wall scopes will be split when another wall ends in the middle of a face.
Default value: True
BuildingFracMeshCompInfos[edit]
Type: array<PBFracMeshCompInfo>
Modifiers: const, editconst
Array of information about each fractured mesh making up the final building
BuildingMaterialParams[edit]
Type: array<PBMaterialParam>
Optional parameters than are set on all MICs applied to building.
BuildingMeshCompInfos[edit]
Type: array<PBMeshCompInfo>
Modifiers: const, editconst
Array of information about each component making up the final building
LODRenderToTextureLightingSize[edit]
Type: int
The size of the lighting texture applied to low LOD building, generated using render-to-texture
Default value: 256
LODRenderToTextureSize[edit]
Type: int
The size of the diffuse texture applied to low LOD of building, generated using render-to-texture.
Default value: 1024
LowLODPersistentActor[edit]
Type: StaticMeshActor
Modifiers: const, editconst, crosslevelpassive
Since we want the low lod mesh of the building to be always loaded, we need an actor in the P map (or other always loaded level); this is that actor
NonRectWallLightmapRes[edit]
Type: int
Light map resolution used for generated non-rectangular wall meshes
Default value: 64
RenderToTexturePullBackAmount[edit]
Type: float
Amount to pull back from the face to render from (caging depth). Nearby meshes closer than this will be rendered into the buildings RTT.
Default value: 125.0
RoofLightmapRes[edit]
Type: int
Light map resolution used for generated roof plane mesh
Default value: 64
Ruleset[edit]
Type: ProcBuildingRuleset
Pointer to ruleset in package used to build facade geometry for building
SimpleMeshComp[edit]
Type: StaticMeshComponent
Modifiers: const, editconst
Component used to display simple one-mesh version of building
SimpleMeshMassiveLODDistance[edit]
Type: float
Distance at which MassiveLOD will kick in and change between high detail meshes and the SimpleMeshComp / LowLODPersistentActor
Default value: 10000.0
Internal variables[edit]
AttachedBuildings[edit]
Type: array<ProcBuilding>
Set of buildings which are directly attached to this one (using Base pointer)
bQuickEdited[edit]
Type: bool
Modifiers: transient
If TRUE, this actor has been edited in 'quick' mode, and needs regen-ing when quick mode exits.
BuildingInstanceVersion[edit]
Type: int
Modifiers: const
Current version of building - set to PROCBUILDING_VERSION when building meshed.
BuildingMatParamMICs[edit]
Type: array<MaterialInstanceConstant>
Array of MICs created to set BuildingMaterialParams on meshes in this building.
CurrentSimpleMeshActor[edit]
Type: Actor
Modifiers: transient
This is the actor that owns the simple mesh component (either the building itself, or the LowLODPersistentActor) (transient as it's only valid while updating building)
CurrentSimpleMeshComp[edit]
Type: StaticMeshComponent
Modifiers: transient
This is the low detail component, either owned by this actor or in another level (transient as it's only really valid while updating building)
EdgeInfos[edit]
Type: array<PBEdgeInfo>
Set of all edges between scopes, indicating which scopes the edge connects, as well as angle and location
LODMeshComps[edit]
Type: array<StaticMeshComponent>
Modifiers: const
Components that are used for intermediate LOD, which should be hidden when generating render-to-texture
LODMeshUVInfos[edit]
Type: array<PBFaceUVInfo>
UV Information about quads used for intermediate LOD - each element corresponds to element in LODMeshComps
MaxFacadeZ[edit]
Type: float
Top-most z value of facade scopes
MinFacadeZ[edit]
Type: float
Bottom-most z value of facade scopes
NumMeshedTopLevelScopes[edit]
Type: int
This is the divider between TopLevelScopes that are used for meshing, and those used as bounds not non-rect polys for generating texture.
OverlappingBuildings[edit]
Type: array<ProcBuilding>
Modifiers: transient
Temporarty set of buildings that overlap this building.
TopLevelScopeInfos[edit]
Type: array<PBScopeProcessInfo>
Array of rulesets applied to each TopLevelScope of building
TopLevelScopes[edit]
List of the top level rectangular scopes building
TopLevelScopeUVInfos[edit]
Type: array<PBFaceUVInfo>
List of UV info for each top level scope, should match size of TopLevelScopes.
Default values[edit]
Property | Value | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
bBlockActors | True | ||||||||||
bColored | True | ||||||||||
bGameRelevant | True | ||||||||||
bHidden | False | ||||||||||
bMovable | False | ||||||||||
bPathColliding | True | ||||||||||
bRouteBeginPlayEvenIfStatic | False | ||||||||||
BrushColor |
|
||||||||||
bWorldGeometry | True | ||||||||||
CollisionType | COLLIDE_CustomDefault |
Subobjects[edit]
BrushComponent0[edit]
Class: Engine.BrushComponent
Inherits from: Volume.BrushComponent0
Property | Value |
---|---|
bDisableAllRigidBody | False |
BlockActors | True |
BlockRigidBody | True |
RBChannel | RBCC_BlockingVolume |
ReplacementPrimitive | None |
Enums[edit]
EPBCornerType[edit]
Enum for choosing how to adjust roof/floor poly to fit with corner meshes
- EPBC_Default
- EPBC_Chamfer
- EPBC_Round
EScopeEdge[edit]
Enum used for indicating a particular edge of a scope
- EPSA_Top
- EPSA_Bottom
- EPSA_Left
- EPSA_Right
- EPSA_None
Structs[edit]
PBEdgeInfo[edit]
Modifiers: native
Struct that contains info about an edge between two scopes.
- Object.Vector EdgeEnd
- End point (in building space) of this edge
- Object.Vector EdgeStart
- Start point (in building space) of this edge
- int ScopeAIndex
- Index of first scope that meets at this edge, in the ToplevelScopes array
- EScopeEdge ScopeAEdge
- What edge of ScopeA this edge forms
- int ScopeBIndex
- Index of second scope that meets at this edge, in the ToplevelScopes array
- EScopeEdge ScopeBEdge
- What edge of ScopeB this edge forms
- float EdgeAngle
- Angle at this edge, in degrees. 0 means flat, positive is convex (outside) corner, negative is interior
PBFaceUVInfo[edit]
Modifiers: native
Struct that contains information about the UVs of one face in the low detail mesh
- Object.Vector2D Offset
- Offset into the texture page
- Object.Vector2D Size
- Size of the face's region in the texture page
PBFracMeshCompInfo[edit]
Modifiers: native
- FracturedStaticMeshComponent FracMeshComp
- Fractured mesh instance used to make up facade
- int TopLevelScopeIndex
- Index into TopLevelScopes of scope that this mesh makes up part of
PBMaterialParam[edit]
Modifiers: native
Struct used to store information for building-wide material instances
- name ParamName
- Name of parameter to set in all building MICs
- Object.LinearColor Color
- Value to set parameter to in all building MICs
PBMeshCompInfo[edit]
Modifiers: native
Struct that gives information about each component making up the facades of a building
- StaticMeshComponent MeshComp
- Mesh instance used to make up facade
- int TopLevelScopeIndex
- Index into TopLevelScopes of scope that this mesh makes up part of
PBScope2D[edit]
Modifiers: native
Struct that defines a 2D 'scope' - region of a building face
- Object.Matrix ScopeFrame
- Transform (in actor space) of the bottom-left corner of scope
- float DimX
- Size of scope along its X axis
- float DimZ
- Size of scope along its Z axis
PBScopeProcessInfo[edit]
Modifiers: native
Additional information about each scope of the building
- ProcBuilding OwningBuilding
- Building (could be 'child' building) that generated this scope.
- ProcBuildingRuleset Ruleset
- Which building ruleset is applied to this scope
- name RulesetVariation
- Name of the ruleset variation desired on this scope
- bool bGenerateLODPoly
- Whether we want to generate a RTT poly for this scope in the low LOD building
- bool bPartOfNonRect
- If this scope is within non-rectangular polygon.
Native functions[edit]
BreakFractureComponent[edit]
Will break pieces off the specified fracture component that are within the specified box.
ClearBuildingMeshes[edit]
Remove all the building meshes from this building
FindComponentsForTopLevelScope[edit]
Util for finding all building components that form one top level scope.
FindEdgeForTopLevelScope[edit]
Given an index of a scope in the TopLevelsScopes array (and which edge of that scope), returns index into EdgeInfos with that edge's info. Value of INDEX_NONE may be returned, indicating edge could not be found, which may indicate this is a scope-poly edge instead of scope-scope.
GetAllGroupedProcBuildings[edit]
Get the set of all ProcBuildings (including this one) that are grouped together (using Base pointer)
GetBaseMostBuilding[edit]
Walks up Base chain to find the root building of the attachment chain