DEVELOPER NOTES / INTEGRATION

Arcane Foundry
in Unity.

Playback, JSON presets and capture notes for the supplied C# runtime.

Tested setup

EditorUnity 6000.6.7f1
Render pipelineUniversal Render Pipeline 17.6.0
Verified playerWindows x64 / Direct3D 12
Demo & Editor toolsInput System 1.20.1

The runtime assembly has no Input System dependency. Built-in, HDRP, other Unity versions and other platforms are unverified.

Play a spell through the pool

Add a VfxPool component to a scene object. In your gameplay script, assign that pool and one of the supplied SpellDefinition assets. Pass world-space ground positions; the effect adds its visual height.

C# / MINIMAL PLAYBACK EXAMPLESpellPreview.cs
using ArcaneFoundry;
using UnityEngine;

public sealed class SpellPreview : MonoBehaviour
{
    [SerializeField] VfxPool pool;
    [SerializeField] SpellDefinition spell;
    [SerializeField] Transform target;

    public void Cast()
    {
        if (!pool || !spell || !target) return;
        pool.Spawn(spell, transform.position, target.position);
    }
}

Call Cast() from your animation event, input handler or ability system. The effect returns to its pool when playback completes.

Prewarm during loading

// Run from a MonoBehaviour coroutine.
yield return pool.Prewarm(spell, count: 8, perFrame: 2);

Choose a count appropriate to your expected simultaneous casts. Prewarming prepares inactive instances over multiple frames; it does not remove the cost of rendering active effects. Profile in your own scene, at your intended camera scale.

Edit a preset

JSON stores appearance settings, not arbitrary asset paths or gameplay behavior. Export a complete preset from a definition, adjust the fields you need, then validate it through the preset API.

JSON / EXCERPT FROM FLAME WALLSCHEMA 3
{
  "schemaVersion": 3,
  "effectId": "fire.flame_wall",
  "primaryColor": "#F35B1EFF",
  "accentColor": "#FFE298FF",
  "sigilDetail": "None",
  "sigilOpacity": 0.3,
  "sigilBrightness": 0.35,
  "readabilityEnabled": true,
  "coreOpacity": 0.6,
  "edgeStrength": 0.55,
  "glowIntensity": 1.0
}

This is an excerpt, not a complete import file. Keep the timing, scale, radius and other fields from the exported preset. Set sigilDetail to Light, Medium or Detailed to show a ground sigil.

Keep asset templates intact

For runtime variations, use SpellPresetJson.TryCreateRuntime(json, catalog, out definition, out error). It resolves the effect ID through your local SpellCatalog, clones the definition and validates the settings. Use the resulting definition for playback, then destroy it after all effects using it have finished.

TryApply changes its destination definition directly. Use a runtime copy when changes should be temporary. Invalid imports return an error without partially applying settings.

Use individual phases

Use the complete prefab for a full visual sequence. When your gameplay or animation system owns the timing, use the Cast, Release, Impact and Afterglow entry prefabs instead.

IncludedPurpose
150 complete prefabsThe full spell sequences.
600 phase-entry prefabsFour entry points for each of the same 150 designs.
30 ground sigilsLight, medium and detailed treatments for each domain.

Related designs share composition families and renderer modules. The phase-entry count does not represent additional unique spells.

Recording offscreen

Physical pieces use instanced graphics submissions in LateUpdate. A spell spawned immediately before a manual camera render can therefore be missing its physical ice, stone, wood or bone.

  1. Keep a camera enabled and render through the normal player loop.
  2. Assign its RenderTexture before rendering.
  3. Allow effect updates and instanced submissions to complete.
  4. Read the texture after the rendered frame finishes.

The package includes the full offscreen-capture guide, covering end-of-frame ordering, the existing merged-mesh fallback for custom tooling and primary-camera billboard behavior.

The website showcase is an offline capture at 1080p / 30fps. It demonstrates motion and density; it is not a real-time performance benchmark.

Readability on lighter ground

Bright glow alone can disappear on pale terrain. The appearance presets expose core opacity, edge strength and glow intensity so you can balance the effect against your scene.

Flame Wall rendered against dark stone.
Dark stone
The same Flame Wall pose against white marble, with its flame shape still visible.
White marble

Flame Wall shown at the same pose on both surfaces, captured in Unity. The supplied readability lab also includes grass, sand and snow. Test the balance with your own lighting, exposure and camera scale.

Visual limits to plan around

Atmospheric bodies use camera-facing textured layers, with physical meshes where appropriate. They are composed for isometric views, rather than arbitrary close-up volumetric inspection.

The ground feather assumes a locally horizontal plane at the target height. It does not conform to arbitrary terrain, or soften every intersection against actors and walls. Check your intended camera angles and terrain during integration.

The package supplies visual effects. Damage, healing, teleport movement, targeting, collision handling, networking and audio remain part of your game.

Get support

Email fireblade1232007@gmail.com with your Unity version, render pipeline and spell name. Describe the expected result and what you see; a small reproduction or screenshot helps.

← Back to the collection