+27
Completed

Tweening Integration

Lazlo Bonin (Lead Developer) 4 years ago updated 2 years ago 25

Provide deep integration with a popular tweening library, probably Demigiant's awesome DOTween 2. Units should be easy to setup and able to asynchronously wait for a tween to finish.

In the mean time, extension methods are supported, but deeper integration could provide significantly better UX.

Bolt Version:
Unity Version:
Platform(s):
Scripting Backend:
.NET Version (API Compatibility Level):
+1

Question, you say that extension methods are supported, how so? I tried creating an extension method for one of my types and it didn't show up, neither did creating an extension method for Vector3. I'd really appreciate this feature as I enjoy fluent interfaces.

I like this idea. Tweening is essential, especially for UI animations, where we plan on using Bolt extensively.


Go to Unit Options Wizard and in Type Options, include a new Type: ShortcutExtentions and/or ShortcutExtentionsPro ( if you have PRO Version ). All extentions methods will apears !

I don't see how extension methods of DOTween work in this context. Yes, I have added ShortcutExtensions to the types and I can see it in the graph editor, but once I select one of the functions, it simply creates a unit saying that the reflection failed and it couldn't find the member. Any ideas?

As a side note, the reflection fails completely when simply creating the node using right clicking and searching for the file. If one then sets the same method to be called on that node in the graph inspector window, it will actually show the correct method, but it will still be impossible to set the this-parameter of the extension method.

Please create a separate bug report with the error log!

Hi, any tutorials to get DOTween shortcut? because i always failed...

However, when will Dotween Integration be ready ? thanks a lot in advance....

Any further news on this? I'd hoped I could access DoTween functions right away, but this blocks me a little. Any other Tweening packages that are more compatible with Bolt at this stage or any preferred workarounds? Cheers

+1

It's literally the next version once 4.6 assemblies are added. GDC is over, and Lazlo should be back to work. It will be happening very very soon. Dotween works with it's own shortcut extensions, if you get me or aspys add-ons in macros section of the forum, you can start using DOTween right now fully too, with generic. Heard LeanTween works too, haven't tried it myself though. But if i bolt is using DoTween at the core,  then the switch should be easier if you stuck with the first method.

Interesting, every time I consult the forum you appear haha JasonJonesLASM

+20

Good news: I've talked to Demigiant, the author of DOTween, and it will be built-in to Bolt!

I'll do some design research & iterations and ask for his input on the best way to handle all cases.

Any updates on the state of things with DOTween integration?

+1

Hi Netlander!

So, DOTween integration is still at the very top of my feature priority list.

The reason it got delayed in the last few months was Bolt Live and welcoming two new team members (Hasan and Andy) at Ludiq. With everything stabilizing now, we're picking up pace and you can expect to see that update within a few weeks.

Currently, I'm working on updating the Bolt website to improve the documentation and tutorials hub. As soon as this is done, I'll get back to the "Workflow Priorities" update, which features DOTween integration!

Hi Lazlo! It has been 10 months since you promissed an update. Any news? 

In the meantime what are your workflow recommendations in terms of using DOTween in a Flow graph?

One thing that comes to mind is to write utility classes to wrap DT animations and call those from any given graph, tedious but looks clean for small number of animations.

Any other workarounds while we're waiting for full integration?

+1

Your pretty much doing what you should, both mine and aspys macros use wrappers mixed with the extension methods. Another option is to create an update, on complete, ect methods in script, and in the update send the update value to a custom event with the value sent to there. Then you can do logic in bolt for updating the value without hard setting it in the method itself. If you want full control in Bolt over what happens on the callback, that's the way to go.

Hi there!

Any news on DOTween integration? This is essential for our team and will be the major reason to switch from PM to Bolt!

It is part of Bolt 2 (currently in alpha state).
https://ludiq.io/bolt/download/2.0.0a5

But you can use itween for basic tweens quiet simple or DOtween with some community nodes.
https://support.ludiq.io/communities/5/topics/1145-tween-options-dotween

https://support.ludiq.io/communities/5/topics/525-floatto-dotween-wrapper

Hi there! I have two questions:

1) When will Bolt 2 become available as a public release? (rough estimation is ok)

2) Will Bolt 2 be an update to Bolt or a separate product? (I have just bought v1 and would have to pay again soon)

Thank you!

+1

When is Bolt 2 coming out?

When it's ready! We never give ETAs. But you can already download Alpha / Beta builds!

Will Bolt 2 be a paid upgrade?

No! Bolt 2 will be a free upgrade to Bolt 1 users.

If you have not I highly suggest you join out=r discerned server and check the FAQ channel.

Fair enough, let me rephrase:

We have started a new project that will need visual scripting in some parts. It will be developed for at least six months.

1. Would you say it's better to start learning Bolt v2 right away or start with v1 and then migrate?

2. Will there be major / conceptual changes in the architecture?

3. DOTween is going to be used extensively. Is native support of v2 much better than the community addons?

4. Is alpha going to crash Unity around twenty times or day, or just occasionally?

I am grateful for any help :)

Disclaimer: regarding point 2 - I did read the document describing changes in v2, but as someone who never used Bolt, I can't determine whether they are groundbreaking or not. I would like your opinion for that matter ;-)

+2
1. Would you say it's better to start learning Bolt v2 right away or start with v1 and then migrate?

Start with Bolt 1. Bolt 2 will still be able to read Bolt 1 graphs and they should run in Live mode. You'll have to manually replace some of the legacy nodes to Bolt 2 nodes so it generates C# for builds. So start with Bolt 1, then migrate. (Bolt 2 might not be stable in 6 months though)

2. Will there be major / conceptual changes in the architecture?

Yes, in the next and last alpha the current dynamic variables system will be deprecated in favor of Class variables. The current Flow Machine and State Machine will be replaced with a single Class Machine that will contain any number of Flow and State graphs. The current custom events system will be replaced with a new, strongly typed one. But the basics will remain more or less the same, you'll use Bolt 2 the same way you use Bolt 1. The nodes will also be more or less the same since Bolt gets its nodes from Unity C# API.

DOTween is going to be used extensively. Is native support of v2 much better than the community addons?

Well, native is always better but the Macros aYo has made for the community are perfectly serviceable. In fact, I was setting up DoTween support today myself. Got it all working with DoTween Pro animations in no time:

4. Is alpha going to crash Unity around twenty times or day, or just occasionally?

No one can answer that question, it probably won't crash 20 times a day but the bigger issues are other bugs. Things like broken C# generation for some nodes. If you can't generate C# with Bolt 2, you can't get builds out. And then you're stuck potentially for months until the next alpha drops which might introduce more bugs like that. 

In short, don't use alpha versions of Bolt 2 in actual production in any case. Wait at least for the beta to land so most of the glaring issues are fixed and the architecture is finalized. In 6 months Bolt 2 might be stable or it might be still in alpha, no one knows since there are a lot of unknowns both relating to the difficulty of implementing classes in Bolt 2 and to the major Unity bugs concerning GC collect which might require another major refactor of some parts of Bolt.


TL;DR: Don't use Bolt 2 alphas in actual production, it's full of potentially critical bugs that might get your project stuck in limbo for an undetermined amount of time. Use Bolt 1 instead, it's stable, fully supported, all learning materials and community macros are currently available for it.

Thank you for the detailed response. It's all clear to me now :)