| Latest Threads |
Acessing SkinnedMeshRende...
Forum: Obi Softbody
Last Post: josemendez
1 hour ago
» Replies: 1
» Views: 27
|
Managing dynamic constrai...
Forum: General
Last Post: josemendez
3 hours ago
» Replies: 3
» Views: 474
|
Stop Cursor Removing Part...
Forum: Obi Rope
Last Post: MisterToot
Yesterday, 05:49 AM
» Replies: 2
» Views: 98
|
Partially connect to Skin...
Forum: Obi Cloth
Last Post: AnimaLunae
30-01-2026, 04:35 PM
» Replies: 0
» Views: 61
|
Runtime generated SDF
Forum: General
Last Post: josemendez
30-01-2026, 10:57 AM
» Replies: 6
» Views: 4,231
|
Simple Collision Debug Lo...
Forum: Obi Fluid
Last Post: josemendez
26-01-2026, 06:54 AM
» Replies: 1
» Views: 204
|
Stitcher breaks simulatio...
Forum: General
Last Post: Qriva0
23-01-2026, 12:47 PM
» Replies: 3
» Views: 2,017
|
(7.0.3) Updating skin con...
Forum: Obi Cloth
Last Post: josemendez
23-01-2026, 09:11 AM
» Replies: 3
» Views: 609
|
Extending rope by pulling...
Forum: Obi Rope
Last Post: trentthebaker
09-01-2026, 03:58 PM
» Replies: 0
» Views: 300
|
Emit rope like silly stri...
Forum: Obi Rope
Last Post: josemendez
09-01-2026, 09:17 AM
» Replies: 8
» Views: 1,228
|
|
|
| Acessing SkinnedMeshRenderer data |
|
Posted by: Eritar - 2 hours ago - Forum: Obi Softbody
- Replies (1)
|
 |
Hi!
I'm trying to test the Obi Softbody add-on, and I need to retrieve the mesh data from the SkinnedMeshRenderer.
In my current implementation (without softbody), I set three Graphics Buffers of position, normal and tangent streams of the SkinnedMeshRenderer, and then access their offsets.
However, when I try to skin the SMR with Softbody Skinner, I retrieve initial vertex data like it was in the viewport before the simulation.
As far as I understand, Softbody Skinner should update skinned mesh renderer buffers after a simulation tick, and it should work, but I'm obviously missing something.
Code: TryGetComponent<SkinnedMeshRenderer>(out var smr);
Mesh skinMesh = smr.sharedMesh;
using GraphicsBuffer skinPositionsBuffer = smr.GetVertexBuffer();
using GraphicsBuffer skinNormalsBuffer = smr.GetVertexBuffer();
using GraphicsBuffer skinTangentsBuffer = smr.GetVertexBuffer();
int[] skinPositionStrideOffset =
{
skinMesh.GetVertexBufferStride(positionStream),
skinMesh.GetVertexAttributeOffset(VertexAttribute.Position),
};
int[] skinNormalStrideOffset =
{
skinMesh.GetVertexBufferStride(normalStream),
skinMesh.GetVertexAttributeOffset(VertexAttribute.Normal),
};
int[] skinTangentStrideOffset =
{
skinMesh.GetVertexBufferStride(tangentStream),
skinMesh.GetVertexAttributeOffset(VertexAttribute.Tangent),
};
Thank you very much for your time!
|
|
|
| Stop Cursor Removing Particle Attatchment |
|
Posted by: MisterToot - 30-01-2026, 06:36 AM - Forum: Obi Rope
- Replies (2)
|
 |
Hello! as the title suggests I'd love to be able to block the cursor from reducing the size of a rope if it is about to remove a particle that is subject to a particle attatchment.
I have a starting rope blueprint & setup like this:
- static particle attatchment (start)
- rope cursor (pointing towards the start like this <-0)
- a dynamic particle attatchment (middle)
- another rope cursor (again, pointing towards the middle like this <-0)
- then some dynamic attatchments at the end that won't get affected because the cursors won't ever remove particles in that direction.
See screenshot attatched.
I'd love to block via code, the cursors from removing the particles attatched to the dynamic attatchments, and I feel like this is the sort of thing that might have already been solved
Thanks!
|
|
|
Simple Collision Debug Log |
|
Posted by: PortableAnswers - 25-01-2026, 05:38 PM - Forum: Obi Fluid
- Replies (1)
|
 |
Hello,
I am able to make fluid collide with 3D objects using the Obi Colliders, but I have yet to figure out how to get any data back from the collision itself.
Even just a Debug.Log("Foo") would be enough to get me in the right direction.
Here's the code snippet in the documentation that I first started messing around with:
Code: ObiColliderBase collider = ObiColliderWorld.GetInstance().colliderHandles[contact.bodyB].owner;
Any step-by-step instructions would be great. Thanks!
|
|
|
| (7.0.3) Updating skin constraints for noobs |
|
Posted by: CptnFabulous - 19-01-2026, 02:26 AM - Forum: Obi Cloth
- Replies (3)
|
 |
I’m trying to get cloth garments on a character model to behave looser without entirely slipping off, and from my research I think modifying the skin constraints will be the best solution. I’m following the documentation (https://obi.virtualmethodstudio.com/manu...aints.html) and these look like exactly the right settings I need to alter, but I’m having trouble understanding how to change them, since there are no clearly exposed properties or functions.
I had a look at the documentation for scripting constraints (https://obi.virtualmethodstudio.com/manu...aints.html), but I haven’t really figured out how to access specific settings. From what I can tell, constraint batches are created only when a particle is created with different settings, and they’re grouped into batches at runtime to limit the number of different settings in memory. But I don’t really know how to add new ones. For now I only need one set of constraints for the entire cloth actor, and they don’t really need to change after being generated (although if they can that might help with debugging). The cloth shapes are being generated procedurally from procedural meshes, so it needs to all work through code.
I looked at the example in that documentation (which is conveniently already for setting the skin constraints), and tried copying it and turning it into a standalone function with parameters instead of hardcoded values. But I got null errors when trying to retrieve the batches, so there didn’t seem to be values there to edit. I realised that the example code uses an ObiSkinnedCloth, whereas our current system just uses regular ObiCloth components, so I switched the cloth, renderer and mesh renderer components to the right ones. But now I'm getting an out of range error when trying to get the index offset and access the correct batches.
I’m sure I’m going about this completely the wrong way. Maybe I’m running this code at the wrong point during the generation, or I’m meant to modify values in the blueprint rather than the cloth itself. Any help would be greatly appreciated.
Thanks!
|
|
|
| Extending rope by pulling on cursor end |
|
Posted by: trentthebaker - 09-01-2026, 03:58 PM - Forum: Obi Rope
- No Replies
|
 |
Hi there,
I've recently been learning the ropes of Obi Rope and am very excited to work with it! I have a question that I haven't quite found a satisfying answer to. I have a rope which is attached to 2 rigidbodies with dynamic particle attachments. For testing, Body A is kinematic and Body B is not. I want to extend the rope when Body B is moving such that the rope is taut and needs more length to keep up- that is, Body B is pulling the rope out of the cursor (inside Body A), ideally with little resistance. I've attached a video to demo what I'm trying to achieve.
I've tried comparing CalculateLength() to restLength and adding the difference if it's positive, which seems to work in some situations, but there are false positives when applying force to Body B while there's still slack. My understanding is that the end of the rope is stretching to keep up with its pin making the calculated length greater than rest length, despite there being slack left to use. I only want this extending to happen when I would realistically expect the rope to be pulled at the cursor point. Writing now, I suppose there just has to be force applied to the line where Body A/the cursor is, there could be slack further up the line.
I believe this is a solvable problem, while searching the forums I found this demo: https://obi.virtualmethodstudio.com/foru...-4062.html
When the fishing line is cast out, there's no perceivable resistance, that's the sort of effect I'm hoping to achieve.
Afterwards, and this may be the same solution, I'd love to implement retracting as a means of force rather than distance/time, that is, if Body B is massive or has opposing force then it is harder to retract.
If there's any further clarification or code that would help explain I'm happy to share!
Thanks
I don't see my file attachment in the final post so here's a Google Drive link just in case: https://drive.google.com/file/d/12stx-FV...sp=sharing
|
|
|
| Emit rope like silly string |
|
Posted by: sacb0y - 06-01-2026, 01:50 PM - Forum: Obi Rope
- Replies (8)
|
 |
I'm trying to do an effect like silly string emitted from a cannon, I tried using growth speed but that doesn't seem right.
How can I get the rope to shoot out from a point?
|
|
|
| Managing dynamic constraints |
|
Posted by: Qriva0 - 23-12-2025, 10:40 AM - Forum: General
- Replies (3)
|
 |
Hi, I have several questions about creating constraints during runtime.
As far as I know constraints are stored in blueprints or directly in actor (pin).
Then those constraints are pushed to solver and copy is created and merged in solver.
There is mechanism to make constraints dirty, this causes constraints tobe rebuilt, by taking all actors constraints, however what about stitch constraints?
I can't see them stored in actors or blueprints, so is there only runtime representation? What if I marked stitch constraints as dirty, would that mean that all stitch constraints are cleared and cannot be rebuilt, because there is no blueprint/actor (original) copy?
Also what if I wanted to create some pin constraints during runtime via custom script and modify offsets every step? I want to avoid making constraints dirty every frame, but at the same time it does make sense to modify actor copy in case it's rebuilt, so should I modify both? How can I diffrentiate my own batch from all other solver batches to avoid dirtying?
|
|
|
| Following Seas - Made with Obi |
|
Posted by: MEPETAMINALS - 18-12-2025, 01:33 AM - Forum: Made with Obi
- Replies (1)
|
 |
Thought I'd post this as the game is now released. Received a lot of help from Jose Mendez over the past few years with a bunch of questions.
All sails, and the larger flags are all Obi 7. There's a smattering of ropes as well -- though it just wasn't performant to do full rigging setups with it.
Great asset, great dev.
|
|
|
|