PDA

View Full Version : Grease pencil tool for XSI ?


Nightwalker
02-20-2008, 10:05 AM
Some of you might be familliar with this little script from jason sheifler :

http://www.jonhandhisdog.com/shh-life-er/?page_id=169

There is also a video tut showing it in action:

http://jonhandhisdog.com/movies/js_greasePencil_movie.zip

It as aslo been transfered to max in no time :

http://forums.cgsociety.org/showthread.php?f=98&t=327287&highlight=grease+pencil

And if you search a little you can see it as been asked a few times for XSI but nobody with the required scripting skills seems to be interessed.... :frown:

So... would it be dificult to implement ? Were to start ? And will it work in modtool ?:whistling:

SheepFactory
02-20-2008, 12:50 PM
Grease pencil is great but I personally hated how it draws in curves and you can only draw in viewports.

I would much recommend annotate pro:

www.annotatepro.com

There is a 30 day trial there and the app costs like $19. It is one of the best purchases I made.

Hope this helps.
-A

Nightwalker
02-20-2008, 12:55 PM
Thank's i'll try that at home, but it doesn't seem to play an animation and help you with timming as with posing, does-it ?

Squid
02-20-2008, 03:07 PM
I wrote a grease pencil a while ago but i was never happy with it (it used curves like Jason's).

A proper version has been on the cards for a while.

To answer your questions : i can guarantee it won't work on mod tool.
(where to start)
I'm starting with c#/gdi but real coders will be starting with the cdh/graphicsSequencer.
(is it difficult)
it is technically known as a 'bit of a bugger'

:ninja:

kim aldis
02-20-2008, 04:38 PM
I had a stab at one too, quite a while back. What I wanted to do was to use the sketch curve tool to draw curves, make each one drawn animated visible only on the current frame. There was no command to sketch curves in the SDK so it died a death. It would be nice if a sketch curve command could be exposed.

tuna
02-20-2008, 04:51 PM
A proper version has been on the cards for a while.

Haha, I'll say. :wink:

It'd also be nice for this sort of drawing functionality to be built into Flipbook (like you can in FCheck), although this obviously just can't be scripted in.

SheepFactory
02-20-2008, 06:37 PM
Thank's i'll try that at home, but it doesn't seem to play an animation and help you with timming as with posing, does-it ?

Yes it can be used to check your spacing and do quick scribbles on top of your viewport to help you with your posing. the timing you can always check in the viewport anyway.

Squid
02-20-2008, 08:09 PM
I had a stab at one too, quite a while back. What I wanted to do was to use the sketch curve tool to draw curves, make each one drawn animated visible only on the current frame. There was no command to sketch curves in the SDK so it died a death. It would be nice if a sketch curve command could be exposed.

That was my problem too. i ended up hooking the mouse, projecting to the cam plane then building a curve from that data. messy, unintuitive and my anti virus software really hated a global mouse hook for some strange reason.


Haha, I'll say. :wink:

:innocent:

alanf
02-21-2008, 03:51 AM
As a potential workaround, you can have a plane with an imageclip to which you feed a Paint clip. These can be painted on a per-frame basis and are saved as-you-go. (Paintclips support tablet pens, too.)

I suppose you could even go ahead and draw 1 particle and have it on a big sprite that always faces you.

The only major problem, which I never figured out, is how to insert an in-between frame between existing ones.

-- Alan

Nightwalker
02-21-2008, 06:51 AM
Jason explains at cgtalk "the script for maya that I wrote is a pretty nasty hack.. basically I'm creating nurbs planes which are parented to the camera that are made "live" which can be drawn on with a curve tool.

So when you add a "draw frame", it creates a nurbs plane, parents it to the camera, sets it live, and then puts you in the pencil tool.

The nifty bit, though, is making it so onion skinning works (just templating the previous and next frames) and allowing you to modify the timing of your animation quickly by moving keys around in the text scroll list."

Sorry for the noob question but why can't we hack something similar using planes and the sketch tool ?

SheepFactory: thank's, it's not what I was looking for exactly but it does come in handy for several things :smile:.

thiago
02-21-2008, 08:04 AM
I had a stab at one too, quite a while back. What I wanted to do was to use the sketch curve tool to draw curves, make each one drawn animated visible only on the current frame. There was no command to sketch curves in the SDK so it died a death. It would be nice if a sketch curve command could be exposed.


hey Kim, you mean the sketch command or you want something else to manipulate points?

The sketch command is available trough commands like this:
oCurve = Application.Commands("Sketch Curve Tool").Execute();I'm not sure if this thing return something because those Commands() are not as documented as it should... but you can do the basic which is activate it at least :P

Squid
02-21-2008, 11:56 AM
If it doesn't return anything (it doesn't) how do you manipulate the curve once it's created ?

events spring (sprang ) to mind. binding an siOnObjectAdded to an switch on the grease pencil ui would seem to work well.

until the animator minimises the gp ui (forgetting to switch it off) and starts to draw curves..now you are manipulating his curves as well as your own.

If your plug-in fundamentals are built on such shaky ground then it just becomes one big breakable nightmare.

----------------------------
I'm sure i have the plug-in somewhere, I'll dig it out and post it up.
(for general merriment)

kim aldis
02-21-2008, 04:16 PM
Sorry for the noob question but why can't we hack something similar using planes and the sketch tool ?

there's no command to kick off the sketch tool

thiago
02-21-2008, 04:38 PM
So the main problem is that Application.Commands("Sketch Curve Tool").Execute(); doesn't return the new curve object, is that it?

Lets suppose this command return the new curve object, than your script could mark it visibility, rename it and do all the necessary stuff to keep track of what to show in which frame etc...

Another way would be make a layer or a group and trow the last created object in there so your plugin cloud keep track of what is there... but still it would be really hard to manipulate it this way... sure it would become a nightmare.

I know that some commands return values so should be simple to Softimage to include a return value for this command... no?

thiago
02-21-2008, 04:46 PM
there's no command to kick off the sketch tool

hey Kim, is can kick of the Sketch Tool executing it from Command() as I posted before, the problem is how to manipulate this thing since this command doesn't return anything so it's hard to manipulate this, isn't it?
I'm just starting with XSI SDK so I don't what would be another way.

kim aldis
02-21-2008, 06:32 PM
It was a good while ago when I tried this, at the time there was no command logged for the sketch curve tool, good to see there's one now.

does it work if you just pull selection(0)? new objects are usually selected.

Serguei
02-21-2008, 06:53 PM
It does indeed select the newly created curve but to pull the selection you would have to pause the script for the duration of the sketching process, can't seems to think of a way to do it of the top of my head.

cgisims
02-22-2008, 02:41 PM
I'm not a programmer, but would you guys be able to use the built in paint engine used in the compositor/fx piece of XSI? It seems that if you could it would be a lot more artist friendly than using curves. I've used Jason Schleifer's tool in Maya and like he says, it's a hack. It works but it doesn't offer a lot of controls and options to the artist. It would still be cool to have for XSI, but having actual painting brushes and options would be extra cool.

thiago
02-22-2008, 03:09 PM
ok thats possible.

I'll make a video on it and post here.

thiago
02-22-2008, 03:10 PM
ok thats possible.

I'll make a video on it and post here.


In fact, I could try to do a sketch tool but with my limited knowledge It would be a *very* linear tool.

SheepFactory
02-22-2008, 03:11 PM
I would love to see a tool like this one:

http://www.peranders.com/gallery/galleryhome.php?pageNum_gallerythumbset=0&name=Personal%20Reel&area=reels


Its called "Doodle" you will see it towards the end of the reel. It supports all the timeline features and also lets you draw in all kind of brush types. I have been trying to persuade Per to write this for XSI for some time now but dunno if it will happen.

I really hope to see something like this in XSI. Hopefully sooner than later.

alanf
02-22-2008, 05:52 PM
As I said earlier, you could use the fxtree's paintclip to an outclip of some imageclip and have it appear on your scene in textured mode by using a textured plane constrained/parented to the animation camera, however, there's the problem of knowing where you are painting, since you theoretically can't have an image of the animation camera opengl view appear in the fxtree as your background to the paintclip.

As an alternative, I suppose you could put a subtle lettered, numbered, colored pattern in the background so you have more of an idea as to where to paint.

redmotion
02-23-2008, 05:08 AM
If some sort of viewport-to-texture interface could be added to the XSI SDK you could parent a plane/lock to the camera/viewport and just draw onto the texture applied to the plane via the viewport.

Various people have been calling for texture painting in the past. Surely, if this was opened up, a grease pencil tool would be easy.

kim aldis
02-23-2008, 10:39 AM
OK, I get why it's a toughy, the command puts you in sketch mode rather than actually creating curves.

Well, at least we have a command to get us going now. Off the top of my head, I'm thinking maybe a custom event that's triggered by the creation of the curve. You'll need to be able to turn it on and off, you don't want all your curves being affected, but here's a rough workflow:

Menu command, unmutes the event, kicks you into sketch mode.
Every time a curve is complete the tool puts the new curve in a hierarchy then creates a visibility animation that makes it visible for the current frame only then jogs onto the next frame ready for the next curve to be drawn.

Comments, thoughts?

kim aldis
02-23-2008, 10:41 AM
If some sort of viewport-to-texture interface could be added to the XSI SDK

you don't need it, you can already do this through the FXtree

alanf
02-23-2008, 04:01 PM
you don't need it, you can already do this through the FXtree

hi kim, you say you can put an image of your viewport (live?) to appear somehow in say an imageclip for use in the scene or whatever?

the only way i can think of doing this is importing a capture in the fxtree.

kim aldis
02-24-2008, 03:43 AM
I was thinking the other way around; place an image clip on a plane as a texture then expose that in the fxtree. make sense?

alanf
02-24-2008, 03:48 AM
I was thinking the other way around; place an image clip on a plane as a texture then expose that in the fxtree. make sense?

Yes. That's what I was thinking, but you confused me because you said it was possible in response to the guy asking for a "viewport-to-texture" thing. What you and I were thinking of would be texture-to-viewport, not the other way round.

Just a minor confusion; :) nevermind.

Nightwalker
02-24-2008, 08:31 AM
Hum... but if you go the fxtree route you leave out the modtool AND foundation users... remember 3democracy :biggrin: ?

Squid
02-24-2008, 09:11 AM
Hum... but if you go the fxtree route you leave out the modtool AND foundation users... remember 3democracy :biggrin: ?

You're assuming Kim is the only one working on this.

I have my openGL red book open at page 303. expect much shennanigans :tt2:

------------------------------------
Kim, the onObjAdded event isn't triggered after the curve tool finishes. if memory serves, si set the siAllowNotifications bit flag so there is no scene/dg update until the tool has exited.

selection change event should still fire though.

Nightwalker
02-24-2008, 10:06 AM
303 ?:eek: So you'v read the previous 302 :wacko: ?

Squid
02-24-2008, 09:16 PM
I have basic viewport line drawing semi-working ( the refresh is wonky)

before i get into the tricky part of scene graphs, AA and colour blending/brushes a
couple of user questions:

Do you animators need wacom support? ('need' in the truest sense)

Will you need the ability to save your painted images to disk ?
the plan is to store the images in a blob so they persist.
this could cause problems if you animators decide to go all 'ToonBoom' and paint every frame ( ( 32 * 1024*1024 * 500(frames) * 4(viewports)) == lots of memory)


I'd forgotten how much fun the CGraphicSequencer could be :smile:

miga
02-25-2008, 05:11 AM
Sounds like a good start! Any chance of getting some screenshots/preview animations?

Nightwalker
02-25-2008, 05:38 AM
Do you animators need wacom support? I don't think its necessary to have pressure sensitivity etc, no, color options for the lines would be nice though. One other non essencial but nice feature would be to be abe to keep a "background drawing" for drawing trajectories, arcs, and sutch.


Will you need the ability to save your painted images to disk ?Won't the lines show up in a capture ? No I don't think it's needed to save the files to disk.

this could cause problems if you animators decide to go all 'ToonBoom' and paint every frame ( ( 32 * 1024*1024 * 500(frames) * 4(viewports)) == lots of memory)Can't you make the files smaler? Or limit the number of frames stored ?

Thank's for taking the time to work on this, I'm certain any animator working in XSI could benefit from this tool :cool:

Squid
02-25-2008, 06:18 AM
I don't think its necessary to have pressure sensitivity etc, no, color options for the lines would be nice though. One other non essencial but nice feature would be to be abe to keep a "background drawing" for drawing trajectories, arcs, and sutch.
no wacom support suits me fine :)
i don't understand the 'background drawing' though. as it stands, your scene is actually the background drawing


Won't the lines show up in a capture ? No I don't think it's needed to save the files to disk.
The lines will show up in a capture no problem. i decided to have a go at saving the bitmaps to disk anyways. if only to impress my mum.

Can't you make the files smaler? Or limit the number of frames stored ?
Texture filtering will only get you so far. sometimes you just need a decent image res. as for limiting the frame amount, i'd rather leave that open for the animator to deal with. nothing worse than needing 'just one more frame'.

Thank's for taking the time to work on this, I'm certain any animator working in XSI could benefit from this tool :cool:
animators ? i'm doing this to get chicks :shifty:

Sounds like a good start! Any chance of getting some screenshots/preview animations?
there's a long way to go yet, a few scabby lines in an xsi viewport won't get anyone excited.

Thanks for the comments/suggestions guys

Nightwalker
02-25-2008, 07:13 AM
By backgound I meant to be able to keep one of the drawings visible in all frames, so we can ie for bouncing ball to draw the arcs, and then the ball in diferent frames, using the arc for reference.

tuna
02-25-2008, 08:59 AM
Hey Squid, awesome to see you're giving the tool another shot. It seems like you're having to do things quite manually, so Tom Hanks for that!

By the way, does this version you're working on work on 64bit XSI or Linux?

SheepFactory
02-25-2008, 02:00 PM
Hey Squib cant wait to see what you have cooking.

if by wacom support you mean pressure sensitivity then no its not necessary. But it absolutely has to work with a wacom tablet. I dont see why it wouldnt but just making sure :)

Squid
02-25-2008, 02:09 PM
Hey Squid, awesome to see you're giving the tool another shot. It seems like you're having to do things quite manually, so Tom Hanks for that!

By the way, does this version you're working on work on 64bit XSI or Linux?
hey m8,
I can probably compile it for vista64 (i don't have win64) but i wouldn't even know where to begin with linux. sorry.

as for doing things manually well, it was a choice between scratty sketch curves projected onto a plane (ugly) or excluding fnd users. neither are good in my view.

besides, doing things manually gives me the power to turn the draw cursor into a pair of boobs. :)

By backgound I meant to be able to keep one of the drawings visible in all frames, so we can ie for bouncing ball to draw the arcs, and then the ball in diferent frames, using the arc for reference.
It's a nice idea (and noted). don't know if i even want to think about layers just yet though. :)


Hey Squib cant wait to see what you have cooking.

if by wacom support you mean pressure sensitivity then no its not necessary. But it absolutely has to work with a wacom tablet. I dont see why it wouldnt but just making sure :)
;)
It'll work fine with a wacom/pen. it was just the whole 'update your drivers/GetMessageExtraInfo()' thing i didn't want to have to deal with just yet.
Still early days though.

cgisims
02-25-2008, 04:47 PM
This is sounding good.....a couple of features to think about:

ghosting options
ability to copy one frame to another frame (so you don't have to draw it again.)
erasing? or at least clearing the current frame
different colors and line thickness

also, yes, some animators will want to put a drawing on every frame, so consider that as well. Pressure sensitivity is not needed, but would be a nice touch if you ever had time.

Squid
03-03-2008, 10:44 AM
Update:
I got basic painting working :)



it has tons of issues at the moment:
regardless of where/when i create my pBuffers, i can't seem to paint over anything (it acts like rotoscope). <-- duh, i'm such an idiot. (XSI::siPreEndFrame was where i needed to paint)

it's very slow at the moment.

you can't resize windows after starting a paint session without destroying what you have on the canvas already.

i'm still crap at c++

the early release most definately won't have wacom pressure sensitivity (winTabs is a nightmare).


________________________________


I dont' want to get people's hopes up just yet. still a long way to go before i'd even consider it fit for beta

having fun now though :D

Nightwalker
03-03-2008, 10:55 AM
Cool :clap:

tuna
03-03-2008, 10:34 PM
Looks promising so far mate :) Cheers!

thiago
03-03-2008, 11:50 PM
crazy... I'm scared you can draw like that in XSI viewports.
Looks promising!

SheepFactory
03-05-2008, 02:48 PM
Oh yes! can't wait mate.

Honestly do not worry bout wacom pressure sensitivity. Pressure sensitivity is absolutely not needed for this tool. As long as it works without slowing down or crashing XSI that is all that matters.

Sil3
03-05-2008, 03:09 PM
So... in some short time i can ditch my markers and alchool and cotton because theres no need to draw the curves anymore on my OLD Silicon Graphics 21" CTR at work?? ...sweeeeeeeeeeeet :D

Squid
03-05-2008, 05:17 PM
I'll make it as stable as i possibly can before release obviously :)

some info/moans:
The original plan was, once activated, it would track the mouse and only hook on (stop xsdi from getting any mouse message) when over the paint view port.
This went bye bye when i maximised the view port then realised i couldn't actually click on the active checkbox (on a ppg) to deactivate the bloody thing! i thought i'd solved it by creating a event to listen for the 'esc' key (to toggle the active param).

as I'm installing events for hot keys which are only active when the paint ppg is active it got incredibly confusing to keep track of what did what.

So, unfortunately, you have to hold a hotkey down to paint/erase/airbrush etc. i'll brace myself for the influx of rsi related lawsuits ;)

Colours, brush size/hardness are all currently in the ppg. they will eventually be in he actual viewport.

there's no undo. there's an eraser :D

Things that make it not production worthy so far:
I'm hacking a viewport refresh (needed otherwise you don't see your paint stroke until you've finished the stroke) by toggling a hidden ppg parameter on and off. i'd like to use invalidateRect or push a WM_PAINT but xsi seems oblivious to these messages. i think this
might be the cause of any instability.

It's using pBuffers (3 actually) and they tend to be volatile. essentially, if you minimise xsi in the middle of a paint session, you tend to loose whatever was painted. same happens when you resize a xsi viewport.


The workflow i've got so far (some implemented, some not) :
set your viewport to whatever size you want, then changed the display mode to the paint jobbie, activate the paint ppg. paint away.
move to the frame you actually want to use the painting on and then save it to the frame manager. continue ad nauseum.

when done, deactivate the paint viewport and activate the playback/framemanager.
here you can shuffle frames, splice, set ghosting, export to sequence etc.


anyway, this code won't write it's self :)

requests, features and complaints are best submitted, in writing on the back of a £10 note :D


// a little addendum
It currently has pretty strict min requirements.
i'm developing the plugin on 6.0 fnd and 6.5 ess
Nvidia gfx 8600 (although anything 6800 up should be fine)
the latest cg runtime and resonably new drivers.

there's won't be a 64bit version for a while (sorry)
i haven't the foggiest idea if it'll work on an ati card...but, who uses an ati card
with xsi ? ;)

SheepFactory
03-06-2008, 01:23 AM
I do.. :(

no love for us macbookpro users.

Squid
03-06-2008, 04:21 AM
Chances are, if you are running xsi 6x, you'll be able to run this plugin.

There is nothing majorly bound to nvidia hardware at this stage but, i'd rather get it working on hardware i have access to for the first release.

besides, isn't that what beta's are for :)


// edit
of course, there's nothing stopping anyone sending me a macbook pro ;)

thiago
03-16-2008, 11:22 AM
hey guys,

I got into this tool this weekend... I think I got a future here but it's still very rough...

I went a totally different way than Jon did.... My plugin is gonna be a bit more simple than that, and it will in fact create curves in the scene.

Boring video showing 2,5 days of work on this tool:
http://www.thiagocosta.net/temp/tc_sketch/

****
EDIT : I was drawing with a mouse!! :P
****

thing's I'm sure I'll not be able to do:
* Line Thickness
because of nature of curves, I'll probably not be able to change display thickness... But maybe I can handle that by the renderable attribute.

Things I need to do:
- a keyspan to keep the visibility of each curve between frames.. Right now I'm just guessing
- I don't know how but my frame slider is broken for now.. you'll see in the video. :P
- control color for frames
- make curves renderable
- need to update the event to check the curve data
- need to put it all to work inside the model, right now it's just dropping everything in the scene root.
- clear frame
- move frames (grrr)
- paths

I've no idea when I'll finish this tool or even if I will be able to...
but eventually I hope I get it into a state where it's usable enough that I can release a beta version for everybody try.

one thing is sure... I'm doing this with a lot of care so it can be used for other types of effects and not just as a sketch tool. :)

thiago
03-16-2008, 11:26 AM
Just to say that I encourage everybody try to do a tool like this... because I'm quite new to programming specially in XSI so anybody with a little more experience can probably get it faster than I will :P

And the tool Jon is doing is way more advanced than mine.. ;)

Squid
03-16-2008, 12:47 PM
nice work thiago :)

one suggestion to make your curves renderable is to create a display callback to render them as lines in openGL.

the dev work on my version had to take a back seat the past week (or so) due to work.

still hacking away at it though.

thiago
03-16-2008, 12:59 PM
I know what it is but I've no idea where to start on a display callback.
I guess I need to do some research on this :)


this way it would be renderable with mentalray or just it's just openGL?
I was thinking what other kind of effects can be created with this tool...

I'm trying to see if I can interpolate between frames... sounds quite a lot of work hehe

thiago
03-18-2008, 08:30 PM
I've a question on this tool.

Is necessary that the sketch lines are always facing the camera the time?

Is interesting to have a switch where you can set your sketch lines to stop facing the camera?


Thanks

mde
03-21-2008, 06:23 AM
there's won't be a 64bit version for a while (sorry)
i haven't the foggiest idea if it'll work on an ati card...but, who uses an ati card
with xsi ? ;)

Double damn (64bit FireGL user here).

But well, it's beta :). Anyway, I can test it on 32 bit and see if it works on FireGL.

By the way, I always wonder why tools like that aren't available out of the box. There is so much innovation when it comes to rigging, rendering etc.. but as for pure animation goes... not that much.

thiago
03-24-2008, 09:57 PM
Hello all

I've a VERY Alpha version of the grease pencil tool... I didn't understand anything from that mel script so I did all from scratch so pardon me if I something isn't as easy as it was supposed to be :P

- you will find the tool under model>primitive>curve>tc_sketch
- you need to turn on "activate" to be able to draw.
- if the plugin PPG is not locked the tool will quit as soon as you change the PPG.
- before you select anything, make sure you "deactivate" the tool (turning activate off), or you close the tc_sketch PPG

problems
- I'm still working on the scene root, it's all going to be under a model in the next release.. so be patient :)
- I've some problems to trigger the event that take care of visibility keying and all, so before you select or do anything you just hit deactivate the tool... please.
- you can't remove the frameXXXXX curve or your keyframe will not be recognized, it will change in the next release with the model structure.

what I still have to do:

Main features
- path drawing

Renderability
- Profiles:
square, circle and triangle.
- Material plug
- create Geometry group

Visibility ctrl
- hide curves
- hide geometry.
- a switch to hide or not curves.
- set color for current keyframe

Editing Mode
- Clear function
- delete frame
- copy frame
- relax curve
- curve placement
- brush editing
- Manual mode. Implicit set of Keyframe.

Inbetwen creation
- create auto inbetwen
- auto color keying

Performance optimization
- optimize the array indexation thing
- autofit keyframes technique

thiago
03-24-2008, 09:58 PM
lol I forgot to add the xsiaddon file haha

LazeeGazzz
03-25-2008, 04:14 AM
Wow!

That's really exciting stuff Thiago.

I've just played around with it and it was intuitive to use and stable.

I do wonder how thousands of curve objects might eventually overload the system but I guess you've anticipated that.

Have you thought about adding text-curves too, then I could annotate my key poses with subliminal messages.


Looking forward to Alpha 2

Scabyx
03-25-2008, 06:59 AM
Hey Thiago

Nice, and excellent work, many thx in the name of every user.

Keep it up.

thiago
03-25-2008, 03:11 PM
Thanks guys! :)
Hope it's usable enough for now... I'm improving this and will update as soon as I finish.

If you find any bug/problem/ improvement that can be done, please let me know! :)

kim aldis
03-25-2008, 03:52 PM
I really like this tool, it's simple, fast to use and just, well, works. Something I've always missed in XSI is something that'll let you quickly knock out motions that have a hand animated style and rough, descriptive motion tests without having to go through the whole build, animate thing. I used to use Painter, with it's animation and onion skinning thing, this is very similar.

It's one of those simple things people are going to find new uses for. Who's going to be the first to do electric arcs?

Nightwalker
03-25-2008, 04:29 PM
Great !!!! :) thanks thiago It works realy well !!!

As for improvements besides your list It would be nice to Have a "background layer" ie make a curve visible in all frames so we can draw the arcs, is that what you refer as "path drawing" ?

Thanks again

Sinchi
03-25-2008, 04:35 PM
Hi Thiago,

Your tool is working great, I'm looking forward to the next versions :)

I showed it to an animator and he suggested an option to lock the drawings to the camera. This way if there is a movement in the camera, the drawings would follow and would better simulate drawing on the screen.

We developed an operator a long time ago that would take a curve and project it to the near plane of a camera. This enabled the curve to follow the camera and to always be visible to the camera. Also it meant the curve would not be at a random place in space.

In my opinion I find it sometimes useful to draw the curve in 3D and sometimes it's better in 2D locked to the camera. If you could add the option in your tool to do one or the other, it would be great ;)

If you're interested, I can probably find this operator somewhere ;)

Once again, great work!!

thiago
03-25-2008, 06:26 PM
Thanks for the feedback guys!

Great !!!! :) thanks thiago It works realy well !!!

As for improvements besides your list It would be nice to Have a "background layer" ie make a curve visible in all frames so we can draw the arcs, is that what you refer as "path drawing" ?

Thanks again

Yes it's the same as path drawing... a "layers" mode should be a better name. hehe

Hi Thiago,

I showed it to an animator and he suggested an option to lock the drawings to the camera. This way if there is a movement in the camera, the drawings would follow and would better simulate drawing on the screen.

If you're interested, I can probably find this operator somewhere ;)

Once again, great work!!

This is planned for the next version... it will be hopefully available with the new model structure that I'm doing now ( instead of work the curves on the sceneroot as this alpha does ).
Yes I would like to take a look on your operator if you have it, do you kow if this operates on the curve itself or on it transformation?


I'm trying to do this tool as open as possible so people can use for different types of effects... I know XSI users are creative ;)

Sinchi
03-26-2008, 11:39 AM
Hi Thiago,

I just sent you a mail with the operator ;) It operates on the curve points at animation level and on the transformations of a hierarchy of nulls created above the curve. This lets you move the points in modeling mode and move the curve if you want.

thiago
03-26-2008, 03:07 PM
Thanks! I got it...! :)

thiago
04-10-2008, 10:29 PM
Hey guys, I was pretty busy these days at work, so I haven't had the time to post here.
this week I had time to work more on the plugin and I think I did some nice improvements.

So heres a video showing the state of this (what I call now) beta version:
http://www.thiagocosta.net/temp/TC_sketch_beta/

It's pretty stable right now, I just have to fix a couple of bugs then I will post it here for testing.

little list of things I've added/changed:

- model
now everything works under a model called TC_model (duh!), you shouldn't need to rename/edit/change anything inside this model (the plugin will manage it all).
All the curves/nulls are handled by name... so try to do not touch it for now :P
Later I'll rework this a bit and make more "idiot proof"

- groups
- master hide
- all curves selectabable
- edit frames with auto curves selection
- Brush editing / View Plane Transform tools
- Clear frame
- Camera constraining with auto compensation/update/deletion

Still a lot to do...

septopus
04-10-2008, 10:55 PM
this is amazing.

if there are no issues with vid card, or os versions,

this is good for an official release.

as for extra features that are being requested, keep in mind, tools like these are meant to "kee it simple"
any more features would probably be overkill and give it a "learning curve"
-- so in a nut shell, if the tool is at a point where no docs is required to work it, its perfect.
its effectiveness dont need to be proportional with "features"
my humble opinion.

great work.

alanf
04-10-2008, 11:50 PM
Looks excellent. Good work, Thiago! :D

GeneCrucean
04-11-2008, 11:35 AM
Thiago, post this on the list, xsibase and cgtalk too. It's ready man.

kim aldis
04-11-2008, 12:42 PM
I agree, it looks good to go to me.

I have a question; what happens if you draw more than one curve at a frame? Does it handle that OK.

and, remember when I told you they would be piling on the feature requests? A copy button, to copy a curve(s) from one frame to another?

Nice one thiago.

GeneCrucean
04-11-2008, 01:00 PM
Is the version you sent me last night the one on here?

SebasProulx
04-11-2008, 04:32 PM
Just a small question: when you constrain the curves to the camera, does it still fit when you change the FOV?

Keep up the good work !

thiago
04-11-2008, 05:30 PM
Hey guys thanks for the feedback

Septopus
nice advise, thank you. I'm planning to finish it soon... I'm really trying to keep it simple. This is my first tool for XSI so your comment came in good time.

SebasProulx
nope, it still don't update with the FOV changing. :|
I've already started on that though

GeneCrucean
yes is the one!
I still have to fix a few things... I'll try to finish this weekend.

kim aldis
yes, I consider "keyframes" as another object, no matter how many curves you put on it.
This is why you can go back and add/remove anything on the frame. If you remove all curves it will consider that there's no keyframe.
I'm handling all with 2 or 3 independent commands... If something happen outside of the PPG code, everything should keep working. I hope :P

alanf
Thanks dude! :)

thiago
04-11-2008, 05:31 PM
I agree, it looks good to go to me.
and, remember when I told you they would be piling on the feature requests? A copy button, to copy a curve(s) from one frame to another?

Will do it!

bsm3d
04-11-2008, 07:41 PM
HI,

This is really interresting ! very good idea behind ;)

Thanks for do it !

thiago
04-17-2008, 05:33 PM
hey thanks bsm3d!

So guys... I finally got the time to put this up for ya.
here we go: http://www.xsi-brasil.com/tc_sketch/TC_sketch_v1.rar

Just drag and drop in your XSI v6.x
(didn't test on v5.x but I think it will not work because of the improved fCurve API of the v6)

I think it's pretty stable... so use it as much as you want and send me feedback!
I got under a lot of work lately... I apologize I didn't post this before.

Thank you all :)

4602
04-17-2008, 09:24 PM
thank you thiago
i am not an animator, but this might turn out useful for making corrections, and all sorts of things. i played with it a little seems to work just fine.
one thing i would add, different display groups, so you can have more then one color.
cheers again!
4602

thiago
04-17-2008, 09:43 PM
Thanks!

thank you thiago
one thing i would add, different display groups, so i can have more the one color.
4602

ooo thats a good idea... It's on my list now! :)

Sinchi
04-18-2008, 11:04 AM
Thanks for this new version Thiago! :clap:Continue your great work!

Ahmidou
04-18-2008, 03:55 PM
hi Thiago,
I have a question related to your plugin, I'm actually working on a PPG plugin with a listbox
but I dont like it's default colors, I have noticed that in your video the listbox is light grey and the selection is orange, would you share how to do this?

Thanks
A.

thiago
04-18-2008, 05:15 PM
hey Ahmidou,

The color isn't from my PPG, it's the Windows color scheme that I've changed.
I've changed the "Selected Items" option in the windows appearance tab (display properties).
It's the color that XSI uses for textboxes.

I would love to be able to customize colors in XSI too!... :|

Ooops
04-22-2008, 10:02 AM
Hey thiago,

Great tool you wrote there. I really like the poor man's grease pencil tool in Maya, and wanted to give you a bit of feedback.

The tool in Maya keeps each frame visible until the next one. In yours you have to select how many frames you want to hold in the setup option, which is a bit slow on the workflow.

The Maya tool lets you quickly retime the keys, I know you said you were working on a copy option, so you can copy a frame to another one on the timeline.

The undo doesnt seem to work on your tool, you need to select curves and hit delete.

But I love the brush tool to quickly reshape the curves, thats ace.

Just a few observations. I hope you ll continue to refine this tool. Keep up the good work.

Cheers.

thiago
04-23-2008, 12:19 AM
Hey Ooops, thanks for your feedback.



The tool in Maya keeps each frame visible until the next one. In yours you have to select how many frames you want to hold in the setup option, which is a bit slow on the workflow.


hmm well not really.. if you turn on "view all" in the visibility drop-down, you'll see all curves but the previews curve will be active until the next one show up.
The default "view current" will show the curve just in the frame that it was drawn, and will make 2 previous frame ghosting with itself + other curves.
This is not exactly what you need I guess... But I understand your need, I will add your suggestion to my list for the next version! :)



The Maya tool lets you quickly retime the keys, I know you said you were working on a copy option, so you can copy a frame to another one on the timeline.


Yes this is going to be improved with a couple of time ctrl I'm doing...


The undo doesnt seem to work on your tool, you need to select curves and hit delete.


Thats more XSI problem than mine... :|
I spent days trying to figure out ways to solve this but I just gave up.
Commands in XSI aren't "undone" at once on v6.5. This is already reported as a broken feature if I can recall.

Ooops
04-23-2008, 04:46 AM
hmm well not really.. if you turn on "view all" in the visibility drop-down, you'll see all curves but the previews curve will be active until the next one show up.
The default "view current" will show the curve just in the frame that it was drawn, and will make 2 previous frame ghosting with itself + other curves.
Hey thiago, what I meant was that in the "view current" like you said, it doesnt show the curves for all frames, so when you play back the animation it flickers. Was just a minor thing really.

Anyway, glad you still working on it. Looking forward to it.

Cheers.

thiago
04-23-2008, 05:24 AM
Hey thiago, what I meant was that in the "view current" like you said, it doesnt show the curves for all frames, so when you play back the animation it flickers. Was just a minor thing really.

Anyway, glad you still working on it. Looking forward to it.

Cheers.

yeah I understand... I'm going to improve that for the next update ;)
Right now I'm trying to figure out a geoshader to make this curves renderable.

nRatio
04-25-2008, 07:51 AM
Thank you Thiago! Finally had chance to try it out. This is awesome, most essential tool. I was thinking something like Annotation pro but frame by frame inside xsi is so much more. I kiss the ground you walk on, thumbnailing in XSI.

thiago
04-27-2008, 10:04 PM
Thank you Thiago! Finally had chance to try it out. This is awesome, most essential tool. I was thinking something like Annotation pro but frame by frame inside xsi is so much more. I kiss the ground you walk on, thumbnailing in XSI.

Thanks! :)
I'm glad you find it useful!

nRatio
04-28-2008, 07:24 PM
Thanks! :)
I'm glad you find it useful!
Very, only it is not fully operational in linux. Won't stay in Sketch mode, needs to hit the button every frame, can't pick a camera. It really is sad, but script editor yels line after line errors (http://www.kolumbus.fi/noratio/xsi_linux/TC_sketch_linux_errors.txt). I'm using the same workgroup in windows and it is ok. If you have any interest I made notes what was done.

csaez
04-28-2008, 09:31 PM
Wow! the tools look really cool :)

Thanks you Thiago! :)

thiago
04-29-2008, 05:26 PM
Very, only it is not fully operational in linux. Won't stay in Sketch mode, needs to hit the button every frame, can't pick a camera. It really is sad, but script editor yels line after line errors (http://www.kolumbus.fi/noratio/xsi_linux/TC_sketch_linux_errors.txt). I'm using the same workgroup in windows and it is ok. If you have any interest I made notes what was done.

Hey thanks for the log.
I'm investigating this one... I don't have linux so I'll finish a couple of changes in the whole thing and will send it to you again. So you can test on both platforms when you have the time.

I see that the AdjustKeys command is crashing, and the Event is crashing because the Adjust keys is crashing...
The sketch tool not holding "on" status is normal.. The event is turning itself off to prevent errors.
I'm almost sure it's the AdjustKeys command (possibly your curves aren't re-sampling quite right because of this one isn't executing right).
Maybe jScript formating that linux interprets different from windows..?
Because I'm not using anything specific... I guess.
I will see and let you know.

@ csaez
Thank you! :)

nRatio
04-29-2008, 05:49 PM
I found I had seen this before and made a little search in my mail archive. Most likely this is due XSI Linux disliking JScript's push method. Line 66 oArr.push( oRtn(i) ). Maybe none ever reported it to SI?

thiago
04-29-2008, 05:55 PM
I see...
So could you do me a favor?
Can you run this and tell me if it yield any error msg?


oArray = new Array()

for(i=0; i<10; i++)
{
oArray.push("test"+i)
}

LogMessage(oArray)

nRatio
04-29-2008, 05:55 PM
in TC_get UniqueFrames.js, of course, sorry forgot to mention.

nRatio
04-29-2008, 05:57 PM
// ERROR : Object doesn't support this property or method - [line 5]

thiago
04-29-2008, 05:59 PM
I see...
Ok I will report that to SI even if I don't have linux heh.
Will see if I can change my array indexing routine to something else than the native jScript push method.

thiago
04-29-2008, 06:05 PM
Reported.
"push" is just essential to work with arrays... must be something with the XSI interpreter.

Afaik they are working on better linux support.. hope they put this on their list.

StephenBlair
04-29-2008, 06:44 PM
I think this is because of the version of JScript distributed on Linux.
You can always add your own push method (just like the SDK Command Wiz does).



// Add a push method to the JScript Array Object
// @cc_on
// @if (@_jscript_version < 5.5)
var push = function(){
for( var i = 0; arguments[ i ] != null; i++ )
this[this.length++] = arguments[ i ];
return( this );
}
Array.prototype.push = push;
// @end

thiago
04-29-2008, 06:52 PM
lol I was just doing that!
Thanks for come with the code Stephen :)

nRatio
04-30-2008, 04:27 AM
Quick look at wikipedia, JScript 5.5 came year 2000. I'm speechless

thiago
05-05-2008, 04:05 AM
hey,
I've done some of the updates this weekend, based on the feedback you guys provided :)

Update list
- Assembled the XSI Bezier curve tool, CV Curve tool and Curve Text tool
to be used from the TC_sketch PPG

- Added the "edit frames" command, now you can move your frames in time,
selecting a frame in the listbox and using the "up" and "down" buttons.

- Added the code to work on linux system.

- The current frame stays visible until the next frame.
Like Ooops pointed out (read this post) (http://community.softimage.com/showpost.php?p=4354&postcount=83)

- The listbox now let you navigate/select frames to edit.

- "Default frame duration" option in the setup tab was renamed
to "Last frame duration". So now it just affects the last frame of
the animation.

- Re worked the entire keyframing command for fast feedback and support move keyframes around.

Uninstall the old version, unzip the attached file then drag/drop into your XSI or install in your workgroup.

I'm still working... but I've little to no time lately at home.
Hope it gets more useful for annotations with the XSI curve Text tool included to be used with the plugin.

@ nRatio, can you try and confirm if it's working on linux?

Thanks! Time to sleep!

Ooops
05-05-2008, 05:37 AM
Hey thiago,

Excellent update!! congratulations.

the up n down for the keys was definately needed.

I'm just gonna forget 3D and start doing stickmen animations. ;-p

Keep at it.

GeneCrucean
05-05-2008, 09:47 AM
Good stuff Thiago. Nice update.

csaez
05-05-2008, 10:13 AM
Great update Thiago, thanks!!! :)

nRatio
05-05-2008, 01:22 PM
Thank you for the extra effort, not a single error this far.

Toonafish
05-06-2008, 10:46 AM
wow, great tool !! Thank you very much!!

SolaGratia77
05-09-2008, 05:54 PM
Thank you so much for this amazing tool !!!!!

one thing....
I don't know if high number of curves in a frame group
would slow down the scene

on average I have about
100-200 curves under a frame null
it would be extra cool if we can merge the curves like this (http://www.xsibase.com/forum/index.php?board=29;action=display;threadid=32566;s tart=0)

in any case thank you so much once again !!!!

-J

thiago
05-09-2008, 06:08 PM
Hey

Thanks, I will put that on the list.
For now you could freeze all curves from time to time (or work on immed)
so it will not preserve all the modification and curve creation operators.

If I can remember right, I already had a code to explode all curves...
I should add this two functions on the plugin then:
- merge curves
- explode curve

It might take a while now until I get to update this... because I just got a new computer this week and I'm still installing all the crap. :|

thanks

mrmojorisin
11-02-2008, 09:46 PM
Great Tool! i didnt saw it before!... Thanks a lot thiago

Daysgone
11-03-2008, 11:49 AM
How about some sort of ghosting? Only show a certain # of frames before and/or after

thiago
11-03-2008, 02:39 PM
Thanks guys,
yes it is possible to do ghosting, I'm not sure this version allow you to do so but I will check that in the next update.
Nothing planned right now as I'm working on another project.