Leaderboard
Popular Content
Showing content with the highest reputation since 07/08/2025 in all areas
-
Thanks for all the comments guys, yeahh I like the topic of food and drink for an image contest great subject for still life. Finally uploaded my short to YouTube, after many months of hard work, I give you a whopping 1:4 minutes of distraction.7 points
-
5 points
-
Thanks to RobCat for cajolling me out of hibernation. He is such a tireless hero of A:M! I sort of 'dropped-out' during covid... life got weird, as it does. After 35 years in TV graphics (started in film production as there was no computers...) and found A:M around 1997 after seeing a Greg Rostami demo at Siggraph in LA. Had a LOT of fun and always felt like AM was just a toy to be played with. I used it for many years professionally, and after covid and health setbacks I took a break from the business and just did other things and never really went back. I'd like to get back into 'playing' again now. I am inspired by the entries for the 'finish the...' cvontest. GREAT WORKS! I am poking around the forum, lots of memories, great people! Its been 5 years... I'm BACK!5 points
-
At long last... the results of the "Finish the Unfinished" Image Contest! See all the entries, hear the winners interviewed and, yes... The Big Scratch-Off! Congratulations to the medalists and a BIG THANKS to everyone who entered! Get yourself a soda, fire up the big screen and... FINISH THE UNFINISHED! There was more than one winner in the Big Scratch-Off... you'll have to watch it to know who you are! Send me a PM on the forum and I will arrange to PayPal you your winnings! @Shelton @johnl3d @Goss @Roger @ChuckGram @R Reynolds @Vance G @wedgeeguy @Michael Brennan @svetlik @createo @Madfox @Rodney @Tom4 points
-
4 points
-
I've been messing about with a 'watchfolder' script (in python) that monitors a directory and when it finds a new sequence of PNG images it converts the sequence to MP4 video and moves the PNG sequence to a datetime stamped directory inside a 'processed' directory. There are a number of things that are still rough about the program. Firstly, the majority of people will not install python, set it up, run python programs etc. right? Correct. So, I compiled it into an executable .exe file. That seems to work pretty well. The python script has a watchfolder.ini file where users can quickly adjust settings. If no .ini file is found default locations and values are used. [settings] watch_dir = F:/watch_folder ffmpeg_path = ffmpeg framerate = 24 timeout = 5 video_basename = video max_runtime_minutes = 30 reset_timeout_on_video = true Here we can see: - The script uses a specific directory/folder so that's where the PNG sequence would need to be rendered to - The script uses FFMPEG for the conversion and the path here suggests it is in the users environmental settings. Perhaps better to specifically state where the FFMPEG executable files are located. For example: C:/ffmpeg/bin - Framerate can be changed to allow more (or less) frames to be generated. - The timeout is in seconds and suggests how long the utility waits to see if another frame is being generated. If frames are expected to take longer than 5 seconds to render this value should be increased. - The base name of the output video can be changed here (it's just named video by default and new videos get incremented with a number each time a new video is created (video1.mp4, video2.mp4, etc.) - Max runtime (if set) limits how long the watchfolder program will monitor the folder. - The timer for the max runtime can be set to refresh each time a new video is created so a new 30 minute timer starts. Set to false if a reset of the timer is not desired. The actual python script: import os import time import shutil import keyboard import subprocess import re from datetime import datetime import configparser # === DEFAULT CONFIG === DEFAULTS = { "watch_dir": "F:/watch_folder", "ffmpeg_path": "ffmpeg", "framerate": "24", "timeout": "5", "video_basename": "video", "max_runtime_minutes": "0", "reset_timeout_on_video": "false" } INI_FILE = "watchfolder.ini" def load_config(): config = configparser.ConfigParser() if not os.path.exists(INI_FILE): config["settings"] = DEFAULTS with open(INI_FILE, "w") as f: config.write(f) print(f"[i] Created default {INI_FILE}") else: config.read(INI_FILE) for key, val in DEFAULTS.items(): if key not in config["settings"]: config["settings"][key] = val return config["settings"] def get_png_files(watch_dir): return sorted([f for f in os.listdir(watch_dir) if f.lower().endswith('.png')]) def get_next_video_filename(watch_dir, basename): count = 1 while True: candidate = f"{basename}_{count:04d}.mp4" if not os.path.exists(os.path.join(watch_dir, candidate)): return candidate count += 1 def guess_pattern(filename): match = re.search(r"([^.]+)\.(\d+)\.png$", filename) if match: prefix, digits = match.groups() return f"{prefix}.%0{len(digits)}d.png" return None def convert_sequence_to_mp4(watch_dir, first_file, ffmpeg_path, framerate, video_basename): pattern = guess_pattern(first_file) if not pattern: print(f"[!] Could not determine pattern from {first_file}") return output_name = get_next_video_filename(watch_dir, video_basename) output_path = os.path.join(watch_dir, output_name) print(f"[+] Converting to MP4: {output_name}") try: subprocess.run([ ffmpeg_path, "-y", "-framerate", str(framerate), "-i", pattern, "-c:v", "libx264", "-pix_fmt", "yuv420p", output_path ], cwd=watch_dir, check=True) print(f"[✓] Video saved as: {output_name}") except subprocess.CalledProcessError as e: print(f"[!] FFmpeg failed: {e}") def move_sequence_to_archive(watch_dir, png_files): now = datetime.now().strftime("%Y%m%d_%H%M%S") archive_dir = os.path.join(watch_dir, "processed", now) os.makedirs(archive_dir, exist_ok=True) for f in png_files: shutil.move(os.path.join(watch_dir, f), os.path.join(archive_dir, f)) print(f"[→] Moved PNGs to: {archive_dir}") def monitor(settings): watch_dir = settings["watch_dir"] ffmpeg_path = settings["ffmpeg_path"] framerate = int(settings.get("framerate", 24)) timeout = int(settings.get("timeout", 5)) video_basename = settings["video_basename"] max_runtime = int(settings.get("max_runtime_minutes", "0").strip()) * 60 reset_on_video = settings.get("reset_timeout_on_video", "false").lower() == "true" print(f"👁️ Monitoring folder: {watch_dir}") print(f"[i] FFmpeg: {ffmpeg_path}, timeout: {timeout}s, framerate: {framerate}fps") if max_runtime > 0: print(f"[i] Will auto-exit after {max_runtime // 60} minutes (unless reset)") start_time = time.time() previous_files = set(get_png_files(watch_dir)) last_change_time = time.time() while True: # Check for Escape key press if keyboard.is_pressed("esc"): print("[✋] Escape key pressed. Exiting.") break time.sleep(1) # Auto-exit if timer exceeded if max_runtime > 0 and (time.time() - start_time > max_runtime): print("[!] Max runtime reached. Exiting.") break current_files = set(get_png_files(watch_dir)) if current_files != previous_files: previous_files = current_files last_change_time = time.time() continue if current_files and (time.time() - last_change_time > timeout): png_files = sorted(current_files) print(f"[⏳] Sequence complete: {len(png_files)} files") convert_sequence_to_mp4(watch_dir, png_files[0], ffmpeg_path, framerate, video_basename) move_sequence_to_archive(watch_dir, png_files) previous_files = set() last_change_time = time.time() if reset_on_video: print("[i] Timer reset after video creation.") start_time = time.time() print("[✓] Monitoring stopped.") if __name__ == "__main__": try: settings = load_config() monitor(settings) except KeyboardInterrupt: print("\n[✓] Monitoring stopped by user.") My take is that this option for a hotwatch directory and execution of ffmpeg script would be best added to Animation:Master itself but if there is interest we can pursue this and more. This script only converts PNG sequences to MP4 video but all manner of video formats is possible and even gif animation. The utility currently does not have an interface/GUI but that would be a next step that allows the user to adjust settings in the interface and even opt for different outputs. Here's the sequence I was testing with: video_0017.mp43 points
-
3 points
-
Um... well... I needed a model to test with and Herodude just happened to be here. After an initial generic standing pose I decided to try a 'trip and fall'. I suppose this might be a setup that would convey the general idea although I think it'd pay off to start over from scratch now that the general idea is there. Added a side view that I rendered just prior to doing the front camera view.2 points
-
2 points
-
2 points
-
Fun to participate! Although it concerned pictures and not animations it still was a joy to join. watching out for the next contest. congratulations to the winners and all who entered the contest!2 points
-
Still checking the forum and still have an old copy of am on my computer. I need to start using it again after all these years. I started when am was running on my Amiga 3000. I remember even talking to Martin on the phone once. Not sure if Steve is still around. Great software.2 points
-
Hi Everyone! I am enjoying the entries and interviews in Robs fantastic 'Finish the' production! Great work! Cant wait to see who wins... is it too late to enter?2 points
-
Congrats Everyone!!! Thanks again Robert for putting this together and for the added scratch tickets prizes. You totally went above and beyond what anyone would expect for an image contest.2 points
-
Robert thank you for putting this together. It was a great project2 points
-
Great work guys! Congrats to everyone for finishing and congrats to the winners!2 points
-
Congrats to the winners! Rob, thanks for taking the time to run these contests.2 points
-
Congratulations everybody. Very well done! And of cause thanks a lot to Robert too for hosting the contest and all the work you did there. Best regards *Fuchur*2 points
-
In the Super Mega Fox Mirror Universe episodes, personalities get flipped. The idea came from the classic Star Trek episode, Mirror Mirror. I think you all remember Spock with the beard. So far, this idea has been lots of fun, opening the door for a flood of ideas and hilarious situations. I'm continuing to change the models around and tweeking the alternate personalities. The first chapter was completed a while back, but now I'm working on the second instilment. Here is SMF (Super Mega Fox) and her Evil counterpart, Sadomasochist Fox1 point
-
1 point
-
I dusted off A:M the other day just to scratch an itch to create, and 48 hours later I'm still here. Then I notice on the forum a contest happened when I wasn't looking! The entries are amzing, and congratulations to the winners. You all are amazing artists, and I am humbled be your talents.1 point
-
Congratulations! I really enjoyed the creativity and originality of the entries. Robert did a great job presenting the winners. This was fun.1 point
-
Chuck, your Angel character is certainly giving literal meaning to the slang term "headlights".1 point
-
1 point
-
1 point
-
Wow ! Amazing stuff ! Great thing is sharing here 😁 I am impressed, thank you a lot man !1 point
-
1 point
-
The one-legged jump! A new render of my animation for the fifth assignment at AnimationMentor, 20 years ago this week. The assignment was to do one long jump and at least two short ones. Now with sound effects i made myself! (animated in Animation:Master, of course)1 point
-
1 point
-
1 point
-
Awesome donuts, I keep seeing that Blender donut video pop up in my feed and these look as good, if not better.1 point
-
Gee fanx Rob! It was the latter… The fire and smoke coming out of Witchy Peg's broomstick. Going through all the files and renders I did on this project makes me realise how long I spent on it - months! But it is like going down memory lane it's all about 20 years old now I can hardly believe it…1 point
-
Here is another modern render of one of my old Animation Showdown animations. I added a school gymnasium set and rendered with radiosity. A birdseye view of the chor looks like this. The set is a completely enclosed box with two kleig lights in the ceiling... A conventional render with those two lights gets this... That is very severe. If I were going to use conventional lighting I would need add a number of fill lights in strategic places. Here is a radiosity render. The shadow areas are no longer pitch black and there is visible detail even where the lights do not directly shine. Overall, however, it is too dark for my taste. Increasing the Intensity of the lights so that the charcters were well illuminated caused the brightest spots on the floor to become overbright and clip. Instead I applied a gamma correction to the radiosity render. I''m liking this much better... Unfortunately, the shadowing that was indistinct in the raw render is now ever weaker. To give that some more bite i rendered a pass with ScreenSpace Ambient Occlusion (SSAO)... ... and composited that by "multiplying" it with the Radiosity. I did that in After Effects but an A:M "composite Project" can do the same operation. This PNG alternates "before" and "after"... SSAO has no anti-aliasing so I had to render those at 3x3 times the normal resolution to make smooth versions suitable for compositing. When A:M introduced Radiosity our computers weren't ready for it. Each render took so long that animation was unthinkable. But now with a modern CPU and NetRender it is within reach. My 640x480 test renders for this scene took only about 3 minutes per frame. After i got my settings decided and cranked up the quality, the full-frame final renders took only about 20 minutes each. Get started with Radiosity with Yves Poissant's Cornell Box Tutorial Learn more at Yves Poissant's Radiosity/Photon Mapping Pages1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
Perfectly executed commercial for donuts I would say. Very nicely done. Best regards *Fuchur*1 point
-
1 point
-
Mmmm! It looks good enough to eat. I'm eager to see what comes next! I have sometimes thought "Food and Drink" would be a fun contest topic but I'm not sure we'd get many entries.1 point
-
1 point
-
Rob, that animation came out better than I thought. Thanks to you and all for the contest. So much talent in this competition.1 point
-
1 point
-
1 point
-
One of the places I used to frequent most on the Hash website, besides the gallery sections was the "A:M Users" area. They did a great job making it feel like a community of 3D artists. In 1999, I connected with Paul Sterling through A:M Users after seeing he was based in Oakville where I was living at the time. We chatted via email and when we decided to meet for coffee realized we lived literally five minutes away each other! We were both graduates of the Illustration program at Sheridan College and like many college grads continued to live in the city. Paul was working on pitching an animated series based on a script his friend had written and asked if I was interested in helping out. It was called "Guardian Force" unfortunately it never got off the ground partly because Paul started a web design company with his roommate, where I ended up working for the next few years. With the help of the Wayback Machine, I was able to look back to when Paul and I had our websites linked to the A:M Users pages.1 point
-
Hell ya ! I found on the internet an useful to resolve my UI and it works now ! 😁 Here is the info that explain very well : How to change dpi scaling settings in windows ?1 point
-
I got my feet wet in the '3D Printing' arena this week... turned out kinda cool! I uploaded a hash model of my Tireman character to sculpteo.com(via OBJ exporter with a .mat file for colors...) and interacted with their online 'repair-bot'... which sent me back to A:M to make revisions maybe 8-10 times as I learned what I could and could not get away with... and mostly what geometry was deemed 'too thin' for the scale I had chose... which was 3.8" tall. This print cost $80...I am pretty happy with what I see. My method was to pose the character using his TSM rig in a chor and save it out from there as a .mdl... which I opened and deleted all the bones and decals from... the 'Tireman' on his hat was a decal so I modeled it and replaced it with real 3D geometry. I was under the assumption that to make a 3D print I would need to make my model 100% waterproof- meaning 1 continuos mesh, but I was wrong. Sculpteo's 'repair' bot- which takes about 5-10 minutes to work- seems all the interjoing geometry into 1 fuseable mesh. I DID model the base and included it's depth in the model, because I did not know if the model would be too top-heavy to stand on it's own. Sculpteo took about 1 week, the box came HEAVILY packaged for damage vis USPost. I might adjust some colors and make some more for 'thank-you's' for my clients. I'll post a wireframe of the model later. I recommend Sculpteo dot com!1 point
-
Hi! I finally got some time to string our PTB movie together...all told it's 4 MINUTES! Please have a look to see if your video is missing or name is spelled incorrectly before I upload it for real, later this week/next. Great work by over 20 A:M animators! ENJOY! AS OF WED 6/17/2009 TShirt is now available! http://www.mysoti.com/mysoti/product/3828581 point