PDA

View Full Version : Loony Letters - my first C.O.F.F.E.E. plugin


eightyf
01-19-2007, 06:38 PM
After weeks and weeks of frustrating setbacks and try and error, my first plugin LOONY LETTERS is finally coming to an end - well at least almost.
It's a typo animation plugin which lets you create flash like textanimations in no time.
Watch a little trailer here: LoonyLettersMini (http://www.c4d-goodies.de/images/loony_letters_mini.mov) (QT 3.66MB)
Unfortunately it is very unstable on some systems and Cinema 4D crashes without any recognizable reason.
If you are interested in maybe finding the cause and / or want to contribute to making this little plugin better and more interesting feel free to download it.
This way ---> Loony Letters Zipfile (166KB) (http://www.c4d-goodies.de/images/loonyletters.zip) <----
btw. the final version will of course be freeware, so there are no commercial interests.
Simply unzip the file into the plugins folder - that should be all.

Loony Letters used to crash C4D on my system very often - after I ran it through the compiler it hasn't crashed once. Unfortunately this seems to apply to not many other users :-(

Working with Loony Letters:

- Create textspline

- Right-click on the text and select Loony Letters

- The following dialog will pop up (still the old name in the title tsk, tsk, tsk...)

http://c4d-goodies.de/Images/loony_letters_screenshot.gif

Activate - no function yet.
Animate In / Out - set the parameters for animating the text in or out.
Animate IN - If this checkbox is disabled, no animation will happen, the whole text will be faded in.
Start - first frame of the animation
Duration of the animation in frames.
Fade-in - Duration in frames how long the letters take to fade in / out. Max time is animation duration-1
Direction - This setting defines in which order the letters appear: from left to right, none (offset will be disabled and all letters will be animated simultaneously) or right to left.
Offset - This defines the pause between two letters in Frames. Real numbers are possible. A value of 0.5 means e.g. that 2 letters will appear per frame.
http://c4d-goodies.de/Images/ll_value_icon.gif - the animating parameters.
http://c4d-goodies.de/Images/ll_smooth_icon.gif - Smoothvalue. This setting defines how many frames the animation of a specific parameter eases out / or in. Max value is duration-1, a value of 0 produces a division by 0 error.
http://c4d-goodies.de/Images/ll_variation_icon.gif - Variation of the animation parameters in percent. A parameter value of 100 with a variation setting of 25% means for example that possible values vary between 75-125.
Random-Seed - Initial random value...
Extrude - Loony Letters splits up the textspline into single letters and puts them underneath an extrude-object in the OM. The value defines the extrusion depth.In later versions it will be possible to set all the parameters that are used in the "original" extrude object like caps,steps etc...
Known issues, bugs

As mentioned before: this plugin is still in development. It got more stable by compiling it, but still there are some problems and / or bugs.

Activate has still no function assigned to it.
If you change the animation duration, the max settings for fade or smoothvalue cannot be set to their new max (animduration-1) until the dialog is opened again.
When changing the font of the textspline, Loony Letters is not able to initialize the letter objects. In that case, open up the dialog again (exit with OK, not with Cancel) or delete the Loony Letters Null Object.
When using multiple Loony Letters tags, sometimes a new extrude value won't be recognized or all other Loony Letters opject have the same extrusion value. Working on it.
Sometimes C4D crashes with no apparent reason. I heard, that exiting the dialog with Cancel is one of those reasons. Can't confirm this yet, but I might have a solution for it.
I guess that's all for now.
One thing, though: Loony Letters has been tested on one system only - a PIV 3.8, WinXP and C4D vs.9.6. Someone told me, that I works on R10, too, but I can't promise.
This is a pre-beta version, so I take no responsibility for any crashs or whatever.

But if you want to participate in developing this thing, maybe you can help me, make Loony Letters a useful, little helper for our works.
And please keep in mind: I am still a beginner ;-)
Hopefully you will have a little fun with it,
thanks
André

Darter
01-19-2007, 11:17 PM
Congratulations on your first plugin, this looks exciting.

So far I've had crashes when dragging the dialog window and when clicking the OK button. Also, various parameter icons randomly disappear. I'm using R9.6 and Win XP on an Athlon 3200+ with a GeForce 6600 GT graphics card.

One thing I found initially confusing was the automatic addition of Display tags with 0% visibility. Presumably this will change when you update Extrude parameter access.

The rotation values are listed in non-standard order and should be rearranged. Also, I think that this is the sort of plugin which needs a non-modal dialog. At the moment, tweaking of parameters requires repeated re-opening of the modal dialog.

This is all based on a first look. When the stability issues have been resolved, I'll take it for a more thorough test drive.

Anyway, great work for your maiden plugin and I'm sure that it will develop into a streamlined, polished tool.

eightyf
01-19-2007, 11:32 PM
Darter,
the display tags are used to control the fade-in parameters, meaning their values depend on the fade-in, duration and offset parameters.
-- EDIT---
Actually I intended to "protect" the Loony Letters null object, so that it's children cannot be accessed. But for testing purposes it was more useful to not make this.
---EDIT---
As for the rotation parameters...uhm... really? how embarassing. Guess I have to look up the correct order.
You are absolutely right about the non-modal dialog... I just haven't mastered the implementation yet. I also guess that the crashes are caused by changing the active object. I found out, that it runs far more stable, if you click on the text spline in the OM and then double click the plugin tag - but I am not sure about this.
I still don't quite understand some simple things... like: in modal dialogs, everything happens in the execute() block, but in non-modal in the main... is that correct?
Anyway, I will tweak this thingy a little bit further and if everything else fails: I just got myself a C++ book ;-)
Thank you for your reply and checking out Loony Letters
André
---EDIT 2----
I haven't got the slightest idea, why the GUI graphics sometimes disappear, it is absolutely not reproducable.
Any ideas?
---EDIT end----

Darter
01-20-2007, 02:07 AM
The standard order for rotation parameters can be seen in the Coordinate Manager and Attribute Manager, i.e. HPB.

As for the icons, based on standard practice I'd use text instead. In addition to labelling the PSR parameters, labelling Smooth Value and Variation seems more straightforward to me than working out the meaning of icons. Also, most plugins have X, Y and Z (and HPB) values arranged horizontally as do functions such as Array, Clone etc. Of course, your opinion on the best approach may differ.

The COFFEE SDK, under the User Interface heading, gives a good explanation of the difference between modal and non-modal dialogs . The RotateIt.cof file, under the GeDialog heading, serves as a useful template for non-modal dialogs.

eightyf
01-20-2007, 02:24 AM
Thank you very much for your input. I think the HPB issue is even worse... I guess only the labels are wrong ;-)
As for placing the parameters grouped vertically, I guess this was more of a layout issue, maybe I'll try to order them as you suggested since you are right - especially about the icons which are not really selfexplanatory.
I will give the rotate.cof a shot as soon as I will find the time, the constant opening/closing (and especially crashing) of the dialog window is highly annoying.
Thanks
André

Darter
01-20-2007, 02:28 AM
No worries. Let me know if you need any help with RotateIt.

eightyf
01-20-2007, 12:44 PM
No worries. Let me know if you need any help with RotateIt.
Darter, thank you for this offer, which I gladly accept...
Sorry if this is a silly question, but have a logical problem:
Loony Letters works (or doesn't ;-) ) by applying a plugin tag to a textspline, so this calls for a expressiontagplugin.
But from what I understand, non-modal dialogs require a menu plugin.
Soooo... if I convert my code to a menu plugin, how would the plugin tag be attached to the textspline? Or would I need 2 plugins? One for the expression where all the calculations are made and one for simply inputting the values?
Is this a feasible way? Handling would look like this:
- Create textspline
- apply a LoonyLetters expressiontag to it (default values are set).
- to edit the values of the expressiontag, the second plugin (LoonyLetters dialog) is executed by selecting a MenuPlugin.
- the MenuPlugin simply opens the dialog with all parameters and everytime something is changed, it sends the parameters to the expressionplugintag. Of course the menuplugin must check, if the active object has a loonyletters expressiontag attached to it (I guess this could work by GetFirstTag->GetNext etc. and the GetID() function. Meaning, if the active object has a loonyletters expressiontag, all its container values are transferred to the dialog.
What do you think of this?
Your opinion / input would really help me.
Thank you
André

Darter
01-20-2007, 10:53 PM
This isn't a silly question at all. It does appear from the SDK that non-modal dialogs need to be created by a MenuPlugin for the RestoreLayout() function. I'm still learning about this, having only recently created my first tag, so I can't say for certain that it can't be done.

Another option is to access values via User Data in the Attribute Manager, as per my Symmetry Clamp expression. The Readme file explains this in detail:
http://forums.cgsociety.org/showthread.php?t=447421

Plugin installation is slightly more involved but unlike a COFFEE dialog, this approach allows AM integration.

Ultimately, I think that C++ is well worth the effort.

CGTalk Moderation
01-20-2007, 10:53 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.