Search Forums

(Advanced Search)

Latest Threads
Request a different way t...
Forum: Obi Fluid
Last Post: spikebor
7 hours ago
» Replies: 2
» Views: 17
Obi7 | Ropes make fluid s...
Forum: Obi Fluid
Last Post: josemendez
Yesterday, 07:21 PM
» Replies: 3
» Views: 34
Unable to load DLL 'Oni'.
Forum: General
Last Post: josemendez
Yesterday, 05:52 PM
» Replies: 3
» Views: 37
I contact with softbody b...
Forum: Obi Rope
Last Post: spikebor
Yesterday, 02:34 PM
» Replies: 2
» Views: 39
Need the positions to dri...
Forum: Obi Fluid
Last Post: spikebor
Yesterday, 02:19 PM
» Replies: 2
» Views: 39
Frequent crash after assi...
Forum: Obi Fluid
Last Post: spikebor
Yesterday, 02:15 PM
» Replies: 9
» Views: 213
Problems deleting obi col...
Forum: Obi Rope
Last Post: josemendez
Yesterday, 08:05 AM
» Replies: 7
» Views: 123
When I use ObiBone with m...
Forum: Obi Rope
Last Post: josemendez
Yesterday, 07:58 AM
» Replies: 3
» Views: 40
Changing solver gravity v...
Forum: Obi Fluid
Last Post: T-1000
13-05-2024, 10:08 PM
» Replies: 2
» Views: 27
Usando ejemplo del Rollin...
Forum: Obi Fluid
Last Post: josemendez
13-05-2024, 07:48 AM
» Replies: 1
» Views: 47

 
  Can Obi do this?
Posted by: JordanTama - 14-09-2020, 10:47 AM - Forum: Obi Cloth - Replies (3)

Hi,

I'm interested in using Obi Cloth for a project I am working on, however, I'd like to know if it will actually help me with what I'm aiming to do.


In the attached image, I have two submeshes. I've stored multiple vertex pairs (linked with the white gizmo lines). I would like to apply a force to individual vertices that move each pair of linked vertices towards each other in a way that is physically simulated so that it fits realistically around the cylinder, with the linked edges behaving like seams. 

Otherwise, I also noticed a 'balloons' feature. If I placed the two meshes flat against each other and connected them, would I be able to balloon around the cylinder?

If it's possible to achieve this outcome this way, I would love to know. If there's a better/supported way to achieve this too, please let me know!

Thanks in advance,
Jordan

Print this item

  obi fluid + hdrp
Posted by: marad747 - 14-09-2020, 10:34 AM - Forum: Obi Fluid - Replies (24)

Does obi fluid support hdrp render and waht me do if no? I need obi at hdrp pls help

Print this item

  Obi Fluid for 3D paint
Posted by: sanyam - 14-09-2020, 08:15 AM - Forum: Obi Fluid - Replies (3)

Hi,

I want to paint on a canvas. It will be 3D and there shall be gravity acting on the paint fluid as well. Do you think Obi Fluid can do the job for this particular task?

Print this item

  Tutorial?
Posted by: Havie - 13-09-2020, 10:24 PM - Forum: Obi Softbody - Replies (19)

Hello all,

Maybe I am missing something, but all I see are two very basic tutorials :
1)https://www.youtube.com/watch?v=ikjHVxO3Fks
2)https://www.youtube.com/watch?v=PBcIC1-ENAI

The second one doesn't even seem current to match my inspector.
I don't see anything that installed with the pack?

I've managed to make a cylinder as a temp garbage can but it looks horrible when the game starts 

Before: 
https://i.imgur.com/tNbSnem.png
Scene Start: 
https://i.imgur.com/npzvb7Q.png


Theres a ton of settings on this the ObiSolver, ObiSoftBody, Obi Softbody Skinner.
I'm not even sure where to begin with making this less giggly.

The idea behind the project Im working on is a ball will hit the trash can and the impact will deform the mesh. I am not trying to have it deform from the ground?

Also getting this error
https://i.imgur.com/8YLnsyF.png

Any advice would be much appreciated.

Print this item

  ObiParticleAttachment not working after disable -> enable solver object
Posted by: hungseparate - 11-09-2020, 05:50 PM - Forum: Obi Rope - Replies (1)

I have a simple rope like this :

- Solver
          - Rope
          - Gameobject A -> is kinematic
          - Gameobject B -> is dynamic

Rope have 2 attachments, static with A and dynamic with B.

In my game, i tried to hide any rope that out of screen to get some fps, so i disabled solver gameobject, when  ienable it again, B drop to the ground like it doesn't have any attachment with the Rope, while A still working fine (may be because it is kinematic)

As i checked, both attachment still enable, nothing change.

Is there something wrong with my implement ? do you have any suggest for this case ?

Print this item

Exclamación Doesn't work in Unity 2020.1.41f
Posted by: quakeulf - 10-09-2020, 11:19 PM - Forum: Obi Softbody - Replies (14)

Observe findings in Twitter-post here:

https://twitter.com/Colonthreee/status/1...0532858882

Doesn't matter what I do, I always get:
   

Code:
InvalidOperationException: The previously scheduled job ApplyCollisionConstraintsBatchJob writes to the UNKNOWN_OBJECT_TYPE ApplyCollisionConstraintsBatchJob.positions. You are trying to schedule a new job InterpolationJob, which reads from the same UNKNOWN_OBJECT_TYPE (via InterpolationJob.positions). To guarantee safety, you must include ApplyCollisionConstraintsBatchJob as a dependency of the newly scheduled job.
Unity.Jobs.LowLevel.Unsafe.JobsUtility.ScheduleParallelFor (Unity.Jobs.LowLevel.Unsafe.JobsUtility+JobScheduleParameters& parameters, System.Int32 arrayLength, System.Int32 innerloopBatchCount) (at <e8645a79b0794e0e9a2b5bbff081b88a>:0)
Unity.Jobs.IJobParallelForExtensions.Schedule[T] (T jobData, System.Int32 arrayLength, System.Int32 innerloopBatchCount, Unity.Jobs.JobHandle dependsOn) (at <e8645a79b0794e0e9a2b5bbff081b88a>:0)
Obi.BurstSolverImpl.ApplyInterpolation (Obi.ObiNativeVector4List startPositions, Obi.ObiNativeQuaternionList startOrientations, System.Single stepTime, System.Single unsimulatedTime) (at Assets/Obi/Scripts/Common/Backends/Burst/Solver/BurstSolverImpl.cs:935)
Platform is PC standalone.

Print this item

  Is the softbody asset a good choice for modelling a soccer ball? [Answered]
Posted by: adscott1982 - 10-09-2020, 10:20 PM - Forum: Obi Softbody - Replies (5)

I have been struggling in my soccer game to accurately model the physics of a soccer ball.

Unfortunately the physics for a sphere object that come with Unity don't model the ball accurately enough. There is only a very tiny contact point on the sphere collider when it comes into contact with another collider. This means that if there is any spin on the ball, or it hits a surface hard, the physics don't behave anywhere near accurately.

So the solution would be to use softbody physics for the ball. This would mean when it bounces with another collider the ball would deform slightly pressing more contact points against the other collider. Hence if the ball was spinning, if it bounced harder there would be a greater effect on the ball, than if it bounced more lightly.

However in the videos I have looked at for Obi, I cannot see any sphere examples with the rigidity that you would see in a soccer ball. In most cases it would only deform very slightly, only deforming to a larger extent when hit very hard.

From everything I have seen Obi looks incredibly well made, so it would probably be OK - I just want to know beforehand if possible before I pay on the Asset Store.

See a video below for a soccer ball being kicked very hard in slow motion, and see how limited the deformation is, and how quickly it returns to its normal shape. This is the kind of rigidity I am trying to model.




If you look at this video, the deformation when kicked is barely noticeable.

https://youtu.be/mbo2_h1mAG8

Final thing, I am not trying to have a 'simulation' level of accuracy here, just enough that for the most part the football appears to be behaving as expected. The game I am making is a fun party game, not a AAA FIFA competitor.

Print this item

  Everything appears pink after setting the ObiFluidRendererFeature to the pipeline
Posted by: qwzzz - 10-09-2020, 08:30 AM - Forum: Obi Fluid - Replies (9)

Hi All,

Just bought obi fluid 5.5, tried to follow steps to enable for URP

But everything appears pink after setting ObiFluidRendererFeature to my pipeline's renderer feature list

& also this shader error:

Code:
Shader error in 'Obi/URP/Fluid/FluidShading': undeclared identifier '_FluidSurface' at Assets/3rd Party Assets/Obi/Resources/ObiMaterials/URP/ObiFluidsURP.cginc(47) (on d3d11)

Compiling Vertex program with FLUID_LIGHTING FLUID_REFLECTION
Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING

Unity Version: 2019.3.15f1
URP: 7.4.3

Building for Oculus Quest


Please Advise

Print this item

Pregunta HDRP Editing Particles
Posted by: StudioTatsu - 09-09-2020, 01:31 PM - Forum: Obi Softbody - Replies (10)

In Blueprint Edit mode for the softbody,  (Visualization > Render mode) the particles are not visible in HDRP.
Is HDRP supported? The physics work, but the editing is difficult without a visual representation of the particles.

Print this item

Pregunta Copying SkinnedClothBluerint properties to a new generated one
Posted by: nexar - 08-09-2020, 10:32 PM - Forum: Obi Cloth - No Replies

Hello José,

Again, we are very grateful for your help, because thanks to that we have almost ready the project.

But, we have this problem:

We are working with SkinnedCloth, and we need to copy all the properties seted on the original SkinnedClothBlueprint to a new SkinnedClothBlueprint that we generate by code, considering as inputmesh a bakedmesh of the same original mesh with applied blendshapes.

To copy all the properties of the reference SkinnedClothBlueprint to the new one (except the positions, rotations, and speeds), we have done this:


Code:
public void BP_Process()
    {
        StartCoroutine(CopySkinnedClothBlueprint());
    }

    public IEnumerator CopySkinnedClothBlueprint()
    {
        skinnedBlueprintFinal = ScriptableObject.CreateInstance<ObiSkinnedClothBlueprint>();

// Creating a baked mesh with Blendshapes applied
        bakedMesh = new Mesh();
        meshReferencia.BakeMesh(bakedMesh);
        AssetDatabase.CreateAsset(bakedMesh, "Assets/SkinnedClothBakedMesh.asset");
        AssetDatabase.SaveAssets();

        skinnedBlueprintFinal.inputMesh = bakedMesh;
        yield return skinnedBlueprintFinal.Generate();

        // Copying particles (except positions, rotations, and velocities)
        for (int i = 0; i < skinnedBlueprintFinal.particleCount; ++i)
        {
            skinnedBlueprintFinal.invMasses[i] = skinnedBlueprintReferencia.invMasses[i];
            skinnedBlueprintFinal.principalRadii[i] = skinnedBlueprintReferencia.principalRadii[i];
            skinnedBlueprintFinal.phases[i] = skinnedBlueprintReferencia.phases[i];
            skinnedBlueprintFinal.colors[i] = skinnedBlueprintReferencia.colors[i];
        }

        ////// BEGIN COPYING CONSTRAINTS

        // Distance
        for (int i = 0; i < skinnedBlueprintFinal.distanceConstraintsData.batches.Count; ++i)
        {
            var batch = skinnedBlueprintFinal.distanceConstraintsData.batches[i];
            var sourceBatch = skinnedBlueprintReferencia.distanceConstraintsData.batches[i];

            for (int j = 0; j < batch.restLengths.count; ++j)
                batch.restLengths[j] = sourceBatch.restLengths[j];
            for (int j = 0; j < batch.stiffnesses.count; ++j)
                batch.stiffnesses[j] = sourceBatch.stiffnesses[j];
        }

        // Bend:
        for (int i = 0; i < skinnedBlueprintFinal.bendConstraintsData.batches.Count; ++i)
        {
            var batch = skinnedBlueprintFinal.bendConstraintsData.batches[i];
            var sourceBatch = skinnedBlueprintReferencia.bendConstraintsData.batches[i];

            for (int j = 0; j < batch.restBends.count; ++j)
                batch.restBends[j] = sourceBatch.restBends[j];
            for (int j = 0; j < batch.bendingStiffnesses.count; ++j)
                batch.bendingStiffnesses[j] = sourceBatch.bendingStiffnesses[j];
        }

        // Pin:
        for (int i = 0; i < skinnedBlueprintFinal.pinConstraintsData.batches.Count; ++i)
        {
            var batch = skinnedBlueprintFinal.pinConstraintsData.batches[i];
            var sourceBatch = skinnedBlueprintReferencia.pinConstraintsData.batches[i];

            for (int j = 0; j < batch.pinBodies.count; ++j)
                batch.pinBodies[j] = sourceBatch.pinBodies[j];
            for (int j = 0; j < batch.offsets.count; ++j)
                batch.offsets[j] = sourceBatch.offsets[j];
            for (int j = 0; j < batch.restDarbouxVectors.count; ++j)
                batch.restDarbouxVectors[j] = sourceBatch.restDarbouxVectors[j];
            for (int j = 0; j < batch.stiffnesses.count; ++j)
                batch.stiffnesses[j] = sourceBatch.stiffnesses[j];
            for (int j = 0; j < batch.breakThresholds.count; ++j)
                batch.breakThresholds[j] = sourceBatch.breakThresholds[j];
        }

        // Skin:
        for (int i = 0; i < skinnedBlueprintFinal.skinConstraintsData.batches.Count; ++i)
        {
            var batch = skinnedBlueprintFinal.skinConstraintsData.batches[i];
            var sourceBatch = skinnedBlueprintReferencia.skinConstraintsData.batches[i];

            for (int j = 0; j < batch.skinPoints.count; ++j)
                batch.skinPoints[j] = sourceBatch.skinPoints[j];
            for (int j = 0; j < batch.skinNormals.count; ++j)
                batch.skinNormals[j] = sourceBatch.skinNormals[j];
            for (int j = 0; j < batch.skinRadiiBackstop.count; ++j)
                batch.skinRadiiBackstop[j] = sourceBatch.skinRadiiBackstop[j];
            for (int j = 0; j < batch.skinCompliance.count; ++j)
                batch.skinCompliance[j] = sourceBatch.skinCompliance[j];
        }

        // Aerodynamics:
        for (int i = 0; i < skinnedBlueprintFinal.aerodynamicConstraintsData.batches.Count; ++i)
        {
            var batch = skinnedBlueprintFinal.aerodynamicConstraintsData.batches[i];
            var sourceBatch = skinnedBlueprintReferencia.aerodynamicConstraintsData.batches[i];

            for (int j = 0; j < batch.aerodynamicCoeffs.count; ++j)
                batch.aerodynamicCoeffs[j] = sourceBatch.aerodynamicCoeffs[j];
        }

// Tether, Stretch Shear, Bend Twist, Shape Matching, Chain and Volume constraints generate null errors. Thats why they are not copied.

        ////// END COPYING CONSTRAINTS

        // Creating Blueprint Asset File
        if (!AssetDatabase.Contains(skinnedBlueprintFinal))
            AssetDatabase.CreateAsset(skinnedBlueprintFinal, "Assets/newSkinnedBluePrint.asset");

        // Particle Groups:
        skinnedBlueprintFinal.ClearParticleGroups();
        for (int i = 0; i < skinnedBlueprintReferencia.groups.Count; ++i)
        {
            var group = skinnedBlueprintFinal.AppendNewParticleGroup(skinnedBlueprintReferencia.groups[i].name);
            skinnedBlueprintReferencia.groups[i].particleIndices.Count);
            for (int j = 0; j < skinnedBlueprintReferencia.groups[i].particleIndices.Count; ++j)
            {
                group.particleIndices.Add(skinnedBlueprintReferencia.groups[i].particleIndices[j]);
            }

            AssetDatabase.AddObjectToAsset(skinnedBlueprintFinal.groups[i], skinnedBlueprintFinal);
        }

// Save the Blueprint Asset
        AssetDatabase.SaveAssets();

// Assign the new blueprint to the SkinnedCloth of the dress
        dress_SkinnedCloth.skinnedClothBlueprint = skinnedBlueprintFinal;

    }


However, although we can generate correctly a new file of a SkinnedClothBlueprint, in the practice it is as if the properties of Skin were not being applied.
If we manually generate and edit the SkinnedClothBlueprint with the same properties, it works well, but when we create it with this code, it does not work as it should.

1) Is there anything that we are missing to copy all the properties of SkinnedClothBlueprint to the new one (except the positions, rotations, and speeds)?

2)- Is it necessary to update/re-calculate somehow the blueprint, after having modified its properties?

3) Is there a more efficient way to copy all the properties of a SkinnedClothBlueprint to a new one (except the positions, rotations, and speeds), but for a new bakedmesh as inputmesh?

4) Or do we have to use the "Bake Mesh" method from the Obi Skinned Cloth Renderer, to get a mesh with the skin?

5) We have realized that, if we just change the blendshapes of the SkinnedMeshRenderer component by code (even without modifying the original blueprint), even if it has the ObiSkinnedCloth component, we achieve what we wanted. Is there any problem in doing this once at the beginning of the program?

Thanks in advance!

PD: Le hemos enviado por e-mail estas mismas consultas. Muchas gracias por su ayuda al respecto! Gran sonrisa

Print this item