COLLAB2021 - HQ - Stylized Fantasy Environment

Kent Trammell



Announcement #6: Final Presentation Premiere!


Announcement #5: Conceptualizing the Final Animation


Announcement #4: Closing Post


Announcement #3: Blog, Syncing Saga & More


Announcement #2: Updates & Loose Ends!


Announcement #1: Collab2021 has officially begun!


THE PROJECT

#Collab2021 is focused on stylized, low-poly, fantasy environment creation! Specifically this gorgeous illustration by Vadim Zaitsev:

You can find more from Vadim on artstation.

Through April we will be creating a comprehensive 3D version of this environment and we need a committed team to make it a reality! If you’re not sure what this Collab format is all about, check out the blog article first. If you know what you’re getting into, continue reading about how to register and what the schedule will look like.

REGISTRATION

Collabs are open to all Citizen members (membership is required to participate). You need to be subscribed by April 5th and remain subscribed through May 4. You're welcome to subscribe earlier so you can access the recommended courses listed below. This option could be helpful for focusing on learning from content before the collab begins at which point you can focus primarily on applying what you've learned.

Collabs don’t have an official web page or system built into our site. Instead it’s facilitated through the Forum, Live Streams, and Google Docs. Fill out this form to register for the Collab. This will give us insight into how many people are interested, the skill levels involved, and some other info that’s helpful before we get underway.

The last day for registration is April 5th. After April 5th the team will be closed! [evil laughs]


SCHEDULE / OUTLINE

Disclaimer

As with any production, one can only plan so much before unanticpated things come up. That’s to say we will be at the mercy of the project and the content could change as needed. Schedule should remain the same though.

Week 1 (Apr 5 - 11): Modeling

Goal: Since we’re working within a low-poly, stylized (simplified) genre I think we could finish all the modeling in the first week. For most assets in the scene the modeling is straight forward. For trees and bushes it’s a little different. I highly recommend using the Sapling Addon included with Blender) as taught in the stylized forest course. Similarly clouds will be a unique asset to tackle; something we will need to brainstorm as a team.

Stream 1April 6th @ 1pm US central time

Helpful Content:

Week 1 Homework Due: April 11th by midnight

Week 2 (Apr 12 - 18): Sculpting Accents

Goal: It’s possible that sculpting will be the next step for some assets (ex: rocks) and not for others (ex: trees). If your asset doesn’t need sculpting then your task this week is UV layout and texture painting a color map. If your asset needs sculpted detail, you can do that in addition to the UV layout and texture painting. By the end of the week we all should have our completed model painted with a color map and sculpting done if applicable.

Stream 2April 13 @ 1pm US central time

Helpful Content:

Week 2 Homework Due: April 18th by midnight

Week 3 (April 19 - 25): UV's & Texture Painting

Goal: This should be an easier week than the first two. Since the style is simplistic, the material can also be simplistic. It can also be more complex if one is so inclined. Things like procedural texture accents, procedural water, randomization of the same material across multiple objects, etc. Additionally we will dip our toes into lighting. At the very least we need to implement lighting in a way that informs our material qualities. At the most I want us to light our asset in a standalone presentation, as if you were presenting it to a supervisor for approval.

Stream 3: April 20 @ 1pm US central time

Helpful Content:

Week 3 Homework Due: April 25th by midnight

Week 4: (April 26 - May 2) Materials & Finalization

Goal: As with most productions, the last stretch is the most unpredictable and often results in a lot of problem solving. I expect this week to be a smorgasbord of  tasks from catching up / putting final touches on assets, assembling the final environment together, polishing lighting and atmosphere, and who knows what else.

Stream 4: April 27 @ 1pm US central time

  1. Project status update
  2. Homework reviews
  3. Overview week 4
  4. Demo: 
    • Environment lighting (Day)
    • Environment lighting (Night)

Helpful Content:

Week 4 Homework Due: May 2nd by midnight

Closing Stream (May 4)

With the project officially complete, this stream is meant to be a celebratory bookend. We will revel in our hard work and discuss a post-mortem: What worked well, what could be improved next time.


Communicating as a Team

Of course communication is key for effective teamwork. To facilitate this we will utilize a network of forum threads.

Discord: Our resourceful Team Leads have setup a discord server for us! The server features channels for each team including audio + video capability.

Discord is best for LOW LEVEL communication since it’s the easiest, quickest way to communicate. By “low level” I mean casual, small-consequence discussion. The main negative of persistent chat is its brief nature; comments appear and then immediately get buried. This is fine for the majority of our discussions (let’s say 75%) but we want to avoid important info getting buried.

HIGH LEVEL communication is the important stuff that shouldn’t get lost in a persistent chat. Please keep high level discussion like protocols, announcements, lengthy troubleshooting and idea pitches on the forum threads listed below.

HQ Forum Thread: This thread is the foundation of our communication structure as denoted with "HQ" in the title. Discussion here should be broader in context; having to do with the project as a whole. It's the place I will be posting important announcements for everyone involved. It's also  ideal for general questions about the project and light-hearted "water-cooler talk" for the team. Things like encouragement, inspirational info / artwork, relevant memes. I love memes.

It's NOT ideal for *specific* things like questions pertaining to a certain part of the environment, WIP of individual parts, or person-to-person discourse.

Team Threads: If more than 30 members register for this project we will divide into sub-teams. Each sub-team will collectively tackle a group of related assets and will be lead by a member (most likely contributors from #collab2020). Each team will have a dedicated forum thread for specific discourse pertaining to their parts. Same guidelines as the Central Thread but with a specified topic.

Individual Homework Threads: Each contributor is required to create a thread for themselves for posting homework confirmation at minimum. This is also where any discourse about your specific part happens. You're encouraged to treat it as a work-in-progress (WIP) thread, posting updates about your work as you go.

Direct Contact: Tagging is ideal for directly contacting me or anyone involved with the project. Tag me (@theluthier) with questions or advice in any of these threads. I guarantee I will be checking my notifications regularly every Monday-Thursday throughout the duration of the project.

Of course the more people that register the less accessible I will become for direct / lengthy conversation. This is where sub-team leaders will be invaluable. If we break into sub-teams please contact your leader first, then me second.

Livestream Chat: The realtime interactivity of streams is another great way to communicate. Taggin works there as well along with an additional tool: Typing "[Q]" in the chat adds a blue "question" label to your post. This makes it easier for me to spot direct questions for me to answer while streaming.

DISCLAIMER: These guidelines are only intended to streamline the challenging task of communicating globally across the internet. They're not meant to create a tense atmosphere of rules! We're a relaxed, reasonable bunch of Blender heads. If you don't know where you're supposed to ask a question, go ahead an ask somewhere and you'll be answered or kindly directed to the right place if applicable.


Syncing Project Files

Everyone working from the same project directory is important for a production like this. From linking models back and forth to sharing texture maps, it's a must for a smooth working experience. Further protocol like file naming conventions and saving files in the right place is necessary to avoid a confusing mess.

The following instructions are depending on you syncing the project's Google Drive folder to your local computer. If you haven't done that yet, please check the Announcement 2 post for instructions.

For this project I want to make the process as simple as possible for participants. To achieve this I've come up with a "plug-n-play" system. Basically I will save a placeholder .blend file in both the WIP and MODELS folder for each participant by including their username in the filename. Once the placeholder is present, each participant saves their work into the MASTER collection within the scene and that's it! I take it from there.

I covered this concept in the Week 2 stream but here's a set up step-by-step instructions as well:

  1.  Locate and open your WIP placeholder .blend file that contains your username. Within the "WIP" directory there are folders corresponding to asset categories. Navigate through these folder to find the .blend with your username.

  2. Once opened, you will either see a proxy version of your asset or a blank scene. Either way, copy and paste all the pieces of your asset into this .blend file.

  3.  Look for the "MASTER_" collection in the outliner. The naming convention is "MASTER_category_asset_username'. This collection will be linked into the final assembly file. It's imperative that you move every visible part of your asset into this collection.
    1.  You can have other objects in this scene like reference objects, image planes, utility objects (empties), etc. But they must be outside this MASTER collection.

    2.  Do not name any other objects or collections "MASTER" in the scene.

  4.  If your placeholder scene has a proxy object in it, you need to align your version of the asset to the proxy. Scale it, move it, rotate it however you need to match the proxy.
    1.  Note: These proxies also have a copy of the master camera in the scene for which the proxy is aligned to the art.

    2.  If your placeholder scene does NOT have a proxy in it but DOES have a master camera, your asset should align to the camera, simply keep your asset in the center of the world when saving

    3.  If your placeholder scene does NOT have a proxy NOR a master camera, simply keep your asset in the center of the world and scaled according to the human proxy in the scene.

FAQ

How much time am I expected to commit to this project?

We stress commitment because it's the best to ensure A) the project succeeds and B) lasting skills are learned. We only expect you to commit as much time as you can. DO NOT commit full-time hours to this project (8 hrs a day). As the instructor, I should be the only one doing this.

Everyone else (sub-team leads and contributors) shouldn't need to apply more than 2 hrs per day to the project. It's all relative depending on your availability and skill level. If you can't afford 2 hrs per day you can pick a simpler asset. If you have more time to contribute then perhaps choose a more complex asset. It's up to your discretion.

If you only have 2 weeks available in April, that's OK! Just let me or your sub-team lead know and it's all good. 

How do I tag someone?

Like twitter and instagram you simple type "@username" to tag someone. Tagging fires a notification to this person. Everyone's username is either A) in parentheses beside their display name or B) substituted if they don't specify a display name:


What service do we use for syncing files as a team?

We used Google Drive last year and it worked pretty well. Syncing our files to the cloud proved to be a crucial way for everyone to stay up-to-date conveniently. Since we lean heavily on library linking, it's imperative that we all be up-to-date. Google Drive is very accessible too; most people have an account anyway.

If you don't have one, sign up to get 15GB of storage for free. That should be plenty of storage for our project.

I know people are hesitant to sign up with Google but a burner account just for this project isn't too invasive, right? Otherwise Mega drive could be a good alternative since it offers 50 GB for free.

What if I'm not available at the time livestreams are broadcast?

Unfortunately the stream time can't be ideal for everyone. If you're not able to watch the stream live, I will post the recording within 24 hours of broadcast.

When is homework due exactly?

Homework is due every Sunday @ midnight each week. This means whenver your midnight is; relative to your timezone. This gives me each Monday to review homework internally before streaming on Tuesday. Please adhere to this deadline as late submissions can really stunt  the flow of the schedule.

Can multiple people volunteer for and build the same part?

Yes! Early volunteers will have the best chance at picking a unique part but eventually parts will be assigned to multiple people. Of course we can't feature multiple of the same part for the final scene so the best execution of each part will end up in the final.

Are we bound to also 1 asset or if there is spare time can we even go for a second or third piece?

You're not limited to 1 asset. I'd love to see contributors challenge themselves with multiple assets, as several did last year. This gives contributors the ability to define their own scope of participation: If someone is newer to Blender they can choose one asset. If someone is more experienced they can choose multiple assets.

Who “owns” the final project?

Technically CG Cookie owns the project but the final project will be released freely as Creative Commons (CC-BY-4.0).

Can I feature my work from Collab2021 in my online portfolio and / or demo reel?

100% yes! Contributors are welcome to use/share visuals from the project to social media accounts, online galleries / portfolios, and featured in demo reels.

  • Shawn Blanch(blanchsb) replied

    You are so much better at this than I am.

    Always so humble is spikeyxxx. I wouldn’t compare myself to your awesomeness. That would be folly, lol. I’ve just been on an array and curve mod trip for the past 6 months. I still have much to learn in this amazing thing we call Blender.


    I’m looking forward to playing with the extra 3 nodes and seeing what comes from it.

  • Kent Trammell replied

    Welcome to the team isildu! I appreciate you being willing to contribute in various categories. From the looks of it we have a spread of interest 👍

  • spikeyxxx replied

    Let's stop being so old-fashioned, when you say Instancing, I am thinking :

  • Kent Trammell replied

    You know I *FEEL* your pain 😣

    I will put in a request to review and improve the forum's quirks. Though past experience has taught me it's an uphill battle: One webdev addressing multiple websites and tons of feature requests...it takes a mountain of advocacy for a molehill's adjustment.

    That's to say I'm preparing myself to deal with the current state and all its annoyances - But try I shall!

  • Shawn Blanch(blanchsb) replied

    Crap does that mean that all of my dev work was replaced by 5 nodes?!?

  • Shawn Blanch(blanchsb) replied

    I really need to get up to speed on Geometry nodes.

  • spikeyxxx replied

    ...by 5 nodes?!?

    I used the default Cube as it is. Should I have modeled it into a floorboard, it would be one Node less (the left green Point Scale Node).

  • Kent Trammell replied

    Welcome to the team lynnetteadair! You will be in good company as a beginner. Plenty of areas in this project of small scope and low-pressure. Don't worry in the slightest: It will be fun and you'll learn a lot 🤝

  • Shawn Blanch(blanchsb) replied

    I’ll roll with the punches too, just figured I would ask.

    I imagine it will get better when we split up in to teams.

    I just already know that I am spending quite a bit of time scanning this forum to keep up with posts and it’s already turning into a fun spider web haha.

    It’s both a great thing and a bad thing lol.

  • Shawn Blanch(blanchsb) replied

    I’m both stupified and hookwinked.

  • wolf.gang (wograebn) replied

    How many did you have last year out of curiosity?

  • Angela (amblender) replied

    Spending my time until then, doing the courses you recommended.


  • Cookie Dough(cgcdough) replied

    I've only done high school level coding, but here's what I think should happen. 


    So you have a "sort by" drop down menu. You have two options, "original" and "most recent reply first". You already have date stamps, so assigning numbers will not be hard. You set up the higharchy so if there is a reply to a reply, it takes the date stamp from the most recent reply inside the reply and replaces the original date stamp's assigned number in the back end, and still displays the original date. You then need to reverse the order so page one will show the most recent replies instead of the oldest. 


    I know everything I just suggested is possible. I know how to do it, but I never put that kind of stuff on a live website, so yeahhh.

  • Shawn Blanch(blanchsb) replied

    Ok, so you must obviously be on one of the experimental branches (like the spikeyxxx I know and love) because Simon T. approved the use of the replace/create just recently and I don't see it on the official release in 2.92 and was trying to place but I only end up with 1 instanced object.

    Did you instance that whole board array there with that new Replace/Create functionality? I don't see an array modifier on that object, only the Geo-nodes.


    Okay and on to my next question: let's say we modeled in some cuts and damage instead of texturing everything (just trying to wrap my head around this new work flow). For example there are 3 boards with enough variation that you get a total of 6 sides to use and rotate for tons of variation: I'm thinking about random-run instancing between the three objects in a collection and letting the instancer geometry nodes handle all of that and throw in a random value. It could pick one of the three boards and rotate about the local x axis 180 OR NOT and rotate around the Z 180 OR NOT and Possibly the Y 180 OR NOT and you would have all kinds of combinations of instances from geo-nodes, correct?

    Something similar to this posting only using Geo-Nodes:
    https://blender.stackexchange.com/questions/191492/how-can-i-randomly-instance-and-distribute-objects-from-a-collection-on-a-mesh-u
    You would get some increasingly complex floor board or tile or shingle structures that way in my mind.

  • spikeyxxx replied

    Did you instance that whole board array there with that new Replace/Create functionality?

    No, to be clear, there is no Array, I just instanced the Cube on the Vertices of the Plane,,the Plane looks like this:

    The blue Node only randomizes the rotation (Attribute) of each of the points (Vertices)...All those points have a rotation, scale and position (Attributes), a bit like Origins of the Instances that are going to be put there. The Replace/Create was the default in 2.92...it's just that now (in the future) we (will) have more possibilities

    Exaggerated:

    ...and you would have all kinds of combinations of instances from geo-nodes, correct?

    That is correct!

  • spikeyxxx replied

    O.k I've updated my .blend. 

    Should get rid of this issue:

    The 180° rotation of the texture is now no longer depending on the location of the geometry, but uses a Noise Texture turned binary ;)

    The use of Pi and e is random, could have used any number, but for randomness, avoiding integers is never a bad idea...

    For completeness, this is the link:

    https://drive.google.com/file/d/1YIo8HAvCjkyoIU05m9dRpWQrjKZxdB85/view?usp=sharing


  • Kent Trammell replied

    You then need to reverse the order so page one will show the most recent replies instead of the oldest.

    Tis a good suggestion - In fact we tried this last year and our webdev made all forum threads reverse pagination so newest replies showed first. Everyone on the collab team liked it but a fair amount of other members expressed confusion about the change. Ultimately we reverted and nothing came from it.

    But the same thing to be an option per user's preference rather than a global change, that seems like a decent idea. I've been told that Nick will take a look at a few proposed updates. So hopefully those will be implemented by April! 🙌

  • Nathan Garduno(nathangarduno) replied

    This is a perfect project to get back into the swing of things. Always love the CG cookie community.

  • Piotr Brzostyński(brzostek) replied

    I haven't been that much active in the CGC community recently, but this project sounds beyond exciting. It definitely woke me up from my slumber, lol. Moreover, having deadlines is a bless, because I can't set them up myself for my projects even if I try. :x

    One thing that bothers me is the number of participants, won't it be too chaotic to manage? Maybe dividing into 2 or even 3 competing teams would be fun and provide even more learning experience? It's just a suggestion to think about.

  • Vadim Zaitsev(harbinger_ua) replied

    Love this idea. If you're planning to stick to it I can try to carve out some time and make you an interior design.