Jump to content

jed

Limited Member
  • Posts

    2,189
  • Joined

  • Last visited

  • Days Won

    66

Everything posted by jed

  1. jed

    Pinball bumper

    I'd have the bumper hidden, so the increase in size isn't apparent. This file uses a condition node with 2 radii, 0 or 1 passes the value on the input ports. bumper2.c4d here's one I made a few years ago - don't ask how it works, I've forgotten even though I left myself notes 😀 The sounds should be embedded and (on Windows) CTRL and ALT work the flippers - pinball.c4d needs a fairly fast pc + decent gfx, but turning off shadows might help in that respect.
  2. Because it just iterates through the list, you can add or remove objects without having to re-write the XPresso.
  3. @Jops you can just use 1 memory node + iteration position_delay 2.c4d has sliders 😀
  4. Thanks for the comment @IgorI'll have a think about videos. BTW I used this delay effector idea from Tim at HelloLuxx to make the platform/spring go boing I added a condition so it only went boing at the top 😀
  5. More toy cars adventures. This one has a spring....
  6. Files > recent files should show the path to recently used files. I have several hard drives and c4d files going back years, so I often lose stuff. I use the free UltraSearch to find files. You can look for folders or files (or both) by name or partial name. If I'm really stuck I search for *.c4d (with all drives checked). This finds all C4D files, then I click to sort by date to find the most recent. https://www.jam-software.com/ultrasearch BTW - this is for Windows.
  7. jed

    Xpresso Increment Node

    You mean this pie ? re @noseman and pi degrees are defined as 1/360 of a full rotation, but radians are defined by the arc radius malarkey - not by the division of a circle, so radian does not "include pi". The reason 360 deg = 2 pi radian is due to the definition of pi ie C = 2 pi R. ...changes username to Mr Pedantic...
  8. jed

    Xpresso Increment Node

    @noseman I've actually seen solutions to the car wheel problem using the degree node twice, and bringing 360 into things 😁 For any radian noobs - a radian is the angle at the centre of a circle when the arc equals the radius. In this pic the red X is distance travelled by the car. Solving for A gives angle = distance / radius pi is defined by circumference = 2 pi R, but since we are not bothered about complete wheel rotations, pi doesn't really come into this calculation. Radian does not 'include' pi IMHO.
  9. jed

    Xpresso Increment Node

    Interesting use of Tracer @noseman - no need to use pi twice though...
  10. jed

    Xpresso Increment Node

    You can add incrementally by reading the current rotation value and adding to it every frame wheel.c4d distance is always positive, so only works for the car going forwards. There's some clever code written by Base 80 that allows for forward and reverse. You make your wheel a child of the Base80 wheel eg wheel2.c4d BaseWheel1.7.c4d adjust the Base80 wheel to same radius as the real wheel. Only move Base80 wheel by parent null.
  11. The problem for anyone starting out wtih C4D Python is that the MAXON Python site is IMHO very complex and intimidating (maybe I should be generous and say 'very thorough' 😀 ), whilst most YouTube Python tutorials are about Python in general - not relating to C4D. Cairyn's series of blogs fills the gap between those 2 extremes, in that it's about learning to use Python in C4D. I've just read the 1st 8 posts and I'd say it's a good place to start for C4D users with no coding experience. Recommended.
  12. jed

    Lego Plug-in

    I think this is the d/l link leads to this DropBox there's a lib4d file and csc file, but I'm not sure what the csc is for. Google translate
  13. Swap that object node for a math add, and keyframe the amount added. You can tweak the slope etc in dopesheet. I'm not sure what the object node is supposed to do...
  14. If you generate the Z by addition instead of multiplication, the amount added is the 'speed' which can slow down, stop, restart etc. I have a python node that I use a lot for rotation, speed etc. Here's the all XP, and the python node versions timeline_xp.c4d timeline_py.c4d def main(): global Output1 frame = doc.GetTime().GetFrame(doc.GetFps()) if frame == 0: Output1 = 0 else: Output1 += speed * multiplier you could use a trig node for the rangemap sine wave
  15. Alberto y Lost Trios Paranoias - Kill, on YouTube here 70's comedy punk band...
  16. I think this does it def main(): control = doc.SearchObject('control') top = doc.SearchObject('top') text = doc.SearchObject('MoText') delay = control[c4d.ID_USERDATA,1] track = control[c4d.ID_USERDATA,4] track -= 1 sn = top.GetChildren() count = len(sn) titles = ['No Track', 'Albertos - Kill', 'Ottawan - DISCO', 'Police - Roxanne'] for a in range(count): t = sn[a].GetFirstCTrack() if a == track: t[c4d.CID_SOUND_ONOFF] = 1 t[c4d.CID_SOUND_START] = c4d.BaseTime(delay) else: t[c4d.CID_SOUND_ONOFF] = 0 t[c4d.CID_SOUND_START] = c4d.BaseTime(0) text[c4d.PRIM_TEXT_TEXT] = titles[track + 1] I couldn't seem to get the int cycle to accept -1 as NONE, so I subtract 1 from track. The 'if a == track' misses it because range starts at 0, so sets all tracks to disable. Then added 1 to track for text readout.
  17. What data type is the track name ?
  18. you can also replace the RHS of t[c4d.CID_SOUND_START] = c4d.BaseTime(delay) with the time user data value
  19. I'm guessing that although the time user data shows frames, it's converting that value into a c4d base time unit - similar to when you dial in degrees but XP converts them to radians. If you want to use frames as time, make an integer user data and convert it to time as per 1st file delay_secs = delay_frames / doc.GetFps() you could just type in the fps, but beware integer division 10 / 30 = 0 10 / 30.0 = 0.333 etc in 1st file, input port was real, so integer frames input was converted to float.
  20. oops cross posting - can you show the code for the time problem.
  21. Python nodes and tags have their own advantages. If you have a lot of objects to read from and write to, but hardly any number crunching, a python node is quicker to set up - just click some wires as opposed to typing many doc.SearchObject(), ditto writing data etc in a tag. One little glitch with python nodes, is that sometimes a node doesn't work because there's no output port connected. I've never managed to isolate the actual conditions when this happens, but I usually have a redundant output connected 'just in case'. In the 1st file, there was a remark 'leave this connected' - force of habit. When editing python, a lot of people click compile and if it says 'no errors' think that's it. You should also check menu > script > console for error messages. In the dropbox file, if you try to select more tracks than are loaded you see this in console the usual fix for that is 'if xyz : return'
  22. I've never used takes. Is that dropbox file something like what you had in mind ?
  23. I tried dragging 'use sound' into the python window and it seems that value is accessible. If you load several tracks, you could select which one to play, and maybe output the corresponding filename eg from a list of strings. sn = doc.SearchObject('soundnull') sn2 = doc.SearchObject('soundnull.1') t = sn.GetFirstCTrack() t2 = sn2.GetFirstCTrack() t[c4d.CID_SOUND_ONOFF] = 0 # 1 = play t2[c4d.CID_SOUND_ONOFF] = 1 edit - something like this dropbox
×
×
  • Create New...