I'm a doctor, not a mechanic
Difference between revisions of "UE3:ProcBuilding (UDK)"
(Talk) |
(Talk) |
||
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==== |
Revision as of 05:24, 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
ROOF_MINZ
Value: 0.7
If the normal Z component is greater than this, its a roof
PROCBUILDING_VERSION
Value: 1
Global building version. Increase this to force a re-gen of building meshes.
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'
bApplyRulesToFloor
Type: bool
If TRUE, meshing rules are applied to floor of building, instead of just leaving it as a flat poly
bApplyRulesToRoof
Type: bool
If TRUE, meshing rules are applied to roof of building, instead of just leaving it as a flat poly
bBuildingBrushCollision
Type: bool
Controls if the simple brush has collision.
Default value: True
bGenerateFloorMesh
Type: bool
If TRUE, generate a poly to fill the hole on the bottom of the building volume
bGenerateRoofMesh
Type: bool
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
BuildingFracMeshCompInfos
Type: array<PBFracMeshCompInfo>
Modifiers: const, editconst
Array of information about each fractured mesh making up the final building
BuildingMaterialParams
Type: array<PBMaterialParam>
Optional parameters than are set on all MICs applied to building.
BuildingMeshCompInfos
Type: array<PBMeshCompInfo>
Modifiers: const, editconst
Array of information about each component making up the final building
LODRenderToTextureLightingSize
Type: int
The size of the lighting texture applied to low LOD building, generated using render-to-texture
Default value: 256
LODRenderToTextureSize
Type: int
The size of the diffuse texture applied to low LOD of building, generated using render-to-texture.
Default value: 1024
LowLODPersistentActor
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
Type: int
Light map resolution used for generated non-rectangular wall meshes
Default value: 64
RenderToTexturePullBackAmount
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
Type: int
Light map resolution used for generated roof plane mesh
Default value: 64
Ruleset
Type: ProcBuildingRuleset
Pointer to ruleset in package used to build facade geometry for building
SimpleMeshComp
Type: StaticMeshComponent
Modifiers: const, editconst
Component used to display simple one-mesh version of building
SimpleMeshMassiveLODDistance
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
AttachedBuildings
Type: array<ProcBuilding>
Set of buildings which are directly attached to this one (using Base pointer)
bQuickEdited
Type: bool
Modifiers: transient
If TRUE, this actor has been edited in 'quick' mode, and needs regen-ing when quick mode exits.
BuildingInstanceVersion
Type: int
Modifiers: const
Current version of building - set to PROCBUILDING_VERSION when building meshed.
BuildingMatParamMICs
Type: array<MaterialInstanceConstant>
Array of MICs created to set BuildingMaterialParams on meshes in this building.
CurrentSimpleMeshActor
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
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
Type: array<PBEdgeInfo>
Set of all edges between scopes, indicating which scopes the edge connects, as well as angle and location
LODMeshComps
Type: array<StaticMeshComponent>
Modifiers: const
Components that are used for intermediate LOD, which should be hidden when generating render-to-texture
LODMeshUVInfos
Type: array<PBFaceUVInfo>
UV Information about quads used for intermediate LOD - each element corresponds to element in LODMeshComps
MaxFacadeZ
Type: float
Top-most z value of facade scopes
MinFacadeZ
Type: float
Bottom-most z value of facade scopes
NumMeshedTopLevelScopes
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
Type: array<ProcBuilding>
Modifiers: transient
Temporarty set of buildings that overlap this building.
TopLevelScopeInfos
Type: array<PBScopeProcessInfo>
Array of rulesets applied to each TopLevelScope of building
TopLevelScopes
List of the top level rectangular scopes building
TopLevelScopeUVInfos
Type: array<PBFaceUVInfo>
List of UV info for each top level scope, should match size of TopLevelScopes.
Default values
Property | Value | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
bBlockActors | True | ||||||||||
bColored | True | ||||||||||
bGameRelevant | True | ||||||||||
bHidden | False | ||||||||||
bMovable | False | ||||||||||
bPathColliding | True | ||||||||||
bRouteBeginPlayEvenIfStatic | False | ||||||||||
BrushColor |
|
||||||||||
bWorldGeometry | True | ||||||||||
CollisionType | COLLIDE_CustomDefault |
Subobjects
BrushComponent0
Class: Engine.BrushComponent
Inherits from: Volume.BrushComponent0
Property | Value |
---|---|
bDisableAllRigidBody | False |
BlockActors | True |
BlockRigidBody | True |
RBChannel | RBCC_BlockingVolume |
ReplacementPrimitive | None |
Enums
EPBCornerType
Enum for choosing how to adjust roof/floor poly to fit with corner meshes
- EPBC_Default
- EPBC_Chamfer
- EPBC_Round
EScopeEdge
Enum used for indicating a particular edge of a scope
- EPSA_Top
- EPSA_Bottom
- EPSA_Left
- EPSA_Right
- EPSA_None
Structs
PBEdgeInfo
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
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
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
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
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
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
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
BreakFractureComponent
Will break pieces off the specified fracture component that are within the specified box.
ClearBuildingMeshes
Remove all the building meshes from this building
FindComponentsForTopLevelScope
Util for finding all building components that form one top level scope.
FindEdgeForTopLevelScope
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
Get the set of all ProcBuildings (including this one) that are grouped together (using Base pointer)
GetBaseMostBuilding
Walks up Base chain to find the root building of the attachment chain