VirtualLens Controller Guide
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:
- Real-time Control: Parameters reflect in VRChat real-time
- Multiple Parameters: Support focal distance, aperture, exposure, and more
- Preset Saving: Save frequently used settings as presets
- Intuitive UI: Easy operation with sliders and knobs
Access Controller Screen
Steps:
- Check sidebar menu (left side)
- Look for “Controller” item
- 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 Section: Various camera parameter settings
- Preset Section: Preset save and load
- OSC Status Display: Communication status confirmation
- Preview: Real-time preview of settings reflected in VRChat
Parameter Settings
Focal Length
Corresponds to VirtualLens2 zoom setting.
Range: 16mm - 300mm
Unit: mm
Operation:
- Drag slider left/right to adjust
- Direct input to specify value
- “Reset” button returns to default (50mm)
Examples:
- 16mm: Suitable for wide-angle shooting
- 50mm: Standard portrait shooting
- 200mm: Captures distant subjects large
Aperture
Controls image brightness and depth of field (bokeh).
Range: F1.4 - F16
Unit: F-stop
Operation:
- Drag slider left/right
- Direct input value
- “Reset” button returns to default (F4.0)
Examples:
- F1.4-F2.8: Background bokeh emphasizes subject (portrait-oriented)
- F4.0-F8.0: Balanced exposure and bokeh
- F11-F16: Overall sharp, background clear
Exposure
Adjusts overall image brightness.
Range: -5.0 - +5.0
Unit: EV (Exposure Value)
Operation:
- Drag slider left/right
- Direct input value
- “Auto” button sets to auto exposure
Examples:
- -5.0 - -2.0: Adjust darker environment shots (darker)
- 0.0: Standard exposure
- +2.0 - +5.0: Shoot dark areas brighter
Depth of Field
Controls bokeh strength.
Range: 0 - 100
Operation:
- Drag slider left/right
- Direct input value
Examples:
- 0: No bokeh (overall sharp)
- 50: Moderate bokeh
- 100: Maximum bokeh (strong background bokeh)
Real-time Reflection
Parameter changes immediately reflect in VRChat camera.
Verification:
- Equip VirtualLens2 in VRChat
- Adjust parameters in controller screen
- Confirm reflection in VRChat screen (viewfinder)
Notes:
- OSC communication must be properly established
- Network latency may cause frame delay reflection
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:
- Port 9001 already in use by another app
- Network requires different port
How to Change:
- Open “OSC Settings” section in controller screen
- Enter desired port number in “Port Number” field
- Click “Apply”
- Set same port number on VRChat side too
Verify Communication Status
Status Display
Communication status displays on controller screen:
- Connected (green): Properly communicating with VRChat
- Disconnected (gray): Communication not established with VRChat
- Error (red): Communication error occurred
Diagnosis Method
Steps:
- Equip VirtualLens2 in VRChat
- Open controller screen
- Wait until status becomes “Connected”
- 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:
- Adjust each parameter to desired value
- Click “Save” button in “Preset” section
- Enter preset name (e.g., “Portrait”, “Wide-angle”)
- Click “Save”
Load Preset
Steps:
- Select preset to load from list in “Preset” section
- Click “Load” button
- Saved parameter values all apply
- Auto-reflect in VRChat
Edit Preset
Steps:
- Load preset
- Change parameters
- Click “Overwrite” button next to original preset name
- Click “Overwrite” in confirmation dialog
Delete Preset
Steps:
- Select preset to delete
- Click “Delete” button
- Click “Delete” in confirmation dialog
VRChat Side Settings
Equip VirtualLens2 Avatar
VirtualLens Controller requires equipping avatar with VirtualLens2 camera in VRChat.
Verification:
- Equip avatar in VRChat
- Check View > Viewfinder if VirtualLens2 viewfinder displays
Enable OSC (VRChat Side)
VRChat Setup:
- Launch VRChat
- Open Settings > OSC
- Check “Enable OSC”
- Verify port number is 9001 (or VSA-specified value)
- Save settings
Verify VirtualLens2 Parameters
Confirm VRChat VirtualLens2 supports these parameters:
/avatar/parameters/VL2_FocalLength - Focal distance
/avatar/parameters/VL2_Aperture - Aperture
/avatar/parameters/VL2_Exposure - Exposure
/avatar/parameters/VL2_DepthOfField - Depth of field
Verification:
- VRChat Settings > Developer > Display advanced info
- Check avatar parameters list
Troubleshooting
OSC Communication Not Established
Symptom: Status remains “Disconnected”
Solutions:
- Verify VRChat OSC settings
- Confirm “Enable OSC” checked
- Confirm port number matches (default: 9001)
- Check firewall settings
- Confirm firewall not blocking communication
- Check security software settings
- Verify port not in use
netstat -ano | findstr :9001
- If port in use by other process, change to different port
- Restart VRChat and VSA
- Completely close both and restart
Parameters Not Reflecting
Symptom: Controller changed but VRChat doesn’t reflect
Solutions:
- Check communication status
- Verify controller screen status is “Connected”
- If “Disconnected”, see “OSC Communication Not Established”
- Verify VirtualLens2 equipped
- Confirm correct avatar equipped in VRChat
- Confirm VirtualLens2 viewfinder displays
- Check parameter names
- Verify correct parameter names configured on avatar
- Restart VSA
- Reset OSC connection by completely restarting VSA
Parameter Response Slow
Symptom: Parameter changes delayed in VRChat reflection
Solutions:
- Check network connection
- Verify internet connection stability
- Check ping value (
ping 127.0.0.1)
- Check other app loads
- Stop apps consuming network bandwidth
- Check CPU usage not high
- Check VRChat load
- Many players in instance may reduce performance
Parameter Reset Not Working
Symptom: Reset button clicked but value doesn’t return
Solutions:
- Check target parameter reset settings
- Verify correct parameter selected
- Check avatar settings
- Verify VirtualLens2 reset value configured correctly on VRChat
- Restart controller
- Close controller screen and reopen
Usage Examples
Example 1: Portrait Shooting Preset
Goal: VRChat portrait-focused shooting
Settings:
- Focal Length: 85mm (portrait standard)
- Aperture: F2.0 (background bokeh)
- Exposure: 0 EV (standard brightness)
- Depth of Field: 80 (background bokeh)
Steps:
- Set above values in controller
- Save as “Portrait” preset
- Click “Load” for portrait shooting
Example 2: Landscape Shooting Preset
Goal: Capture world full-view
Settings:
- Focal Length: 35mm (wide-angle)
- Aperture: F8.0 (overall sharp)
- Exposure: 0.5 EV (slightly bright)
- Depth of Field: 20 (minimal bokeh)
Steps:
- Set above values in controller
- Save as “Landscape” preset
- Click “Load” for landscape shooting
Example 3: Night Shooting Preset
Goal: Sufficient brightness in dark world
Settings:
- Focal Length: 50mm (standard)
- Aperture: F1.4 (maximum brightness)
- Exposure: +3.0 EV (bright adjust)
- Depth of Field: 50 (moderate bokeh)
Steps:
- Set above values in controller
- Save as “Night Shooting” preset
- Click “Load” for night shooting