-
Posts
21,630 -
Joined
-
Last visited
-
Days Won
114
Content Type
Profiles
Forums
Events
Everything posted by Rodney
-
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!
-
Strange that I'm seeing the gif animation in the preview of this post but not in the post itself. As far as the project itself... When we download the project file it will of course be missing any referenced images. As such when I render it I get the melting ice and fire but not the character. Still a fun project even without the frozen guy thawing out in the render. Let's see if this appears in this post... yep. It does.
-
I can see the preview of your animation John but for some reason it doesn't display in your post. Looking good! More please.
-
Links to Earliest Web Pages with Hash AM Training material
Rodney replied to Samaritan2's topic in Open Forum
The project I've uploaded should open in v15 and v19. Probablly not v10 but it's easy enough to try. When in doubt use v19 unless there is some specific reason to go back versions... such as to use plugins are features no longer included in later release. Plugins usually need to be recompiled after time passes due to various changes both internally and externally to Animation:Master. I believe the attached in this post is the original project and that should open fine in v10... all the way through v19. A:M will prompt when saving to update so you'll have to make a decision at that time. For those that are curious you can also see various things that I modified. Stanley.zip -
I was doing a Google Map search on various places and I thought... hmmm... Tuckertown... I wonder if the sign is viewable. And... it is! It's a little hard to read but the sign is still there. I see varioius mentions of Tuckertown and Tuckerville online but none I've seen thus far are THIS Tuckertown.
-
We need to get you a copy of SimpleStanley. I know you'd have fun animating and modifying that character. Im attaching a few files related to that. SimpleStanley2024Revisit.zip TLBSimpleStanley2024Revisit.prj Project1.prj
-
Links to Earliest Web Pages with Hash AM Training material
Rodney replied to Samaritan2's topic in Open Forum
What the heck... I always thought Tony Lower-Basch was awesome but... How in the world did I never see his Simple Stanley model/rig? Move the character anywhere and the rig stays in place. FK/IK, Center of Gravity and all sorts of other neat things. Probably broke the model in messing around with it. This retrieved from a link on Vernon Zehr's A.R.M. site. SimpleStanley.mp4 TLBSimpleStanley2024Revisit.prj Stanley.txt -
Links to Earliest Web Pages with Hash AM Training material
Rodney replied to Samaritan2's topic in Open Forum
I thought Yves Poissant's website was largely lost but most of it can be retrieved. Keep in mind that many resources have been brought forward in some way or other. Some resources have made their way to the Extras CD or DVD and others right into Animation:Master itself. Many of these primitive shapes can be found in the A:M's internal Library: BeveledPrimatives.mp4 -
Links to Earliest Web Pages with Hash AM Training material
Rodney replied to Samaritan2's topic in Open Forum
Finding resources sites like Vernon Zehr's 'The A.R.M.' and JIm Sherwood's 'Sherwoods Forest' are particlarly useful because collected sites, links and resources. Definitely look through those. https://web.archive.org/web/20050706040914/http://www.lowrestv.com/arm/ https://web.archive.org/web/20060103000908/http://www.hash.com/sherwood/index.asp -
Links to Earliest Web Pages with Hash AM Training material
Rodney replied to Samaritan2's topic in Open Forum
Here for instance is an archived site of Emilio Leroux... author of the Sweeper Plugin... Where his older SetBias plugins is described and can still be downloaded. (likely only works on old releases of A:M) (https://web.archive.org/web/20041220104344/http://www.moscafilms.com.br/emilioleroux/amplugins_setbias.html) Aside: Emilio was the first to clue me in to the power of tweaking biases on splines. -
Links to Earliest Web Pages with Hash AM Training material
Rodney replied to Samaritan2's topic in Open Forum
Sadly, short of content that has made its way to the Extras CD and Extras DVD the most likely way to get to old copies of those sites is via Archive.org's Wayback Machine. Even there a lot of the connectivity has been lost over time. If you are dilegent however... treasure can be found. Try looking for Animation:Master users of the past whose websites might be archived: https://web.archive.org/web/19970120055548fw_/http://www.hash.com/users.html This will take you to where you can find different vintages of users listed on via www.hash.com: https://web.archive.org/web/20050701082243/http://www.hash.com/ -
Hi Rusty, Always good to see you! There is the Treez plugin that is lauched from an Action. Perhaps you are thinking of that Plugin? It's not easily discoverable... had to remind myself how to use it but my memory came through for me. The key steps: Spline/Lathe a base shape - For example, Lathe a 2 control point spline into cylinder with 5 cross sections and then lop off/remove the top half leaving a circle. Select and name this group "base". Create a spline, plane, grid or set of splines and grids and place these above the circle/base as a target for the canopy to be created. If designed well you might be able to use these patches for leaves later. I call this group of splines and patches "target" although when generating using the Treez plugin It may be whatever is selected that becomes the target. Now the crucial launching step... Create an Action that uses this model, Right Click > Plugins > Treez This should launch and run to project the base toward the target. Edit: Just now see Robert's response and that will likely have more detail. Note that the target's control points are what determines where the branches will be generated and target.
-
How do I make a image file using Hash? is it even possible to make it?
Rodney replied to Pizza Time's topic in New Users
Regarding rendering images to file, Steffen was kind enough to add a Render option to the File menu. This is something even old time users of Animation:Master never had. That (in theory) makes rendering images more easily discoverable than using the classic Render icon. If we haven't saved our project, by default A:M will prompt us to save the project first and then take us to the Render options panel. Aside: In working with 2D folks I've noted that many simply don't have the term 'render' in their production vocabulary. For me. prior to engaging with 3D. I guess it meant 'to tear apart' but more closely means 'to separate or refine into detailed parts' as in 'the man drew a finely rendered drawing of the barn'. After introduction to 3D it just became the way we create images from our projects. -
Something you can do as well is select the Camera and then Right Click > Duplicate to create a copy of the camera that stores the settings of the current camera. Then it's easy to return to that later as needed. I like to do that when I have the camera almost in a perfect position or with ideal settings but feel the need to experiment. Better to just create a new Camera with current settings and press on with that new Camera. Then if those changes don't work out... just delete the camera. A bit off topic... We can also save the Camera as a .cam (Camera) file but that doesn't particular help with animated cameras. There are some other options that can help in those cases such as creating an empty Model to house an Action and then add a Camera to that Action. Then that Camera is an Action Object inside of that Action which can be drag/dropped into Choreographies and even onto other Models. Edit: Steffen also added the View Undo/Redo feature several years back that can be quite useful.
-
Here's a fun experiment. A Clone Trooper helmet created via AI generation... text prompt to 3D model... output to OBJ format. Brought into A:M as a prop object. Here's a link to the original result prior to refinement (on LumaAI): https://lumalabs.ai/genie?one=3a206fdc-7ec1-41ba-8a75-99aaba7a709d&two=d348c729-2e62-4efa-8561-49382fdcd49a&three=1f7d8eb8-f392-4579-9f3a-a4b57478dce1&four=e368e03d-ac93-4fa6-bb7d-cb4b29a28962&view=one&metalness=0&roughness=0.95&color=255%2C255%2C255
-
I must not have as I would have posted it here. The good news is that the helmet doesn't look overly complicated so I'm confident you can model it. Apparently back in 2016 I modeled the following head/helmet which isn't too far away from the Storm Trooper style. I have no idea where that model would be however. (Bit o trivia: Motion Monster was a temporary fork of the 2D Opentoonz program that was used for testing experimental code... created by a guy named Jeremy Bullock which interestingly enough is NOT the actor that played BobaFett in Starwars but does share his name)
-
Wow. Yes, very nice!