← FAB archive

Game Kit: Portal (C++)

A C++ based portal system with customizable features.

Screenshots

Fully customizable Portal System

Current limitations:

  • Lumen is not supported
  • Recursive rendering is currently expensive; a performance update is planned

Features:

  • 1:1 rendering
  • Smooth player and object teleportation with velocity
  • Smooth third-person camera transitions
  • Laser System integration
  • Cloned characters and objects on linked portals
  • Projectile traversal
  • Recursion support

How-To

1. Enable Support global clip plane for Planar Reflections

Global clip plane setting

2. Set near clip plane to 0.1

Near clip plane setting

3. Create object and trace channels and collision presets

Portal trace channel
Portal object channel
Portal collision preset

4. Add the channels to DefaultEngine.ini

[/Script/Engine.CollisionProfile]
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,DefaultResponse=ECR_Block,bTraceType=True,bStaticObject=False,Name="LaserTrace")
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel2,DefaultResponse=ECR_Ignore,bTraceType=True,bStaticObject=False,Name="PortalTrace")
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel3,DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False,Name="PortalWall")
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel4,DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False,Name="PortalActor")
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel5,DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False,Name="Projectile")

5. Modify assets through DA_Widget_Simple and DA_Portal

These files are derived from the UDataAsset class.

Portal data asset
Portal widget data asset

6. Set the default pawn class to BP_PortalCharacter

Portal character setup

More systems

Back to the FAB archive