GDonkey Posted March 28, 2020 Share Posted March 28, 2020 Hi there, A bit of a noob question so I apologise for that. I have a file attached with a basic particle system, connected to a copy to points, and a grid with a png image sequence as the particle geometry ( 12 frames long ). Everything is working well, except I cannot figure out how to start the image sequence on a per particle basis. All the particles start their animation on frame 10 simultaneously and new ones born after that just start with the last hold frame. I have this - " Star Sparkle_`padzero(5, clamp($F-10 ,1 , 12))`.png " in the texture field on my principled shader and this seems to give me a 10 frame offset, and it holds the first and last frame, instead of turning into a white grid, which is great. But how do I get each particles animation to start at it's birth or at an offset from it's birth time/age/frame ? I've included the required png sequence with the file. Thanks to anyone who can help me with this, it's making me feel very silly that I can't figure it out in over a week. Have a great day ! Sprite Particles.7z Quote Link to comment Share on other sites More sharing options...
GDonkey Posted April 4, 2020 Author Share Posted April 4, 2020 Pretty please ? Quote Link to comment Share on other sites More sharing options...
Noobini Posted April 4, 2020 Share Posted April 4, 2020 not saying i'm pretty but in your mat, texture instead of $F.....for the hell of it i put @nage....try it. Quote Link to comment Share on other sites More sharing options...
Noobini Posted April 4, 2020 Share Posted April 4, 2020 if that's what you want...don't blame me i just thought F### it...i'll try it...what have i got to lose ? Quote Link to comment Share on other sites More sharing options...
Noobini Posted April 4, 2020 Share Posted April 4, 2020 (edited) hmmm...it doesn't seem to 'grow' now. $F-@nage-10 seems to do something.... Edited April 4, 2020 by Noobini 1 Quote Link to comment Share on other sites More sharing options...
Atom Posted April 4, 2020 Share Posted April 4, 2020 (edited) At that point, you might want to consider how you are going to render them. That affects the final technique. You also might need to answer the question "what does my particle display after it displays the final frame?" Is it dead after 13 frames? If so, match the life of the particle to the frame count based upon $FPS. You might want to try instancing. Life set to 0.5 @24fps. Another thing to try, is to leverage the just_born group. Drop down a PopWrangle inside your popnetwork and assign the frame each particle is born to an attribute. i@frame_born = int(@Frame); Then you can use that value, later to know how to start counting from the beginning of the sequence. Edited April 4, 2020 by Atom 1 Quote Link to comment Share on other sites More sharing options...
GDonkey Posted April 5, 2020 Author Share Posted April 5, 2020 Noobini, Haha. Thanks for trying ! Atom, Thanks so much for taking the time to reply ! I had to re-read your reply a few times as this is all quite new to me and I wanted to really try to understand everything. But I think I've made a bit of headway. Quote You also might need to answer the question "what does my particle display after it displays the final frame?" Is it dead after 13 frames? If so, match the life of the particle to the frame count based upon $FPS. What I was thinking of doing is having the first and last frames be empty drawings, and then use clamp to decide on what frame after birth the animation should trigger. Then alternatively, having it start on birth frame and play then die after last frame. Both scenarios would be useful to me. In my file I've not put empty drawings yet so that I can see what I'm doing. Quote You might want to try instancing. Life set to 0.5 @24fps. Ok, 0.5 at 24fps for a 12 frame sequence makes perfect sense. Instancing is new to me in Houdini but I think I figured that part out after looking at the help a bit. So I'm not using a copy to points at all anymore, and rather have 2 geo nodes, one with the grid/particle geo, and another with the pop network. I put a pop instance node and told it to point to the grid geo node. Then I put an instance node at the sop level. This gives me the same result as I was getting with the copy to points but instanced. Thanks ! I learned something new I put a pop wrangle with " i@frame_born = int(@Frame); " . I'm not very good with VEX, but from what I can see in the geo spreadsheet, you are creating an attribute called frame_born that is tied to the frame number on every point. This is the part where I get stuck. I see how it is useful to have this attribute/counter but I don't understand now how to use the attribute to start the sequence for each point at birth. We're in lockdown here now and I only have access to apprentice at home, so I'm uploading the working file here of where I'm at. When you have the time, I would appreciate another poke in the right direction Have a great day ! Sprite Particles Instance.7z Quote Link to comment Share on other sites More sharing options...
Atom Posted April 5, 2020 Share Posted April 5, 2020 (edited) I messed around with your scene, yesterday. In my settings I decided to ping pong the frames back and forth until the particle dies, this way you can extend the life of the particle. So you may have to revisit the frame counting code inside the wrangle to implement a one-shot die setup. I didn't get the file instancing fully working, but local object instancing is in place. I basically made 13 grids and a point wrangle constructs a path to each one based upon what frame it decided it needs to display. ap_rm_lops_sequence_particles.hiplc Edited April 5, 2020 by Atom Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.