Skip to content

SKGOpticComponent

Sneaky Kitty edited this page Jan 10, 2026 · 44 revisions

The purpose of this component is to act like an interface to the SKGOpticSceneCaptureComponent so you don't interact with it directly, as well as offer several optic relation settings and functionality. For example it handles reticle brightness, cycling reticles, zeroing, magnification, etc.\

Overview

There are three data assets used for this component, SKGPDAOpticInitialize, SKGPDAOpticReticleSettings, and SKGPDAOpticZeroSettings. To setup the component, create these data assets and assign them to your SKGOpticComponent in the details panel. The images down below are before the change to the data assets was made, but it makes it easier to show in the screenshots what I'm referring to for the settings.

SKGPDAOpticInitialize

  • Optic Mesh Name: The Optic Mesh Name is the name of the Static/Skeletal Mesh Component on your blueprint. image
  • Optic Scene Capture Component Name: The Optic Scene Capture Component Name is the name of SKGOpticSceneCaptureComponent added to your magnified optics. This is not a mandatory field and is only used on optics that have the SKGOpticSceneCaptureComponent on them. This is subject to modification in the future as I want to support both zooming with a SKGOpticSceneCaptureComponent as well as traditional style without. image

Scene Capture Settings

image

  • Tick Interval: This is the rate at which the scene capture will tick. If it's set to 60, it will tick 60 times a second. If you set it to 0, it will tick once per frame.
  • Resolution X/Y: This is the resolution of the render target the optic component will create. Note the higher the resolution the higher the performance hit.
  • Parameter Name(s): These are the parameter names used in the provided optic materials. If you are using my materials for your optics, then these will not need to be touched. If you are not using my materials, then you already know what to do.

SKGPDAOpticReticleSettings

image

Reticle Settings

  • Reticle Material Index: This is the material index that your using for your reticle on your mesh. For example, on this Holographic sight, the index is 1.
    image But on this LPVO the index is 2.
    image
  • Supports Night Vision: If this is true, it simply allows you to use the Reticle Night Vision Brightness Settings and swap to/from them.
  • Reticle Material: This is the material you will use for this optic. It is used in conjunction with the below Reticle Textures array.
  • Reticle Textures: These are an array of reticles that get assigned to your Reticle Material. Index 0 is the default, so when the optic is created, it assigns index 0 (T_Reticle_Holosight with all Red color channels in the above screenshot) to it so you now have a red reticle. When you cycle to the next reticle with the CycleReticle function it would go to index 1 and show the same reticle with a green color.
  • Un Aimed Reticle Material and Un Aimed Capture Delay: The Un Aimed Reticle Material and Un Aimed Capture Delay applies to magnified optics using a SKGOpticSceneCaptureComponent. When you stop aiming, it will wait the amount of time specified in the Un Aimed Capture Delay before changing the reticle material to the one specified in the Reticle Material. This is useful if you want to change it to something such as a simple glass material.
  • Reticle Brightness Parameter Name: This is the default name used in the provided reticle materials to control the brightness.
  • Reticle Brightness Settings: The Reticle Brightness settings are different brightness levels you want the reticles to have that you can cycle through. The Reticle Night Vision Brightness Settings are the same but only apply when the optic is in Night Vision Mode.
  • Reticle Night Vision Brightness Settings: This is the same as the above Reticle Brightness Settings but only apply to when the optic is in night vision mode.
  • Weighted Blendables: This applies to thermals. For example, the thermal in the example has several of these set. This lets you cycle through them using the CycleNextWeightedBlendable function.
    image
  • Eyebox Position Socket: This is the socket used to center the eyebox. Typically your aim socket is sufficient so it's defaulted to S_Aim.

Magnification Settings

  • Magnifications: Magnifications is an array of zoom levels/magnification you want the optic to use. For example, the provided LPVO uses 1.0, 3, 6, and 8.0 as it is a 1-8 power optic.
  • Sensitivity Scale: If you use my magnification sensitivity multiplier, this sensitivity scale is used to let you control the mouse sensitivity on a per optic basis.
  • Smooth Zoom and Smooth Zoom Rate: If Smooth Zoom is enables, as you change magnifications it will change smoothly between the magnifications ate a speed specified in Smooth Zoom Rate.
  • Shrink Eyebox With Magnification and Shrink Eyebox Multiplier: The Shrink Eyebox With Magnification option is for some added realism. As you zoom in with your optic in real life, your eyebox will shrink and make it more difficult to keep your eye centered in the eyebox. With Shrink Eyebox With Magnification enabled, it will scale as you zoom in/out based on your Shrink Eyebox Multiplier setting.
  • Is First Focal Plan: Some optics are First Focal Plane, some are Second Focal Plane. First Focal Plane: Your reticle will scale up/down with your magnification. Second Focal Plane: Your reticle will not scale/change at all as you change magnifications.

SKGPDAOpticZeroSettings

image
The Optic Zero Settings apply only to magnified optics using the SKGOpticSceneCaptureComponent (Currently).

  • Adjustment Type - Adjustment Amount: The Adjustment Amount option changes based on the Adjustment Type. If MRAD you will see MRADAdjustment Amount, if MOA you will see MOAAdjustment Amount.
    MRAD: Adjustments will be made in Mills
    MOA: Adjustments will be made in MOA
  • Start with Default Zero: If true, your optic will start with the amount of clicks defined in Default Elevation/Windage Clicks.
  • Start With Random Zero: If true, your optic will start with a random amount of clicks defined in Random Max Elevation/Windage Clicks. Default is 25 so it will range from -25 to 25.

Functions

SKGOptic Category

  • StartedAiming: If using a SKGOpticSceneCaptureComponent it will start capture.
  • StoppedAiming: If using a SKGOpticSceneCaptureComponent it will stop capture.
  • IsMagnifiedOptic: If your optic is magnified it will return true, false otherwise.
  • GetOpticMesh: This function will return the mesh of your optic.

Reticle Category

Zoom Category

  • ZoomIn - ZoomOut: These functions will zoom in and out optics that (currently) implement the SKGOpticSceneCaptureComponent based on your Magnification Settings.
  • GetCurrentMagnification: This function will return the magnification your optic is currently on.

Zero Category

  • PointOfImpactUpDownDefault - PointOfImpactLeftRightDefault: These functions will reset your elevation/windage back to your zero. For example if you changed your clicks on elevation or windage, it will reset them back to zero.

PointOfImpactUp/Down/Left/Right: These functions will adjust your elevation and windage based on the amount of clicks you pass in. For example, an optic set to use MRAD at 0.1 mils will adjust at 1/10th of a mil per click.

  • ApplyLookAtRotationZero: This function is for optics with the SKGOpticSceneCaptureComponent and meant to be called from the SKGFirearmComponents ZeroOpticsForZeroAtLocation fuction. It is meant to be utilized alongside the SKGProjectileWorldSubsystem function GetProjectileZeroAtLocation which will get the rotation value for you. The SKGFirearmComponent has a function ZeroOpticsForZeroAtLocation which automates this process for all the optics on the firearm.

Clone this wiki locally