Skip to the content.

VirtualLens Controller Guide

How to open

Open VirtualLens Controller from the VSA sidebar.

VirtualLens Controller screen

🏠 Document Top ⚖️ Terms of Service 🔒 Privacy Policy

VirtualLens Controller allows you to operate VirtualLens2 camera settings in real-time. Integration with VirtualLens2 avatars in VRChat is possible via OSC (Open Sound Control).

VirtualLens Controller Overview

Using VirtualLens Controller:

Access Controller Screen

Open from Menu

Steps:

  1. Check sidebar menu (left side)
  2. Look for “Controller” item
  3. Click to open controller screen

Keyboard Shortcut

Controller screen may have dedicated shortcut keys. See Keyboard Shortcuts for details.

Using Controller Screen

Screen Composition

Controller screen consists of these sections:

Parameter Settings

Focal Length

Corresponds to VirtualLens2 zoom setting.

Range: 16mm - 300mm Unit: mm Operation:

Examples:

Aperture

Controls image brightness and depth of field (bokeh).

Range: F1.4 - F16 Unit: F-stop Operation:

Examples:

Exposure

Adjusts overall image brightness.

Range: -5.0 - +5.0 Unit: EV (Exposure Value) Operation:

Examples:

Depth of Field

Controls bokeh strength.

Range: 0 - 100 Operation:

Examples:

Real-time Reflection

Parameter changes immediately reflect in VRChat camera.

Verification:

  1. Equip VirtualLens2 in VRChat
  2. Adjust parameters in controller screen
  3. Confirm reflection in VRChat screen (viewfinder)

Notes:

Integral Camera Control

Integral is a camera system for VRChat. You can operate it from the controller screen just like VirtualLens2.

Accessing Integral Controller

From the Controller screen in the sidebar menu, switch tabs to use VirtualLens2 and Integral interchangeably.

Main Parameters

Lens Settings

Parameter Range Description
Aperture 0.0 ~ 1.0 Controls bokeh strength and brightness
Zoom 0.0 ~ 1.0 Camera zoom level
Exposure 0.0 ~ 1.0 Overall image brightness

Focus Control

Parameter Description
Focus Mode MF (Manual) / AF (Auto) / Visual AF
Focus Value Manual focus position adjustment
Pause AF Temporarily pause auto-focus

Bokeh Shape

Select Integral’s bokeh shape:

Shape Description
Circle Natural, elegant bokeh (default)
Hexagon Geometric bokeh pattern
Star Sparkling light effect
Heart Cute presentation
Bubble Transparent bubble effect

Bokeh Rotation: Rotate bokeh shape to adjust angle.

Shutter Control

Parameter Description
Shutter Speed Base exposure time
Shutter Speed Add Fine-tuning adjustment
Rolling Shutter Film camera shutter effect (OFF / Left→Right / Top→Bottom, etc.)

Lens Effects

Effect Description
Vignetting Peripheral light falloff
Aperture Aspect Adjust aperture vertical/horizontal ratio
Chromatic Aberration Lens color separation effect
Spherical Aberration Lens characteristic simulation

Special Filters

Cross Filter: Adds cross-shaped light effect

Tilt (Tilt Shift)

Tilt lens in X/Y direction for special focus effects.

Composition Mode

Select image processing algorithm:

Mode Description
Normal Standard image processing
Lighten Emphasize bright areas
Darken Emphasize dark areas
Depth Use depth information
Movie Film-style processing

Other Features

Feature Description
Grid Display Show composition guide
Histogram Check exposure
Selfie Mode Front-facing camera
Auto Level Auto exposure adjustment
Drone Speed Movement speed in drone mode

OSC Communication Settings

What is OSC?

OSC (Open Sound Control) is a protocol that transmits parameters real-time over network. Exchange numerical data between VRChat and VSA.

Port Settings

Default Port

Default Value: 9001

VRChat initial settings use port 9001. Usually works with this setting.

Change Port Number

When Change Needed:

How to Change:

  1. Open “OSC Settings” section in controller screen
  2. Enter desired port number in “Port Number” field
  3. Click “Apply”
  4. Set same port number on VRChat side too

Verify Communication Status

Status Display

Communication status displays on controller screen:

Diagnosis Method

Steps:

  1. Equip VirtualLens2 in VRChat
  2. Open controller screen
  3. Wait until status becomes “Connected”
  4. Change one parameter to test, confirm VRChat reflection

Preset Management

What are Presets?

Save preset settings combining camera parameters (focal distance, aperture, exposure, etc.).

Save Preset

Steps:

  1. Adjust each parameter to desired value
  2. Click “Save” button in “Preset” section
  3. Enter preset name (e.g., “Portrait”, “Wide-angle”)
  4. Click “Save”

Load Preset

Steps:

  1. Select preset to load from list in “Preset” section
  2. Click “Load” button
  3. Saved parameter values all apply
  4. Auto-reflect in VRChat

Edit Preset

Steps:

  1. Load preset
  2. Change parameters
  3. Click “Overwrite” button next to original preset name
  4. Click “Overwrite” in confirmation dialog

Delete Preset

Steps:

  1. Select preset to delete
  2. Click “Delete” button
  3. Click “Delete” in confirmation dialog

VRChat Side Settings

Equip VirtualLens2 Avatar

VirtualLens Controller requires equipping avatar with VirtualLens2 camera in VRChat.

Verification:

  1. Equip avatar in VRChat
  2. Check View > Viewfinder if VirtualLens2 viewfinder displays

Enable OSC (VRChat Side)

VRChat Setup:

  1. Launch VRChat
  2. Open Settings > OSC
  3. Check “Enable OSC”
  4. Verify port number is 9001 (or VSA-specified value)
  5. Save settings

Verify VirtualLens2 Parameters

Confirm VRChat VirtualLens2 supports these parameters:

Verification:

  1. VRChat Settings > Developer > Display advanced info
  2. Check avatar parameters list

Troubleshooting

OSC Communication Not Established

Symptom: Status remains “Disconnected”

Solutions:

  1. Verify VRChat OSC settings
    • Confirm “Enable OSC” checked
    • Confirm port number matches (default: 9001)
  2. Check firewall settings
    • Confirm firewall not blocking communication
    • Check security software settings
  3. Verify port not in use
    netstat -ano | findstr :9001
    
    • If port in use by other process, change to different port
  4. Restart VRChat and VSA
    • Completely close both and restart

Parameters Not Reflecting

Symptom: Controller changed but VRChat doesn’t reflect

Solutions:

  1. Check communication status
    • Verify controller screen status is “Connected”
    • If “Disconnected”, see “OSC Communication Not Established”
  2. Verify VirtualLens2 equipped
    • Confirm correct avatar equipped in VRChat
    • Confirm VirtualLens2 viewfinder displays
  3. Check parameter names
    • Verify correct parameter names configured on avatar
  4. Restart VSA
    • Reset OSC connection by completely restarting VSA

Parameter Response Slow

Symptom: Parameter changes delayed in VRChat reflection

Solutions:

  1. Check network connection
    • Verify internet connection stability
    • Check ping value (ping 127.0.0.1)
  2. Check other app loads
    • Stop apps consuming network bandwidth
    • Check CPU usage not high
  3. Check VRChat load
    • Many players in instance may reduce performance

Parameter Reset Not Working

Symptom: Reset button clicked but value doesn’t return

Solutions:

  1. Check target parameter reset settings
    • Verify correct parameter selected
  2. Check avatar settings
    • Verify VirtualLens2 reset value configured correctly on VRChat
  3. Restart controller
    • Close controller screen and reopen

Usage Examples

Example 1: Portrait Shooting Preset

Goal: VRChat portrait-focused shooting

Settings:

Steps:

  1. Set above values in controller
  2. Save as “Portrait” preset
  3. Click “Load” for portrait shooting

Example 2: Landscape Shooting Preset

Goal: Capture world full-view

Settings:

Steps:

  1. Set above values in controller
  2. Save as “Landscape” preset
  3. Click “Load” for landscape shooting

Example 3: Night Shooting Preset

Goal: Sufficient brightness in dark world

Settings:

Steps:

  1. Set above values in controller
  2. Save as “Night Shooting” preset
  3. Click “Load” for night shooting