-
Posts
21,597 -
Joined
-
Last visited
-
Days Won
110
Content Type
Profiles
Forums
Events
Everything posted by Rodney
-
Next up (I think I captured a character but not the character in the rotoscope. Thought this guy's jaw would be easy to rigs so added that.
-
Figured I'd post some of the modeling I'm doing with @Pizza Time (who doesn't like pizza???) I'll be glad to post the models here but I'm giving them to PT first. In the meantime I'll share some turn arounds and perhaps add some detail about what I did... why I did it and... maybe even why you shouldn't do it that way! (Disclaimer: I don't know any of these characters names so the names I supply very likely will be random) First up:
-
Also, the AI and SVG Wizards work in much the same way (SVG being the more accessible format these days). Any complex fonts and symbols not available can be created in other programs and brought in that way.
-
If you are talking about the Font Wizard then... Right Click in the Modeling WIndow > Plugins > Wizards > Font Wizard You should be able to use all True Type fonts installed on your system (not just Ariel).
-
This is not an great example but I think just creating some models (even if only flat shaped) and overlaying those on top of your shot could be the quickest way to success. Then you just place the control points for the laser beams where you want them and animate where you need them to be. All this to suggest the shot will dictate the approach. Doing some simple placement such as in a model overlay however will allow precision without the setup becoming overly complicated. Then once placed and animated you can get as fancy with the look and feel of it as you need.
-
There are so many ways to do lasers. How to do it without making it overly complicated... now there's the question. We could use: Multiple models Material Effects Boolean Cutters (to make lasers models appear) Patch images Layers Action Objects Odd approaches such as using Hair Objects on paths Particles! Lights! Let me stop there for a moment because Lights might be the way to go. Why? Because they can easily be placed, animated, turned on/off, brightened, and they can have Lens Flair and effects applied to them. Hmmm...
-
As for the duplicate lasers/massive firepower... There are always mutliple ways to do things. The most direct might be to just use the Duplicate option to quickly duplicate the lasers. Then it might just be a matter of staggering the animation in the Choreography to get them timed and spaced.
-
The only thing you seem to be missing is Ambiance Color and Ambiance Intensity on the lasers. You could also add glow but for the most part those two will get the job done. They can be animated too to change color and intensity. The transparency can also make them more (or less) intense. You might want to keep the lasers independent of the spaceships as then they can move independently and in straight lines as lasers usually do and you really only need two keyframes to animate the lasers... starting point and end. You've got this!
-
Vern! Have been thinking about you and your coding prowess of late while wandering though the Extras CD. Good times. We can merge this new username/account with your old one and set a temp password. Will look into the status of your old account and see what is there to see.
-
Here's an interesting model I want to remember as there are some ideas attached to it I want to follow up on: <MODELFILE> ProductVersion=19.5 Release=19.5 PC <POSTEFFECTS> </POSTEFFECTS> <IMAGES> InstanceCropStyle=InsteadOfCache </IMAGES> <SOUNDS> </SOUNDS> <MATERIALS> </MATERIALS> <OBJECTS> <MODEL> <MESH> <SPLINE> 262144 0 1 -1.86365604 2.01896167 0 . . 262144 0 2 -2.22603416 -4.08969021 0 . . 262144 0 3 1.5530473 -2.74371624 0 . . 262144 0 4 2.95078969 1.13890147 0 . . 262148 0 5 2.58841228 5.48743343 0 . . </SPLINE> <PATCHES> 1 1 5 4 3 2 </PATCHES> </MESH> <FileInfo> Organization=Open Animation Library Url=newartofanimation.com Email=rodney.baker@gmail.com LastModifiedBy=Rodney </FileInfo> </MODEL> </OBJECTS> <ACTIONS> </ACTIONS> <CHOREOGRAPHIES> </CHOREOGRAPHIES> FileInfoPos=482 </MODELFILE> I should not have named the attached 'Simple5pointer' as it isn't your standard 5 pointer but rather that very interesting exception where one spline can be a 5 point patch. Consider that we could... although perhaps would not want to... place a 5 point patch or better yet a valid set of 4 point patches directly over a valid area that could be closed as a 5 point patch. These might not be 'attached' in the classic sense of spline attachment but might be 'glued' to CPs so that the floating patch exactly covers the area. A rendering algorithm would likely smooth the transition between meshes. The thought here is that all extraordinary vertex might receive this type of floating patch which because it isn't actually attached with continuity of splines to the main mesh would not adversely distort the area in any significant way. As these floating patches would be 10 or more quad patches (5*2 being the lowest common denominator) they would not be subject to artifacting on the surface and only the edges would need to be given additional attention. If the area to be covered by the 5 pointer the floating patch might consist of 20 four point patches or whatever number required to meet the needs of the model. The users focus would be to choose the density of that floating patch if something other than the default is desired. In the case of the attached mainly consider the variation we can get in patch coverage with a flat 5 point patch on one single spline whether peaked, smoothed or both. Compare then then with a similar set of patches covering that same area but not flat. Added: Note the values of the spline and the patch and how simple they are. What this suggests to me is that (in theory) all 5 point patches could have the same spline patch data. It would just be their orientation and placment that is variable. Simple5pointer.mdl
-
I like this potential approach Robert. And I can easily agree that we need to drop all potential candidates if the CPs are found on the same spline. Note that I have no idea how to do this programmatically of course. With a proper nudge in the right direction though... that's why we are here considering AI usage. Added: I do think we should be able to quickly rule out any spline 'segment' that already has a patch applied to it. We can't apply a 5 pointer to a set of splines that already has a patch applied to it (or at least we don't want to). Or perhaps better stated any spline that has two patches adjacent to it. And, isn't there already a plugin that finds 5 point patches?
-
My mind goes back to the idea of odd number of control points versus even. Ideally, we want to work with even number of control points. 1*, 3, 5, 7, 9, etc. are all problematic... primarily because dividing by two also gives us an odd number. As discussed elsewhere we can't have a single control point... well we can but it's a bug/oddity. The closest we can get to that 1 CP is when another is exactly in the same place... or... from specific POVs we only see 1 control point because another (or more) are hiding behind that CP due to the angle of view. If even then we can subdivide... and subdivide and subdivide... to near infinity. We can also duplicate... over and over again... seemingly forever. So a theory off the cuff for me would be that from counting splines and control points we can narrow the scope of not just how many 5 point patches there may be but also where they may be. Isn't one way to identify any open area (5 point patch eligible or otherwise) to examine that area's normal? If there is no surface then there is no normal. Something we have to account for of course is that an odd numbered spline times an even number will give us an even result. So we might have to account for pairs of odd CP numbered splines, reducing then down to that inventable one that is truely 'odd'. We can then trace along that odd spline and locate eligible areas for 3, 5, 7, 9 and other odd numbered patches. Of course we are (at least theoretically) only interested in finding 5 point eligibility. In other words, if a model has even one 5 point patch eligible area we could get rid of it by increasing the number of splines by 2 or 4 (or some other even number. 2x2=4, 2x4= 8, 2x6=12, etc. A problem with that is overly dense models which Animation:Master deals with (when displaying models) by dynamically subdividing meshes so they have just enough detail/smoothness for where it counts with respect to the viewer/camera. Pixar's SubDiv's get around part of the problem by doing an immediate step of multiplying the mesh by 2. This ensures that all meshes can at least be divided in half/divided by 2 and therefore are always 'subdivisible'. They still have to deal with extraordinary vertexes (3 and 5 point areas etc.) but... low and behold... those are all related to meshes having that odd man out.
-
I downloaded a few models @Darrin S All that I've downloaded have worked. Thanks for sharing! Edit: Actually... I spoke too soon. I had only downloaded models and not projects. In order to include files such as models in a project you'll first need to embed the models. That can be done via the menu just prior to saving via Project > Embed All. Without that embedding the Project files will be missing external resources. Edit 2: I see that your individual files/models are likely what the projects are looking for. What you might want to do in that case is Zip up all the files into a single Zip file and then post that. Then all of the projects and models can be maintained in one single zip file.
-
Oooo.... Accidently found a version of her! Please see attached. Pre-rigged Mum.mdl
-
Unfortunately, I can't find the model and... the TWO SVN projects site appears to be down. Link: http://project.hash.com/movie/svn/active/ Here's what she looks like if we can find her:
-
I can think of several likely candidates. The specific one I'm thinking of at the moment though is Woot's mom from 'Tinwoodsman of Oz'. That might be a little more cartoony than you have in mind though.
-
Here is what we might expect to see in the console window if our project file is set to render 24 frames: This is a batch file running with the following variables: "F:\runme.bat" "Pool1.rpl" "TheJob" "06/24/2024 12:56 AM" 25 " 0:01:26" "F:\am\renderfolder" program F:\runme.bat (batch file) pool Pool1.rpl job TheJob time 06/24/2024 12:56 AM frames 25 elapsedtime 0:01:26 outputfolder F:\am\renderfolder ffmpeg version N-112991-g081d69b78d-20231215 Copyright (c) 2000-2023 the FFmpeg developers built with gcc 13.2.0 (crosstool-NG 1.25.0.232_c175b21) configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20231215 libavutil 58. 33.100 / 58. 33.100 libavcodec 60. 35.100 / 60. 35.100 libavformat 60. 18.100 / 60. 18.100 libavdevice 60. 4.100 / 60. 4.100 libavfilter 9. 14.100 / 9. 14.100 libswscale 7. 6.100 / 7. 6.100 libswresample 4. 13.100 / 4. 13.100 libpostproc 57. 4.100 / 57. 4.100 Input #0, image2, from 'F:\am\renderfolder\image.%04d.png': Duration: 00:00:00.83, start: 0.000000, bitrate: N/A Stream #0:0: Video: png, rgb48be(pc, gbr/unknown/unknown), 200x200, 30 fps, 30 tbr, 30 tbn File 'F:\am\renderfolder\output.mp4' already exists. Overwrite? [y/N] y Stream mapping: Stream #0:0 -> #0:0 (png (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 0000023141102c80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0000023141102c80] profile High, level 1.2, 4:2:0, 8-bit [libx264 @ 0000023141102c80] 264 - core 164 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'F:\am\renderfolder\output.mp4': Metadata: encoder : Lavf60.18.100 Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(tv, progressive), 200x200, q=2-31, 30 fps, 15360 tbn Metadata: encoder : Lavc60.35.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A [out#0/mp4 @ 000002313eec1500] video:28kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.984505% frame= 25 fps=0.0 q=-1.0 Lsize= 29kB time=00:00:00.76 bitrate= 313.7kbits/s speed=16.6x [libx264 @ 0000023141102c80] frame I:1 Avg QP:23.13 size: 2367 [libx264 @ 0000023141102c80] frame P:13 Avg QP:27.04 size: 1478 [libx264 @ 0000023141102c80] frame B:11 Avg QP:27.13 size: 606 [libx264 @ 0000023141102c80] consecutive B-frames: 28.0% 40.0% 0.0% 32.0% [libx264 @ 0000023141102c80] mb I I16..4: 34.3% 42.0% 23.7% [libx264 @ 0000023141102c80] mb P I16..4: 0.6% 7.0% 1.4% P16..4: 22.9% 26.1% 15.0% 0.0% 0.0% skip:26.9% [libx264 @ 0000023141102c80] mb B I16..4: 0.2% 1.8% 0.2% B16..8: 37.1% 17.4% 5.5% direct: 1.9% skip:35.8% L0:40.8% L1:43.2% BI:16.0% [libx264 @ 0000023141102c80] 8x8 transform intra:63.2% inter:61.5% [libx264 @ 0000023141102c80] coded y,uvDC,uvAC intra: 62.8% 63.9% 34.4% inter: 24.8% 18.5% 3.2% [libx264 @ 0000023141102c80] i16 v,h,dc,p: 72% 1% 18% 8% [libx264 @ 0000023141102c80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 9% 21% 10% 4% 7% 3% 6% 9% [libx264 @ 0000023141102c80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 16% 23% 6% 7% 10% 5% 3% 7% [libx264 @ 0000023141102c80] i8c dc,h,v,p: 59% 13% 20% 7% [libx264 @ 0000023141102c80] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0000023141102c80] ref P L0: 80.0% 15.9% 2.9% 1.1% [libx264 @ 0000023141102c80] ref B L0: 95.0% 5.0% [libx264 @ 0000023141102c80] ref B L1: 99.5% 0.5% [libx264 @ 0000023141102c80] kb/s:271.08 MP4 file created successfully. Creating zip archive of PNG images a image.0000.png a image.0001.png a image.0002.png a image.0003.png a image.0004.png a image.0005.png a image.0006.png a image.0007.png a image.0008.png a image.0009.png a image.0010.png a image.0011.png a image.0012.png a image.0013.png a image.0014.png a image.0015.png a image.0016.png a image.0017.png a image.0018.png a image.0019.png a image.0020.png a image.0021.png a image.0022.png a image.0023.png a image.0024.png Zip archive created successfully: F:\am\renderfolder\imagesTheJob.zip Deleting original PNG files PNG images archived and original files deleted
-
For anyone that wants to lean forward a little here is a batch script (to be named runme.bat) that targets all PNGs in the target directory to create an MP4 video using FFMPEG. If successful in creating the MP4 file it then zips up the PNG files (using Windows Tar.exe utility). If the zip file is created successfully it then deletes the PNG files. Disclaimer: This batch file is more complex than it really needs to be but I started to dive into error checking which allows for stripping of special characters from the variables passed by Netrender and checks to ensure files are properly created before continuing and especially removing/deleting files. The 'setlocal enabledelayed expansion' is new to me as well and presumably allows for the most current value of variables at time of command execution. I need to research more to determine how to strip all special characters out of a variable but it might be better to simply... simplify. TODO: I would like to master timestamping of files to better facilitate archiving and backups. Gotta deal with those special characters... @echo off setlocal enabledelayedexpansion cls echo This is a batch file running with the following variables: echo %0 %1 %2 %3 %4 %5 %6 echo. set program=%0 set pool=%1 set job=%2 set time=%3 set frames=%4 set elapsedtime=%5 set outputfolder=%6 rem Strip quotes from variables for %%I in (program pool job time frames elapsedtime outputfolder) do ( call :stripQuotes %%I !%%I! ) echo program %program% (batch file) echo pool %pool% echo job %job% echo time %time% echo frames %frames% echo elapsedtime %elapsedtime% echo outputfolder %outputfolder% REM Run FFMPEG with the dot 4 digit wildcard pattern (image.0000.png) ffmpeg -framerate 30 -i "%outputfolder%\image.%%04d.png" -c:v libx264 -pix_fmt yuv420p "%outputfolder%\output.mp4" REM Simplified error checking if exist "%outputfolder%\output.mp4" ( echo MP4 file created successfully. REM Create a zip archive of all PNG images echo Creating zip archive of PNG images tar -a -cvf "%outputfolder%\images%job%.zip" -C "%outputfolder%" *.png REM Check if the zip file was created successfully if exist "%outputfolder%\images%job%.zip" ( echo Zip archive created successfully: %outputfolder%\images%job%.zip REM Optionally delete the original PNG files echo Deleting original PNG files del "%outputfolder%\*.png" echo PNG images archived and original files deleted ) else ( echo Failed to create zip archive: %outputfolder%\images%job%.zip ) ) else ( echo Failed to create MP4 file. ) pause exit /b :stripQuotes set "%1=%~2" exit /b This script does expect to find FFMPEG so if not in the Windows Environmental path it should probably be placed in the target directory or other location where it can be found by the script. We could also hard code the exact path to FFMPEG.
-
I want to add some information related to Netrenders Event Commands that allow us to run batch files and programs after a job completion (or frame completion). This process can allow use of other programs to post process output from Animation:Master's Netrender and help us understand how we can do the same basic process without Netrender as well. There are three basic components of this process: 1. Set up the Event Command in Netrender 2. (Optionally) structure a (textual) batch file to take arguments from Netrender and pass them on to other programs 3. Run the desired programs and processes This does assume a basic understanding of running Hash Inc's Netrender and how to use a text editor (to create batch files) Setting up the Event Command in Netrender Here we've selected Job Completed rendering as our trigger event. Commands added here will be executed upon successful completion of a rendering job. Note the arguments/variables that Netrender can pass to other programs; pool name, job name, time of completion, number of frames rendered, elapsed time of rendering and the output folder files were rendered into. In this example our command will pass all of these arguments to a Windows batch file where we can then use those as needed. Note the specific formatting of the path where the program, in this case a batch file is identified in quotes with extra back slashes to account for one slash being an escape character. If or location was deeper in the directory structure we might need to repeat that pattern thusly: "F:\\deep\\deeper\\stilldeeper\\runme.bat" The arguments we will use as variables later are then added after that command: %p %j etc. The (Optional) Batch File A Windows batch file is simply a text file with the .bat extension that can be used to run useful commands at the command line. Note that a batch file can be ran independently of Netrender so in many cases we might simply run the batch file rather than wait for Netrender to run it. Here we do want to pass information from Netrender to other programs so we want to take advantage of that capability in batch files. So we open our favorite text editor and create a text file named "runme.bat". (as that is referenced by Netrender via the Command Event. In our runme.bat batch file we might create something like the following: I won't explain everything here but the important part is that we are allowing Netrender to run a script that in turn can now run other programs. Here we take the passed arguments from Netrender (the %1, %2, %3 and other arguments) and use them to set up variables we can use elsewhere in our batch file. In this way we can refer to something recognizable like "UsethisVery SpecificVariableName" rather than %8 which we may forget what it references. Note that %0 references the current program being run which in this case is our batch file. So next we use 'set' to store the arguments from Netrender as recognizable variables. Here I've used the echo command just to display information to the screen. In the case of our story this might be the program we run where we use those variables. Each time the batch script encounters a variable it uses that variable's value in its place. I've added the pause command at the end to make sure the user has a chance to see everything and acknowledge the information before the program closes. Pause can be given specific messages after the command but by default simply asks for a key to be pressed in order to close the program. Running the Program (Program Output) Here we see what our automated batch script has produced: Rather than just output text or information we might prefer to convert an image sequence from PNG images into a GIF animation, or an MP4 video... scale images up/down... run backups... feed the cats... or any crazy little thing we can dream up. Running some of these useful options, such as using FFMPEG to modify, convert and merge images, video and audio is what we will try to explore next.
-
WIP - Pennsylvania Station (sort of)
Rodney replied to R Reynolds's topic in Work In Progress / Sweatbox
Great sense of scale in all of these models @R Reynolds -
Nice. Does this mean you figured out how to do the random values confined to patterned areas?
-
Tinkering mode caused simple elephant
Rodney replied to johnl3d's topic in Tinkering Gnome's Workshop
Good news. That does appear to resolve the problem! -
I should add... Clicking on the sprockets at the top will refresh the forum and thereby display any new content.
-
We don't get to compete for placement on an A:M program CD any more so the banner is a good way to pick up where that left off... with even more frequency. The emphasis is to highlight topics of interest from the moment someone opens the forum. Post cool stuff and we'll spotlight it at the top of the forum! If you have interest in special imagery for the banner not related to specific posts or images or animation you'd like to see released on a specific day... let that be known and we'll try our best to accommodate the request. Private message @robcat2075 or @Rodney for any secret squirrel stuff.
-
Fun stuff John!