The animation you can see on screen was created in Blender 3.6 using a simple 3D model to which I applied the Cloth simulator...
Video Transcript
The animation you can see on screen was created in Blender 3.6 using a simple 3D model to which I applied the Cloth simulator. The fabric was then disturbed using a Turbulence force field.
The ghost also moves up and down with an animation created by inserting keyframes at specific points on the Timeline, recording the Location information after repositioning the ghost.
The semi-transparent appearance was achieved with a Material that makes surfaces facing the camera transparent while keeping others opaque.

I have already dedicated a tutorial to this type of Material and how you can modify its parameters, so I won't discuss it again here. The focus of this tutorial is indeed the perturbation of the Cloth fabric.
I applied a Cloth Simulation component to the ghost using the default settings, but I set the Gravity value to 0 in the Field Weights section of Cloth. This way, the fabric won't fall into the void but will move up or down based on the manually set Location keyframes. With this adjustment, you can freely move the ghost in a scene, creating an initial disturbance due to this movement.

To enhance this simulation, it is advisable to activate the Self Collision section of the Cloth simulator to prevent interpenetration between different parts of the fabric.

To further disturb the ghost, we need to add a Turbulence force field, which simply disturbs the elements within its range without moving or deforming them too much, as Force and Wind would.

I set the Intensity and Noise disturbance values of the force field after several attempts, reaching a satisfactory result.
However, the real essence of this tutorial lies not in these basic settings but in the use of Weight Painting to exclude the upper part of the ghost from the influence of the Turbulence force field. Specifically, this excludes it from the Cloth simulation and, consequently, from the Turbulence disturbance.
The force field would indeed disturb the entire ghost, resulting in an unpleasant outcome around the head.
In Cloth simulation, it's possible to specify a particular Vertex Group called Pinning. If the vertices belonging to this Vertex Group have a weight of 1, they won't be included in the fabric simulation and will remain in place.
This is particularly useful, for example, to create parts that need to remain still or anchored in a curtain, the sails of a ship, or other fabric elements.
If the weight associated with the vertices of the Vertex Group has a value between 0 and 1, then the action of the Cloth simulator and the force fields influencing it will have intensities proportional to that value. This allows us to quickly assign intermediate values using Weight Painting.
I then applied brushstrokes with a value of 1 near the head and gradually decreasing values down the fabric, eventually leaving the lower part of the ghost at 0. This way, it is less affected by the turbulence of the force field.

Therefore, the ghost moves thanks to Location keyframes, its fabric is animated by Cloth but doesn't fall into the void because Gravity is set to 0, and the Turbulence force field disturbs it only in the lower part. This is because the upper parts are assigned to the Pinning group, with varying intensities determined by Weight Painting.

Well, that's all for this tutorial! I hope you liked it! See you soon!