Search Forums

(Advanced Search)

Latest Threads
Can softbody not deform b...
Forum: Obi Softbody
Last Post: josemendez
Yesterday, 03:53 PM
» Replies: 1
» Views: 16
Broken scripts with updat...
Forum: Obi Rope
Last Post: hariedo
23-12-2024, 05:44 PM
» Replies: 2
» Views: 175
Garment explodes on Andro...
Forum: Obi Cloth
Last Post: CptnFabulous
19-12-2024, 07:16 AM
» Replies: 4
» Views: 696
Calculating and Reproduci...
Forum: Obi Fluid
Last Post: ZacharyP
18-12-2024, 05:49 PM
» Replies: 2
» Views: 802
Null Reference, actor not...
Forum: Obi Rope
Last Post: josemendez
13-12-2024, 12:39 PM
» Replies: 1
» Views: 197
Issue with Grasping ObiRo...
Forum: Obi Rope
Last Post: josemendez
12-12-2024, 12:00 PM
» Replies: 5
» Views: 526
Changing extruded rendere...
Forum: Obi Rope
Last Post: aderae
10-12-2024, 07:35 PM
» Replies: 2
» Views: 275
Baking a rope is causing ...
Forum: Obi Rope
Last Post: josemendez
10-12-2024, 11:06 AM
» Replies: 6
» Views: 697
Barrier belt - changing l...
Forum: Obi Rope
Last Post: josemendez
10-12-2024, 10:42 AM
» Replies: 1
» Views: 248
Path editor gizmo's appea...
Forum: Obi Rope
Last Post: josemendez
10-12-2024, 09:50 AM
» Replies: 1
» Views: 241

 
  BackHome
Posted by: usernameHed - 22-06-2018, 03:04 PM - Forum: Made with Obi - No Replies

Hello ! I would thank you, obi rope creator.
We have managed to create in 3 month, a physics platformer 2d game with 2 players, connected with... a stretchy/relax/shrinking/expandable rope !

here the itch.io:
https://usernamehed.itch.io/backhome


The difficult part of our project was: the physics... Every tiny change (in jump height, rope tensity), was game breaking.
The elasticity of the rope made the game fun, but very hard to make, in terme of having a good gameplay feeling. (don't frustrate the players, but don't let them to much power when moving).
Also a balancing move was difficule to program (make a pendulum movement)

If interested, you can see my post on my portfolio, you can see every video of the early prototypes (and even a video at then end explaining a little bit how I have overcome some gameplay problem with the rope):
http://www.belfiore.ovh/create/portfolio-rhan.php

PS: here a little exemple of what i had achieved in the past when creating rope...
https://www.youtube.com/watch?v=4u3Ewu6XIxU
It was good, but very hard to program a good rope. Nothing like Obi Rope !

Thanks you again, see you !

Print this item

  Stop/restart emission, force to particle
Posted by: sazatai - 19-06-2018, 04:09 AM - Forum: Obi Fluid - Replies (2)

Please excuse for my question.

I read the document and get the particle rendered as fluid. really nice.
Now I would like to add following function but can't find how to do that.
Could you tell me how to do that? or already any script are exsisting?

- stop and restart particle emission
- change the gravity of all particles in runtime

Thank you in advance for your help.

Print this item

  Access violation crash!
Posted by: M. Hanssen - 18-06-2018, 12:09 PM - Forum: General - Replies (8)

We have a setup with 2 rope pulley systems where some targets are spawned dynamically, get pin constraints on the rope and get detached again when hit.
We get an access violation from libOni.dll on a regular base. Sadly the issue cannot be reproduced, but happens at random.

The crash exception states:

Quote:libOni.dll caused an Access Violation (0xc0000005) in module libOni.dll at 0033:3ea5f48b.

The code we use to attach and detach pinpoint constraints is:

Code:
public override T Spawn<T>(WorldObject worldObject)
   {
       T genericSpawnedObject = base.Spawn<T>(worldObject);
       HitablePulleyWorldObject spawnedObject = genericSpawnedObject as HitablePulleyWorldObject;
       if (spawnedObject != null)
       {
           ObiPinConstraintBatch batch = (ObiPinConstraintBatch) PinConstraints.GetFirstBatch();
           if (batch != null)
           {
               PinConstraints.RemoveFromSolver(null);
               int index = GetClosestParticleIndex();
               if (index >= 0)
               {
                   batch.AddConstraint(index, spawnedObject.GetComponentInChildren<ObiCollider>(), Vector3.zero, 1);
                   spawnedObject.RopeParticleIndex = index;
                   spawnedObject.PinConstraints = PinConstraints;
               }
               PinConstraints.AddToSolver(null);
               PinConstraints.PushDataToSolver();
           }
       }
       return genericSpawnedObject;
   }

   private int GetClosestParticleIndex()
   {
       int result = -1;

       float closestDistance = float.MaxValue;

       for (int i = 0; i < Rope.invMasses.Length; i++)
       {
           if (Rope.invMasses[i] > 0)
           {
               float distance = Vector3.Distance(Rope.GetParticlePosition(i), transform.position);
               if (distance < closestDistance)
               {
                   closestDistance = distance;
                   result = i;
               }
           }
       }
       return result;
   }


Code:
private void DetachFromRope()
   {
       ObiPinConstraintBatch batch = PinConstraints.GetFirstBatch();
       if (batch != null && RopeParticleIndex < batch.ConstraintCount)
       {
           PinConstraints.RemoveFromSolver(null);
           batch.RemoveConstraint(RopeParticleIndex);
           PinConstraints.AddToSolver(null);
           PinConstraints.PushDataToSolver();
       }
       Object.Destroy(GetComponent<ObiCollider>());
   }

The .dmp file link is: https://we.tl/nJRKIzrFSm, I really hope you can help us fix this issue!

Print this item

Pregunta how to simulator paper?
Posted by: phields - 18-06-2018, 09:43 AM - Forum: Obi Cloth - Replies (5)

Hello,
I'm looking for some way to simulator the cloth like a piece of paper.

Which Constraints should I use?
Thank you!

Print this item

  Problems extending rope
Posted by: Butter1484 - 16-06-2018, 02:28 AM - Forum: Obi Rope - Replies (7)

I recently started prototyping for a project I would like to work on and needed ropes and chains so I purchased ObiRope. I looked at the Crane sample and read the documentation on extending the rope from a cursor, but I am having some difficulty getting it to work. From what I understood from the documentation, I need to add an Obi Rope Cursor component and make sure Obi Rope has Pooled Particles. I have set the Pooled Particles to various values but it does not change how far I can extend the rope. It always changes itself to be between 0 and 20 when I start to extend or retract the rope. I'm not sure if I missed something or if it just is not behaving like it should be. I am using Unity 2018.1.4f1 and Obi Rope 3.5

Print this item

Corazón Fluid is lost when running on iPhone
Posted by: cowill - 15-06-2018, 09:56 AM - Forum: Obi Fluid - Replies (2)

Hi, the scenes worked well in editor, but when I built it for iOS project, and run it on iPhone, all the fluid was lost.  Any help? Thanks.


Using obi fluid 3.4 , Unity 2017.3.1, iOS 11.3.1


Here are the logs from xcode:

Code:
2018-06-15 16:50:08.228383+0800 test[18079:7033551] [DYMTLInitPlatform] platform initialization successful
2018-06-15 16:50:08.273832+0800 test[18079:7033417] -> registered mono modules 0x105e55590
2018-06-15 16:50:08.450612+0800 test[18079:7033417] [Accessibility] ****************** Loading GAX Client Bundle ****************
-> applicationDidFinishLaunching()
2018-06-15 16:50:08.665330+0800 test[18079:7033417] Metal GPU Frame Capture Enabled
2018-06-15 16:50:08.666675+0800 test[18079:7033417] Metal API Validation Disabled
-> applicationDidBecomeActive()
Renderer: Apple A11 GPU
Vendor:   Apple Inc.
Version:  OpenGL ES 2.0 Metal - 52.3.2
GLES:     2
GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_vertex_array_object GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_draw_instanced GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_pvrtc_sRGB GL_EXT_read_format_bgra GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch GL_EXT_shader_texture_lod GL_EXT_shadow_samplers GL_EXT_sRGB GL_EXT_texture_filter_anisotropic GL_EXT_texture_rg GL_EXT_texture_storage GL_APPLE_clip_distance GL_APPLE_color_buffer_packed_float GL_APPLE_copy_texture_levels GL_APPLE_framebuffer_multisample GL_APPLE_rgb_422 GL_APPLE_sync GL_APPLE_texture_format_BGRA8888 GL_APPLE_texture_max_level GL_APPLE_texture_packed_float GL_IMG_r
ead_format GL_IMG_texture_compression_pvrtc
OPENGL LOG: Creating OpenGL ES 2.0 graphics device ; Context level  <OpenGL ES 2.0> ; Context handle -738010944
Initialize engine version: 2017.3.1f1 (fc1d3344e6ea)
WARNING: 0:4: extension 'GL_EXT_frag_depth' is not supported
ERROR: 0:38: Use of undeclared identifier 'gl_FragDepthEXT'

Note: Creation of internal variant of shader 'Hidden/Internal-MotionVectors' failed.
WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Pass '' has no vertex shader
WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Setting to default shader.
WARNING: Shader Unsupported: 'Hidden/BlitToDepth' - Pass '' has no vertex shader
WARNING: Shader Unsupported: 'Hidden/BlitToDepth' - Setting to default shader.
WARNING: Shader Unsupported: 'Hidden/BlitToDepth_MSAA' - Pass '' has no vertex shader
WARNING: Shader Unsupported: 'Hidden/BlitToDepth_MSAA' - Setting to default shader.
WARNING: 0:4: extension 'GL_EXT_frag_depth' is not supported
ERROR: 0:14: Use of undeclared identifier 'gl_FragDepthEXT'

Note: Creation of internal variant of shader 'Hidden/BlitCopyWithDepth' failed.
WARNING: Shader Unsupported: 'Hidden/BlitCopyWithDepth' - Pass '' has no vertex shader
WARNING: Shader Unsupported: 'Hidden/BlitCopyWithDepth' - Setting to default shader.
WARNING: Shader Unsupported: 'Obi/Particles' - Pass 'PARTICLEFWDBASE' has no vertex shader
WARNING: Shader Unsupported: 'Obi/Particles' - Pass 'SHADOWCASTER' has no vertex shader
WARNING: Shader Unsupported: 'Obi/Particles' - All passes removed
WARNING: 0:6: extension 'GL_EXT_frag_depth' is not supported
WARNING: 0:79: Overflow in implicit constant conversion, minimum range for lowp float is (-2,2)
ERROR: 0:213: Use of undeclared identifier 'gl_FragDepthEXT'

Note: Creation of internal variant of shader 'Obi/Fluid/DielectricFluid' failed.
WARNING: Shader Unsupported: 'Obi/Fluid/DielectricFluid' - Pass 'DIELECTRICFLUID' has no vertex shader
WARNING: Shader Unsupported: 'Obi/Fluid/DielectricFluid' - All passes removed
ERROR: Shader Shader is not supported on this GPU (none of subshaders/fallbacks are suitable)WARNING: Shader Unsupported: 'Obi/Fluid/DielectricFluid' - Setting to default shader.
WARNING: Shader Unsupported: 'Obi/Fluid/Colors/FluidColorsBlend' - Pass 'FLUIDCOLORS' has no vertex shader
Setting up 1 worker threads for Enlighten.
 Thread -> id: 16c3f7000 -> priority: 1
UnloadTime: 5.650791 ms
WARNING: Shader Unsupported: 'Hidden/FluidThickness' - Pass 'FLUIDTHICKNESS' has no vertex shader
Obi Fluid Renderer not supported in this platform.
Obi.ObiFluidRenderer:Setup()
Obi.ObiBaseFluidRenderer:OnPreRender()

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

ArgumentNullException: Argument cannot be null.
Parameter name: material
 at UnityEngine.Rendering.CommandBuffer.Internal_DrawMesh (UnityEngine.Mesh mesh, Matrix4x4 matrix, UnityEngine.Material material, Int32 submeshIndex, Int32 shaderPass, UnityEngine.MaterialPropertyBlock properties) [0x00000] in <filename unknown>:0
 at UnityEngine.Rendering.CommandBuffer.DrawMesh (UnityEngine.Mesh mesh, Matrix4x4 matrix, UnityEngine.Material material, Int32 submeshIndex, Int32 shaderPass) [0x00000] in <filename unknown>:0
 at Obi.ObiFluidRenderer.UpdateFluidRenderingCommandBuffer () [0x00000] in <filename unknown>:0
 at Obi.ObiBaseFluidRenderer.OnPreRender () [0x00000] in <filename unknown>:0

(Filename: currently not available on il2cpp Line: -1)

There is an error saying material cannot be null, but I could not figure out how to fix it.

Print this item

  Is there a way to fix particles position after changing them?
Posted by: MadMin - 15-06-2018, 04:04 AM - Forum: Obi Cloth - Replies (1)

Hi,

I tried to apply some change to the particles  in a skinned mesh using "PushDataToSolver(ParticleData.POSITIONS)" , it worked well in that frame, but would recover to initial positions in the next frame. 

Is there a way to keep the change? I just want to modify the shape of  some part of the  model  with the rest particles  being simulated.  

Thanks in advance!

Print this item

Bug Problems with pin constraints
Posted by: fahyc - 13-06-2018, 09:08 PM - Forum: Obi Rope - Replies (2)

I'd say I'm a somewhat experienced Obi user, but I've been having a lot of trouble setting up one of my objects with Obi. It is a single prefab with multiple rigidbodies that are connected with multiple ropes using pin constraints on each end. They all use a single solver. I'm using obi rope 3.4 and unity version 2017.3.1f1. So I have a bug report, a question, and a comment. 

First, there seems to be some sort of dummy particle on these ropes at the origin. Whenever I try to pin the particle at the origin of the rope, (local position 0,0,0) the particle will just not have the pin reference when I hit play. It will be back when I hit stop. I figured out that to fix this I need to simulate the rope for a few steps, select the particle at the origin end of the rope then, and then reset the rope and apply pin constraint changes to that previously selected particle. 

Second, it seems like some pin constraints are just ignored by the solver. When I hit play they will still be there in the inspector, and if I check visualize the blue dotted line will connect to the correct spot on the object, but the rope just acts as if it isn't there. The pin constraint on the other end of the rope still works fine. This is one I haven't found a reliable workaround for. Sometimes creating a new rope from scratch works. I think breaking the prefab instance and then re-applying worked once for this bug as well, but it may have just been the previous bug and I know it isn't a reliable solution. Do you have any insight about what might cause this to happen?

Finally, and this is more of a comment, I'm not a fan of your lack of error messages. For example I see in your Kanban that you have been planning to add support for multiple colliders since last October. The fact that you didn't support that was news to me when I finally stumbled on the board after hours of tinkering trying to figure out why my object was exploding and crashing unity. I'm sure you'd get a lot fewer irritable developers complaining about ease of use if the black box sometimes explained what was going wrong.


Oh, one more thing, when I simulate the rope in edit mode (cool feature by the way) it almost always ends up either crashing unity or freezing it after a few seconds. I can step through it without problems - just the continuous playing that seems to be the issue.

Print this item

Sonrisa Instantiate from Prefab - Each end into position
Posted by: Jerth - 12-06-2018, 05:55 PM - Forum: Obi Rope - Replies (3)

Hey feel free to send me to other places to do more reading. Or re-reading. I may have missed the answer elsewhere! But I have been struggling for a week now.

I have a similar goal to the user in this thread although I'm not getting a flat crash. Sometimes I get a performance bog down and THEN crash... Anyway. 

Idea  TL;DR I am simply trying to spawn a rope from a prefab, in precise position, but it keeps tearing.

Huh The Problem, longer version: 

  • I have prefab of a rope just the way I like it. Would rather not generate the rope from code (using the stuff in the Helper script). Anyway, it is in a gameobject with its own solver. 
  • And most importantly, this prefab rope has two gameobject children: call them BlockA and BlockB. These blocks represent the start and end of the rope. Each particle tip of the rope is constrained to their blocks. So far so straightforward.
  • The idea is... tie TWO objects together easily. By attaching / childing the blocks to those objects. I can use the ObiCursor to changelength no problem.
  • In other words... I aim to create a function that accepts two vector3 positions and then creates an appropriately sized rope between them. Or in other words again, imagine two objects floating around, but then when the user presses SPACEBAR the two objects have the prefab rope spawned between them, each with a Block childed' to it.

Ángel
  1. First question: What do I need to watch out for? Surely connecting two objects at runtime is a somewhat common application of Obi Rope.
Spawning a rope prefab connecting two objects (mostly by managing Gameobject block ends) has proven difficult! I mean, I have learned in these forums (or, Taiga forums) I have to disable the actor to teleport rope. OK. And at one point I crashed my computer with one batch of code - and no, it wasn't using any WHILE loops  Triste  I think it was partly because I tried turning TEARABLE = false. But that's not the only reason my system bugged out I'm sure. It's not a parent/Child feedback thing either I don't think; because the Blocks do not REMAIN children in my code - they are parented away to OTHER objects. So they shouldn't be moving with the prefab anymore - which would move the rope - which would move the transform and cause vicious feedback I'm sure...

Anyway. I do think part of the problem is that I transform the ends of the rope in just a couple frames. I mean, I have to do this because I want the rope to spawn apparently instantaneously. Unfortunately right now I do this: (a) Spawn the rope in approximately the right space, but then (b) Quickly teleport the edges into position, and then the rope TEARS every time.

So...
      
     2. Second Question: Suppose I'm doing everything else right. But my rope is indeed being torn by the act of transforming the blocks to which its ends are constrained... is there another way to get each end immediately into their proper position? For that matter, I may need to iterate through each particle and specify its location - so the whole thing is in position... Is that it?

PS.
If you can see the picture attached, that might help. Note that the final position of the rope might mean using the ObiCursor real quick too. Because the desired length might be longer or shorter. But again, getting the correct length has not been much of a problem for me.
   

Any help would be appreciated.

Print this item

  Unity 2017 OBI Fluid and Leap Motion Hand Controller
Posted by: FlorianP - 08-06-2018, 11:04 AM - Forum: Obi Fluid - Replies (3)

Hi everyone,
I have bought the OBI Fluid Package on the AssetStore and it works pretty well with the example scenes. Now I want to add my Leap Motion Hand Controller to the scene, to interact with the Fluid Emitter.

I added a box collider to the hands and recreated the FaucetAndBucket-Example of the bucket. So I added also an rigidbody, obi collider and so on. But there is no collision with the hands.

I hope you can give me some advice to achieve my goal.



Thx in Advance
Florian P.

Print this item