morevnaproject-org / papagayo-ng

Papagayo is a lip-syncing program designed to help you line up phonemes (mouth shapes) with the actual recorded sound of actors speaking. Papagayo makes it easy to lip sync animated characters by making the process very simple - just type in the words being spoken (or copy/paste them from the animation's script), then drag the words on top of the sound's waveform until they line up with the proper sounds.
236 stars 51 forks source link

Resize words on both sides, enhanced file dialog for export to MOHO .dat #88

Closed jensdreske closed 3 years ago

jensdreske commented 3 years ago

This commit enables resizing word boxes from both sides and adds some logic to make it work. What was the reason to disable it in the past?

I also modified the file export dialog for MOHO to suggest a filename with .dat at the end or add .dat, if no other filetype is specified by the user.

Tested on macOS 10.15.7.

steveway commented 3 years ago

That looks pretty nice. The whole resizing system was really bad in the past, I've rewritten it a few times already. It looks like it is almost stable enough to be put back. But I've already noticed a few bugs:

jensdreske commented 3 years ago

thank you for your fast reply and the description of the boundaries behavior! I'll dive into the code asap.

I also noticed when zooming in and out the active area for resizing stays 2 frames wide (as I wanted in the first place), but the handles stay at their fixed size in pixels somehow. This seems to be a better approach anyway, so I like to change the active area to a fixed size in px, not frames.

I just fixed the borders for tagged elements. I have to confess I don't get how to use the tagging system. These trees look nice and interesting but how can I take advantage from it?

jensdreske commented 3 years ago

this commit respects the min and max borders now. Unfortunately it is a bit jittery, because the direction of resizing can switch from left to right while resizing, i guess. Can this be locked somehow...?

jensdreske commented 3 years ago

now it looks good and stable to me. Could you have a look at the latest commit?

steveway commented 3 years ago

This behaves much better. I don't see any real bugs during resizing anymore. These new handles don't look very nice in my opinion, there is some room for improvement, but the functionality seems good. I think we can merge this, I don't see any regression.

About the tags, this is not used yet by any software, but the idea is to add some information for that part. For example you can add information that the character is looking left and smiling to a phrase or word or phoneme. In your animation software you would then either use the tags to automatically modify your animation, or you'd somehow show the tags in the software, in the timeline, for the animators as a guide. Maybe together with something like DeepMoji we can automatically add some tags: DeepMoji

jensdreske commented 3 years ago

Great, let me know if you see some strange behavior. I plan to use Papagayo extensively in a project during the next few weeks and test it. Perhaps we could make it look better using linear gradients in the background to indicate the resize/move area. But I guess this should rather be a part of a new branch GUI redesign

steveway commented 3 years ago

Qt allows for quite extensive styling, those elements are heavily modified QPushbuttons for example. It would be good to allow users to change the styles of all elements themselves in a settings window and maybe save and load those too. That way we can also create a dark mode, some people prefer that.

I'll likely do a few more tests to see if there are really no regressions and will then merge this.