Search Forums

(Advanced Search)

Latest Threads
In SolidifyOnContact exsa...
Forum: Obi Fluid
Last Post: asimofu_ok
1 hour ago
» Replies: 0
» Views: 8
Is it possible to render ...
Forum: Obi Fluid
Last Post: asimofu_ok
3 hours ago
» Replies: 2
» Views: 39
Cloth has stretchy behavi...
Forum: Obi Cloth
Last Post: Andreia Mendes
Yesterday, 02:38 PM
» Replies: 22
» Views: 786
Get separate particles pa...
Forum: Obi Fluid
Last Post: slimedev
29-07-2025, 06:51 PM
» Replies: 6
» Views: 3,153
Solver outside of hierarc...
Forum: General
Last Post: Jawsarn
29-07-2025, 06:19 PM
» Replies: 4
» Views: 139
Rope ignoring colliders o...
Forum: Obi Rope
Last Post: josemendez
24-07-2025, 07:03 AM
» Replies: 1
» Views: 124
Ladder made by Ropes (Rat...
Forum: Obi Rope
Last Post: josemendez
23-07-2025, 01:43 PM
» Replies: 5
» Views: 301
can you remove particles ...
Forum: Obi Softbody
Last Post: josemendez
22-07-2025, 02:19 PM
» Replies: 1
» Views: 176
ObiRope Mesh Renderer
Forum: Obi Rope
Last Post: quent_1982
08-07-2025, 11:27 AM
» Replies: 4
» Views: 542
How to dynamically change...
Forum: Obi Rope
Last Post: quent_1982
08-07-2025, 06:34 AM
» Replies: 6
» Views: 759

 
  Obi cloth crash
Posted by: Chaiker - 09-01-2018, 09:18 AM - Forum: Obi Cloth - Replies (3)

Hi there. I have obi cloth on characters and test scene, where i press key and enemy spawns at point. And when it spawns in other enemy (just same point) Unity crashes. If enemy spawn not in other enemy, so crash will be little bit later. What it is?

Preview:

Code:
Unity Editor [version: Unity 2017.3.0f2_d3a5469e8c44]

Unity.exe caused an Access Violation (0xc0000005)
 in module Unity.exe at 0033:00000000.

Error occurred at 2018-01-09_150618.
D:\Soft\Unity 2017.3.0f2\Editor\Unity.exe, run by Chaiker.
37% memory in use.
16275 MB physical memory [10196 MB free].
28275 MB paging file [19542 MB free].
134217728 MB user address space [134213514 MB free].
Write to location 00000000 caused an access violation.

Context:
RDI:    0x00000000  RSI: 0x9f7eade0  RAX:   0x40000000
RBX:    0x00000028  RCX: 0x543a46f0  RDX:   0x543b4cb0
RIP:    0x00000000  RBP: 0x9f6e3860  SegCs: 0x00000033
EFlags: 0x00010246  RSP: 0x2065fa68  SegSs: 0x0000002b
R8:    0x9f6e36a0  R9: 0x2065fb00  R10:   0x2065fac0
R11:    0x2065fc38  R12: 0x9f6e36a0  R13:   0x9f6e5ae8
R14:    0x9f7eae20  R15: 0x543a46f0

Bytes at CS:EIP:
?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??

Stack:
0x2065fa68: 428fa77e 00000001 00000030 00000000 ~..B....0.......
0x2065fa78: 00000013 00000000 3e4ccccd 00000000 ..........L>....
0x2065fa88: 00000000 00000000 2065fc58 00000000 ........X.e ....
0x2065fa98: 9f7eae20 00000000 9f6e3860 00000000  .~.....`8n.....
0x2065faa8: 00000000 00000000 543b4cb0 00000000 .........L;T....
0x2065fab8: 408046c0 00000001 3f3673f5 be821590 .F.@.....s6?....
0x2065fac8: be96adec bf15778c c0185fb7 3f6d489e .....w..._...Hm?
0x2065fad8: c06a2784 00000000 3f350393 bbb3ed00 .'j.......5?....
0x2065fae8: bbb3ee00 bf35038b c018fa59 3f9328b8 ......5.Y....(.?
0x2065faf8: c06bd4af 00000000 44a2d930 00000001 ..k.....0..D....
0x2065fb08: 00000016 00000000 184f5d14 00000000 .........]O.....
0x2065fb18: 184f58f0 00000000 00000000 00000000 .XO.............
0x2065fb28: 0000022f ffffffff 00000000 00000000 /...............
0x2065fb38: 00000000 00000002 00000001 40665080 .............Pf@
0x2065fb48: 00000000 00000000 05c464a0 00000000 .........d......
0x2065fb58: 00000000 00000000 00000000 00000000 ................
0x2065fb68: 00000000 00000000 00000000 00000000 ................
0x2065fb78: 00000000 00000000 fffffffe ffffffff ................
0x2065fb88: 4038cbc3 00000001 3f800000 00000000 ..8@.......?....
0x2065fb98: 408045c9 00000001 00000000 3f800000 .E.@...........?
0x2065fba8: 00000000 00000000 00000000 00000000 ................
0x2065fbb8: 4038cbc3 00000001 00000000 00000000 ..8@............
0x2065fbc8: 00000000 3f800000 fffffffe ffffffff .......?........
0x2065fbd8: 00000000 00000000 005e9908 00000000 ..........^.....

Crash dmp you can download by link: https://1drv.ms/f/s!AlCyB5jMt8_SnnmIdXjx2yO8_hVb

Print this item

  Physically accurate closed pulley system
Posted by: M. Hanssen - 08-01-2018, 12:18 PM - Forum: Obi Rope - Replies (3)

I would like to make a physically accurate closed pulley system with 2 pulleys and one closed rope.
All physics and colliders are working except that I cannot get the rope to react to the pulley rotation.
Is this even possible with Obi Rope and/or how should I approach this?

[Image: 1ii445dNDDSzaQWcR00kG_scJbCijUBoMfrU2AW4...17-h337-no]

Print this item

  playableGraph Error
Posted by: Shreeya - 05-01-2018, 08:07 AM - Forum: Obi Cloth - Replies (2)

ERROR>>>>>Assets/Obi/Scripts/Solver/ObiAnimatorController.cs(38,14): error CS1061: Type `UnityEngine.Animator' does not contain a definition for `playableGraph' and no extension method `playableGraph' of type `UnityEngine.Animator' could be found. Are you missing an assembly reference?


How to resolve this?

Print this item

  AfterShadowMapPass
Posted by: Shreeya - 05-01-2018, 07:15 AM - Forum: Obi Cloth - Replies (2)

Error message >> Assets/Obi/Rendering/ShadowmapExposer.cs(21,38): error CS0117: `UnityEngine.Rendering.LightEvent' does not contain a definition for `AfterShadowMapPass'

How to correct this error?

Print this item

  Obi Fluid Setup - Beginner Question
Posted by: hmhmhm - 03-01-2018, 08:26 AM - Forum: Obi Fluid - Replies (6)

Hello,

I'm new to Obi Fluid and in the process of getting familiar with it.
I'm trying to have a very simple 2D scene, similar to 'Simple Fluid' in the Sample Scene folder.

I start a new scene, add an Obi Emitter (with solver), and turn it 90 degrees on the x-axis so it emits downward.
I then add an empty Game Object, and add 'Rigidbody 2D', 'Box Collider 2D' and 'Obi Collider 2D (Script)' to that object. As per the instructions, I make sure the emitter and game object are in different layers.

When I run the scene, two unexpected things happen:

1. The Obi particles 'enter' the object, i.e. they don't bounce off the surface, some of them even 'fall through' the object.

[Image: 5rJWiwA.png]

2. When I switch to 3D view, and have a look from the side, I can see the particles are not remaining in the 2D plane (z=0), i.e. they move backwards and/or forward once they hit the object.

[Image: qTYuXhm.png]

Eventually I would like to create a simple bucket and fill it with fluid in 2D. How do I best go about this, so the fluid stays a) in the 2D plane, and b) in the bucket. Also, is there an easy way to fill the bucket when the scene gets executed, i.e. without having to 'emit' the fluid into it first, which takes a while?

Thank you!

Print this item

Sonrisa Export Obi Cloth Simulation / Baked Simulation to Blendshapes/3D Packages like Maya?
Posted by: gstudio - 03-01-2018, 02:46 AM - Forum: Obi Cloth - Replies (2)

Hi Obi Support team,

Wishing you a Happy New Year!

Our small team has recently purchased your Obi cloth plugin as we hope to implement the goal net animation of our soccer project.  Since the project is targeted on the mobile device, we have tested the baked simulation & it is running much more efficient on both high / low end mobile devices. 

However, we noticed the baked simulation couldn't work on the Samsung S3 & iOS with the Bitcode support.  We're uncertain whether this could be due to the hardware / software (e.g. Unity compatibility, Android & iOS C++) issues.

Hence, we are thinking whether the Obi Cloth simulation / baked simulation is possible to be converted to Blendshape animation that can be used in Unity or simply exported to 3D packages like Maya for editing & re-importing back to Unity later as this way can streamline the process to support more existing high / low platforms.

Looking forward to hearing from you Sonrisa

Thanks & Regards,
Peter

Print this item

  Mobile Optimizations
Posted by: pstudios - 02-01-2018, 06:31 PM - Forum: Obi Fluid - Replies (9)

Hi, I love the fluid plugin and it works great on my computer. However, on my android device which is pretty new is struggling to get through the basics of my small scale fluid animation, I would appreciate it if anyone could tell me as many steps as possible to optimize the efficiency on mobile devices (im fine with a reduction in quality as i want my project to work on as many devices as possible) any and all tips would be greatly appreciated. Thanks!

Print this item

Exclamación ObiColliderGroup missing
Posted by: Wilbert - 02-01-2018, 03:06 PM - Forum: Obi Rope - Replies (1)

Just upgraded my project to ObiRope 3.2.
But in this version ObiColliderGroup is missing.

Now my project is messed up  Enfadado
- There is no ObiColliderGroup parameter in ObiSolver:[Image: view]
https://drive.google.com/file/d/1RRyZ-Lf...oI7Tg/view
- Pin constraints are gone
- Add Pin Constraint button does not work (clicking does nothing)
- Edit particles gives an error:
NullReferenceException: Object reference not set to an instance of an object
Obi.ObiParticleActorEditor.DrawParticles () (at Assets/_Tools/Obi/Editor/ObiParticleActorEditor.cs:332)
Obi.ObiParticleActorEditor.DrawActorInfo () (at Assets/_Tools/Obi/Editor/ObiParticleActorEditor.cs:598)
Obi.ObiParticleActorEditor.OnSceneGUI () (at Assets/_Tools/Obi/Editor/ObiParticleActorEditor.cs:262)

How do I fix this ?

Print this item

  Problem with Final IK
Posted by: Deschanna - 29-12-2017, 08:35 AM - Forum: Obi Cloth - Replies (15)

Hi!

I read 'somewhere' earlier, before buying Obi Cloth, that it should work with Final IK. However, I cannot get it to work.

I am running the solver in LateUpdate.

I have a character, wearing a sash, which I'm trying to animate with Obi Cloth. It works, but problematically. With no Final IK enabled, it works as should. 
However, when Final IK is enabled, the part of the sash that is tied around the character's waist and should stay under his armour, constantly jumps (shows) above the armour in parts. Sometimes more, sometimes less. And when the character is going down a hill, for example, the part that should stay in place shows above armour and noticeably jumps up and down. 

Umm... some idea? Thanks.

Best regards, Laura

Print this item

  scripting ropes with pin constraints & tethers
Posted by: phoberman - 26-12-2017, 07:43 PM - Forum: Obi Rope - Replies (6)

Hi –

I’m working on a scene made up of hanging chains of objects, each connected by a short rope: the first particle of each rope is pinned to an object at the top, and the last particle is pinned to an object at the bottom. The first object of the first rope is set to kinematic (to anchor the whole chain at the top). It’s all working pretty well, but I have a few questions.

The final scene will have lots of ropes; each chain contains about 6 ropes, and there will be more than 20 chains in total, so that means more than 100 ropes. Putting all of this together in the editor was impractical, so I’ve written a script (based on ObiRopeHelper.cs) to help automate the process. Script included below.

When the simulation starts, the rope springs like a rubber band that’s just been let go and then settles down. I'd like to have everything begin in a resting state (unmoving). In this thread: http://obi.virtualmethodstudio.com/forum...hp?tid=175 the solution suggested is disable the rope and wait for the next FixedUpdate before reenabling. I’ve tried to implement that in my script, but it doesn’t seem to be having any effect.

Next, I would like the ropes to be as non-elastic as possible. I realize that the recommended way of doing this is via tethers, but because my ropes aren’t fixed, tethers wouldn’t seem to be an option. However, in this thread: http://obi.virtualmethodstudio.com/forum....php?tid=6 there’s a method described in which the rope is fixed, tethers are generated, then the rope is unfixed. Once again, I’ve tried to implement this in my script, but it doesn’t seem to be having any effect.

I’ve therefore tried to set the rope length by using reduced values for stretchingScale (in ObiDistanceConstraints). I’m sure this isn’t ideal, but it basically seems to work (but maybe this is causing the initial rubber band behavior?)

Finally, I’ve found that each individual rope has to have its own dedicated solver; if I try to share a single solver across multiple ropes, Unity immediately crashes. I’m guessing this has something to do with removing and adding multiple pin constraints from the solver simultaneously/asynchronously? (Just a guess). Anyway, my question is whether there will be any problems (like a performance hit) by having upwards of 100 solvers in a single scene.


Code:
using UnityEngine;
using System.Collections;

namespace Obi {
    [RequireComponent(typeof(ObiRope))]
    [RequireComponent(typeof(ObiCatmullRomCurve))]
    [RequireComponent(typeof(ObiPinConstraints))]
    [RequireComponent(typeof(ObiDistanceConstraints))]
    [RequireComponent(typeof(ObiTetherConstraints))]

    public class ObiConnectorRope : MonoBehaviour {

        public ObiSolver solver;
        public ObiActor actor;
        
        public ObiRopeSection section;
        public Material material;
        
        public float ropeLength = 1.0f; // desired rope length
        public float uvYMult = 2.5f; // keep UVScale Y consistent across rope lengths
        
        public ObiCollider upperPinObject;
        public ObiCollider lowerPinObject;
        
        private Transform point1; // offset at top of object
        private Transform point2; // offset at bottom of object
        
        private ObiRope rope;
        private ObiCatmullRomCurve path;
        
        private ObiPinConstraints pinConstraints;
        private ObiPinConstraintBatch constraintsBatch;
        private ObiDistanceConstraints distanceConstraints;
    
        void Start () {
            
            actor.enabled = false;
            
            // move rope position to match upper pinned object
            transform.position = upperPinObject.transform.position;
            
            // Get all needed components and interconnect them:
            rope = GetComponent<ObiRope>();
            path = GetComponent<ObiCatmullRomCurve>();
            rope.Solver = solver;
            rope.ropePath = path;    
            rope.Section = section;
            GetComponent<MeshRenderer>().material = material;
            
            // use stretching scale to set approximate rope length & UVScale Y
            distanceConstraints = rope.GetComponent<ObiDistanceConstraints>();
            distanceConstraints.stretchingScale = (ropeLength * 0.14f) - 0.05f; // ad hoc formula
            rope.UVScale = new Vector2(1.0f, ropeLength * uvYMult);
            
            // register offsets
            point1 = upperPinObject.transform.Find("pinPointB").gameObject.transform;
            point2 = lowerPinObject.transform.Find("pinPointA").gameObject.transform;
            
            // Calculate rope start/end and direction in local space:
            Vector3 localStart = transform.InverseTransformPoint(upperPinObject.transform.position);
            Vector3 localEnd = transform.InverseTransformPoint(lowerPinObject.transform.position);
            Vector3 direction = (localEnd-localStart).normalized;
            // Add control points
            path.controlPoints.Add(localStart-direction);
            path.controlPoints.Add(localStart);
            path.controlPoints.Add(localEnd);
            path.controlPoints.Add(localEnd+direction);

            // Setup the simulation:
            StartCoroutine(Setup());
            
            // Wait for next FixedUpdate
            StartCoroutine(WaitOne());
            
            actor.enabled = true;
        }

        IEnumerator Setup(){
            
            // Generate particles and add them to solver:        
            yield return StartCoroutine(rope.GeneratePhysicRepresentationForMesh());
            
            rope.AddToSolver(null);
            
            // Generate tethers
            // Fix first particle:
            float tempMass = rope.invMasses[0];
            rope.invMasses[0] = 0;
            Oni.SetParticleInverseMasses(solver.OniSolver,new float[]{0},1,rope.particleIndices[0]);
            rope.GenerateTethers(ObiActor.TetherType.AnchorToFixed);
            // Unfix first particle:
            rope.invMasses[0] = tempMass;
            Oni.SetParticleInverseMasses(solver.OniSolver,new float[]{0},1,rope.particleIndices[0]);
            actor.PushDataToSolver(ParticleData.INV_MASSES);
            
            // Set pin constraints    
            pinConstraints = rope.GetComponent<ObiPinConstraints> ();
            constraintsBatch = (ObiPinConstraintBatch)pinConstraints.GetBatches() [0];
            pinConstraints.RemoveFromSolver(null);    
            // Add top pin constraint
            constraintsBatch.AddConstraint(rope.particleIndices[rope.particleIndices[0]], upperPinObject.GetComponent<ObiCollider>(), point1.localPosition, 0f);
            // Add bottom pin constraint
            constraintsBatch.AddConstraint(rope.particleIndices[rope.UsedParticles-1], lowerPinObject.GetComponent<ObiCollider>(), point2.localPosition, 0f);

            pinConstraints.AddToSolver(null);
            
            pinConstraints.PushDataToSolver();
        }    
        
        IEnumerator WaitOne(){
            yield return new WaitForFixedUpdate();
        }    
    }
}

Print this item