Babylon~cinematics

What are you showing here with the villain rig screenshot @aFalcon? Is that a blender-like rig in Babylon? And editable directly in Babylon?

1 Like

ON POINT @bigrig!

Itā€™s blender. yes,

GOAL: animation~migration, anm MORE IN BABYLON, less in Blender.


We have rigs, and Widgits.

We RECORD movement into POSROTs for mesh

let POSROT = {pos:{},rot:{},meta:{}}

Converting that back into keyframeā€¦ for bones, would be a NEAT TRICK!

Tried last year (or 2) - and the two are DIFFERENT SYNTAX. But probably user error.


BONE ANIMATIONS

Seems to need aTRANSLATION~LAYER.

From POSROTS to beginAnimation.

I_donā€™t_know_how_to_do_that. Anyone? Searching so longā€¦

KeyFrameFactory() - takes a POSROT-Array of BONES.

keyFrameFactory ({bones:[pos:{},rot:{}]})

Somehow translates into key framesā€¦


No doubt.

Animating in BABYLON (pose KeyFrame) feature, smooths export process!


Bet DK showed BEST~PRACTICE~BONE~ANIMATIONS, in runningBot.

Iā€™ll look there. Scheduled: episode 2.

  • Extend MESH EDIT workflow loop (widgets/posrots) to BONES (and a couple other things).

Have you done BONE ANIMATIONS in BABYLON?

Do you search for similar workflow?

Its gonna be great.

:eagle: :slight_smile:

SIMPLICITY - PRINCIPLE.

We have to TRAVEL~LIGHT.

Else weā€™ll not pass the APP~JUNGLE (to production).

The 3DPipeline is too long. Must conserve energy on every step.

Make many ANIMATION~SIMPLIFICATIONS.

:eagle: : )

@Deltakosh thank you.

You can see my challenge to be BRIEF. Iā€™m working on it! : )

UPDATE: In upcoming WEB~CINEMATIC, there will be BUGZ:
image

Next year, ALSO an attempt at SKELETON~SEQUENCING, with a deep~dive into shaders.

And a way to ā€˜make it easy for folks.ā€™

Then, I might be out of time.

Thanks again,
:eagle:

1 Like

Regarding rigs/bones:

My thinking has been that itā€™s too complex for an average person to manipulate bones/rigs. So, Iā€™ve been approaching it as a matter of sequencing together and blending pre-recorded keyframe clips. Of particular interest to me is to see if itā€™s possible to use Webcam for rudimentary MoCap, which could be used to allow an average person to sequence animations naturally. I think thereā€™s some good promise here. See: https://twitter.com/benrigby/status/1182768926171783169.

I thought I had a really great idea a couple of months ago, but it didnā€™t pan out (yet). My thought was to download the keyframe data from Mixamo animations and to save it in an animation library. eg: idle.animdata.json; jump.animdata.json. And then to apply that animation data file to any model that used a Mixamo rig (since all the rigs are the same). The effect would be that you could use Mixamo/Fuse to make 1000s of characters - and the animation could then be added with a single line of code.

It didnā€™t quite work out. See:

But parts of the mesh are actually animating correctly! So, maybe some promise here. More work needed.

2 Likes

Awesome! Respondingā€¦

You are a GOOD COMMUNICATOR.

LIKE - all of those concepts.

Thanks for those LINKS!

:eagle: : )

1 Like

Yes that! I have done that! Really. It is possible (or something similar). Or maybe not! : )

Here is what I use:

let ANM = {pos:{},rot:{},meta:{}}

Then, run that through an animation~engine.

Kinda like COMPILING ANMS at RUNTIME.

Similar to ā€˜clipsā€™ but different, as we use FRAMEZ and SEQZ

  • in factoryPatterns() (also config pattern). Looks like this.

Pseudo-Code:

LOOP, SEQ[n], FRAME[n], ANMZ[n];

  • beginAnimation()

(sorry if Iā€™m on a tangent, here goesā€¦)


PRINCIPLE - keep everything as simple as possible, and slowly scale up.

So, for BONE-ANIMATIONS, by design, CARTOONY-BONES! : )

:eagle: : )

Oh you got that working!?
Thatā€™s great.

My first effort was to loop through the animation matrix - applying position/rotation to the bones (was using matrix data exported from Blender: https://bjs-playground.s3.amazonaws.com/anim.idle.justdata.json). I think that sounds very similar to your approach above (I didnā€™t get it working thoughā€¦ ended up with mangled characters).

1 Like

Yes. Similar. Very cool.

Difference is no matrix math. Though I LIKE.

ANMS saved in JSON~SCRIPT.

BTW: I only animate MESH, not BONE (yet).

POSSIBLE-SIMPLIFICATION (in what to save):

Save ONLY two Numbers if you can INTERPOLATE.

xpos:{start:10, end:100}

Iā€™ll dm.

:eagle: : )

MAJOR~BREAKTHROUGH:

CINEMATIC - FFWD and SLOWMO - with very simple code:

nx.RUNTIME=1; //RUNTIME, FFWD-SLOMO-confederate-.

EXAMPLES:

nx.RUNTIME = 0.1 //FFWD-.

nx.RUNTIME = 2; //SLOWMO-.

How?

{ ā€¦ duration:8000*nx.RUNTIME,easing:ā€˜swingā€™ }

RunTime~DISRUPTOR pattern!

:eagle:

2 Likes

I am so impressed with what you guys are doing!
Last Spring I taught a course on Real-time CGI using the Unity game engine. The goal was to create cinematic shorts using Unity.
I would so much rather do this with Babylon!

Looking forward to your release in 2020 @aFalcon!

2 Likes

:pray: Thank you for your kind words @drburton!

[DR in the house]. Do you have a link to program/projects?

Sounds gr8. Good to see you again. DR.B. : )

TLDR; Here is the 1st planetoid:

At about 73% to production.

The World is a ā€œSTAGEā€.

GOAL:

every student a world of their own making, to build up any Hero Journey they IMAGINE.

Very happy to collaborate. DM is open. : )


Many concepts cataloged, will compile, and release ALL - 2020.

Please USE CONCEPTS, anyone, SHARE~BACK variations.

To build 3DCollages (or not).

[NBD~License, is CC0+MIT, no warranty]. No big deal.

Talkin to DOC.BABYLON. : )

Ok so now the good stuff!


Very SURPRISING THINGS! All over the place.

ā€œTreasure Everywhere!ā€ ~ Calvin & Hobbes.

WEB CINEMATICS is endlessly~FASCINATING!!!

As you know. Check it outā€¦


NOTES:

  1. FFWD and SLOMO (flags), CRITICAL to change RUNTIME (speed) in DEVELOPMENT.

    • FFWD to SKIPTO, edit any FRAME, then SLOMO to really SEE a glitch, in a long SEQUENCE.

    • extremely important concept for TIME-TO-PRODUCTION metric.

    • It avoids two massive problems, either: ā€œstate-machineā€ or SEQUENCE api overhead (spaghetti).

    • We need a REALLY FAST ANM PIPELINE for this to work. Often, ANM DEV too slow!

  1. BIG UX improvement. We were Mixing TXT and SEQUENCES wrong. Totally wrong.

    • Notice, it is MUCH BETTER, to pause the MOVIE, show TXT/SCROLL, then resume play.
    • that came from this:

PRINCIPLE: Mix the Medias. Allā€™uvā€™em. Mix all that mixes. Why? Surprises. Exactly that. : )

  • called one concept FREEZEFRAMES. When trying to be cool, like day~time~cartoons!

  • different in ways like: mix in modern culture and emulate SMS. That.

  • plenty of room for clever things. We look at Twitter, TikTok, alluvtheabove.

  • cool new things. new verticals.


Sorry so LONG. Honestly, endless. : )


  1. PRECISION ~ CINEMATICS.

It is about PRECISION. Attaining it and Crafting it. Over and over. Faster and faster.
TWO PRECISIONS (of the MANY that you know):

- FIRST to BUILD or PRACTICE the ABILITY, just to get to PRECISION (attaining it).

- Then, a DEEPDIVE into creative~flow to wrestle~back a VISION of the ANM PRECISELY.

Deeply Gratifying.

Movie Cinematographers do that - and that is what makes web cinematics so fascinating.

Where the code bridges into ART - go there. : )

- Documenting all *that* ABSTRACT PATTERN and PROCESS stuff . As the pipeline plays out.

- All year, "building tools", "building movie", back and forth - doc the PROCESS.

- To help U get there 2.

Exhausting. And rewarding. It works. Will share~back. Yes. : )

GOAL: teach web cinematics!


@drburton - always happy to share code for your projects. NBD.

:eagle: : )

2 Likes

Sounds like great progress @aFalcon. Cool re: slomo/ffwd.

My Dfilm2.0 builder is coming along also. Have got 2 of the 7 build phases complete. They are: World, Camera, Action, Characters, Dialog, Music, Send. To simplify choices for end-user, I decided to bake a lot of functionality into ā€œWorldā€ like lighting, skyboxesā€¦ Will post a screencapture soon. Itā€™s really coming together!

2 Likes

Yeah man!

Listeningā€¦

2 of 7 build phases!!!

That is gr8. : )

NICE build phases cool!

LIKE your naming~convention.

ā€œCHARACTERSā€:

[pls use, aok, nbd, idk, btw: always]. : )

My SCREENPLAY SCRIPT METHOD calls them: HERO, FOE, ACTOR.

For Design~Principle of SHORT~TOKENS.

Because laterā€¦ need the DENSITY.

As you know.

ā€œDialogā€

  • condensed down to TXT (SHORT~TOKEN).
  • then broke that into subsets of BOTH: 2D & 3DTXT, HYBRIDUI.

Merry Xmas! Happy Hanuka! Kwanzaa! Etcetera!

Cool stuff in little boxes. : )

ā€œMusicā€, called it SONICS. For different Design~Principle:

  • includes ACTOR mp3ā€™s. And SCENE~SONICS. Sonics is a unique~token for All Sounds.

TLDR;

Custom extensible~naming~mechanisms, and why they are important for cinematics.

hardstop


ā€œSendā€??? - What, what, what? That is NEW!

SEND WHAT?

You HINT a TRICK?


ā€œBakingā€:

  • I wish I could bake. Not baking. Probably need to.

Have a trick for LIGHTING. Still near 60FPS (barely). Here ā€¦

Specular cyan everything.

Artificial moonlight. : )

Can that be optimized by baking? I will try someday.

In blender I put specular cyan on everything and it just makes me so happy.

What does Baking do for your FPS?

Full-Steam-Ahead!!! Lol.


Thanks for mentioning!


Yes, PLS send screenshot so gr8 2 C. : )

Happy to help. Hope it helps someone,
:eagle:

1 Like

@aFalcon:
Different kind of baking: just removing options from user to keep simple (but not technically ā€œbakedā€ in the 3d sense of the word). FPS still at 60, but having to avoid adding effects that I wish I could keep like fog/god rays / post-processing shadow effects. May add those back in someday as a desktop-only option - for screen recording from fast machines.

Send! Send is the key. Itā€™s my #1 learning from years of building web apps. You gotta build ā€˜sendā€™ into the fabric of the workflow. Itā€™s how distribution works. Only way to grow fast without marketing budget.

Gotta try your specular cyan trick. That sounds neat. Getting the lighting to be consistently beautiful and yet flexible for various scenarios (dawn, day, sunset, lamp effects, etc) has been challenging.

Happy thanksgiving!

2 Likes

Oh COOL! Thanks. Same. I went Low-Poly, big world.

Ok, Iā€™d like to hear more about SEND, when youā€™d like to share it.

Is SENDā€¦ JS Modules, or?

Yes. Lighting is challenging.

LIGHTING~ PRINCIPLE: not possible to see one light - when all the lights are on!

So to fix ONE light, I have to:

  • TURN ALL THE LIGHTS OFF
  • fix the 1 light
  • then turn ALL BACK ON.

That eluded me for a year.

PRINCIPLE: good LIGHT EDITS require good LIGHT SWITCHES!

Happy Thanksgiving. :slightly_smiling_face:

:eagle:

1 Like

UPDATE:

Added great audio tracks from freesound.org and https://opengameart.org/

  • carefully listed all licenses, including cc0 links, and derivation descriptions for cc3.

  • remixed and added reverb (distortion, etc) with Audacity and LMMS.

  • export to BABYLON. Done.

SOLUTION: optimization for lazy-loading audio was easy.

  • I was front-loading audio. do not createSound until each scene. :heavy_check_mark:

All is working fantastically.

Still on schedule.

3 Likes

F0rtn!te botches another ā€œlive eventā€.

Still no STORYLINE

IMHO :grin:
:eagle:

FIX: for Sound End

Did this:

                let soundEndDamper=0;
                nx.scene.registerBeforeRender(function soundEndLoopz() { 
                    if(++soundEndDamper%100===0){return} //frame-damper-.
                    if(nx.sonics.footsteps1.isPlaying&&!nx.sonics.footsteps1.endSound){ nx.sonics.footsteps1.endSound=1; } //init
                    else if(!nx.sonics.footsteps1.isPlaying&&nx.sonics.footsteps1.endSound){ nx.scene.unregisterBeforeRender(soundEndLoopz); /*self-removing-.*/ } //done
                });

It is a self removing animation loop, called LOOPZ, for unique search in code.

Have a bunch of those all over the place, this one tells when sound is done playing.

Kinda cool? Useful for many things. : )

:eagle:

Cool.
Iā€™ve been using p5ā€™s sound library:
https://p5js.org/reference/#/libraries/p5.sound

Bunch of neat stuff there - esp. tying events to each second of the sound (and onended is reliable).

1 Like