I search for solutions in this order: Past Code, Unreal Source, Wiki, BUF, groups.yahoo, google, screaming at monitor. – RegularX
UE3:ProcBuilding (UDK)
Contents
- 1 Constants
- 2 Properties
- 2.1 Property group 'ProcBuilding'
- 2.1.1 bApplyRulesToFloor
- 2.1.2 bApplyRulesToRoof
- 2.1.3 bBuildingBrushCollision
- 2.1.4 bGenerateFloorMesh
- 2.1.5 bGenerateRoofMesh
- 2.1.6 BuildingFracMeshCompInfos
- 2.1.7 BuildingMaterialParams
- 2.1.8 BuildingMeshCompInfos
- 2.1.9 LODRenderToTextureLightingSize
- 2.1.10 LODRenderToTextureSize
- 2.1.11 NonRectWallLightmapRes
- 2.1.12 RenderToTexturePullBackAmount
- 2.1.13 RoofLightmapRes
- 2.1.14 Ruleset
- 2.1.15 SimpleMeshComp
- 2.1.16 SimpleMeshMassiveLODDistance
- 2.2 Internal variables
- 2.2.1 AttachedBuildings
- 2.2.2 bQuickEdited
- 2.2.3 BuildingInstanceVersion
- 2.2.4 CurrentSimpleMeshActor
- 2.2.5 CurrentSimpleMeshComp
- 2.2.6 EdgeInfos
- 2.2.7 LODMeshComps
- 2.2.8 LODMeshUVInfos
- 2.2.9 LowLODPersistentActor
- 2.2.10 MaxFacadeZ
- 2.2.11 MinFacadeZ
- 2.2.12 NumMeshedTopLevelScopes
- 2.2.13 OverlappingBuildings
- 2.2.14 TopLevelScopeInfos
- 2.2.15 TopLevelScopes
- 2.2.16 TopLevelScopeUVInfos
- 2.3 Default values
- 2.4 Subobjects
- 2.1 Property group 'ProcBuilding'
- 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 '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
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
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.
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
LowLODPersistentActor
Type: StaticMeshActor
Modifiers: 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
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 | ||||||||||
bRouteBeginPlayEvenIfStatic | False | ||||||||||
BrushColor |
|
||||||||||
bStatic | False | ||||||||||
bWorldGeometry | True | ||||||||||
CollisionType | COLLIDE_CustomDefault |
Subobjects
BrushComponent0
Class: Engine.BrushComponent
Inherits from: Volume.BrushComponent0
Property | Value |
---|---|
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 appluied to this scope
- bool bGenerateLODPoly
- Whether we want to generate a RTT poly for this scope in the low LOD building
Native functions
BreakFractureComponent
Will break pieces off the specified fracture component that are within the specified box.
ClearBuildingMeshes
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