## 2 Materials and Methods
### Key Features of the Haptic Feedback Design Tool  
While game engines already support the visualization of visual and audio effects, this tool adds the ability to visualize haptic effects, further enhancing understanding, work efficiency, and synchronization between effects designed for different senses. Figure 1 provides a complete overview of the Unity Editor workspace with the haptic effects editor, including the visual representation of the scene with 3D objects, an overview of the project assets, and the visualization of haptic and audio effects. Haptic effects are first created as HapticEffect assets in the Unity Editor through the Assets/Create submenu within the Project window (Figure 2a). These lightweight assets are saved within the project (Figure 2b) and can be easily copied into other Unity projects and reused, similar to other assets, such as 3D models and audio effects. The primary component of the tool described in this paper is a custom visual editor for creating and previewing haptic effects, i.e., HapticEffect assets (Figure 2c). Through its streamlined and intuitive graphical user interface, users of the tool can design haptic effects by adjusting various properties, such as effect duration, looping, motor vibration intensities, and changes in intensity over time and distance from the effect's source in the virtual world. These properties are configured within a custom Inspector interface, utilizing input controls chosen to provide the greatest ease of use and efficiency for the tool user. Figure 1: Unity Editor workspace including visual representation of the scene with the hierarchy of 3D objects, an overview of project assets, and the haptic effects editor with the visualization of haptic and audio effects. A particularly significant feature of the tool is the use of animation curves to represent changes in the intensity of the vibration produced by the device's vibration motors over time. This allows highly intuitive visual representation of the effect, precise control over intensity and timing, and facilitates rapid experimentation, iterative design, and fine-tuning based on user feedback during preview sessions. Unity's Curve Editor provides critical functionality that enhances the tool's usability and user experience, including timeline and grid lines with snapping and zooming capabilities (Figure 3a), a variety of editing tools (Figure 3b), built-in and user-defined curve presets (Figure 3c), and clipboard functionality for copying, cutting, and pasting keys, i.e., control points or entire curves (Figure 3d). In addition to the default built-in curve presets, the curve editor is supplemented with more than 40 additional curve presets, systematically organized into several categories, such as easing functions, noise patterns, and waveforms. Figure 2: (**a**) Creating HapticEffect assets in Unity Editor through the Assets/Create submenu within the Project window. (**b**) Haptic effects saved as project assets. (**c**) Custom visual editor for design and preview of HapticEffect object. (**d**) Preview options including looped preview functionality and display of connected gamepad devices, which can be individually selected for preview (one, multiple, or all devices). In order to offer tool users greater flexibility in creating and modifying animation curves, an additional Animation Curve Generator tool was developed (Figure 4a). While static curve presets provide convenient, pre-defined curves, the Curve Generator allows tool users to fine-tune and generate custom curves tailored to specific needs by selecting the curve type, the number of keys, and adjusting relevant parameters for the selected curve type, such as frequency, amplitude, phase, offset, etc. It supports various curve types, including linear functions, easing functions, waveforms (sine, sawtooth, square, etc. ), and noise patterns (Perlin, Gaussian, Brownian, etc. ), among others.