《Perforce:2022年虛擬生產現場指南(英文版)(12頁).pdf》由會員分享,可在線閱讀,更多相關《Perforce:2022年虛擬生產現場指南(英文版)(12頁).pdf(12頁珍藏版)》請在三個皮匠報告上搜索。
1、 Version Control in Virtual ProductionA Field Guide on Branching Best Practices Perforce Software,Inc.All trademarks and registered trademarks are the property of their respective owners.(1020JB22)Version Control in Virtual Production2A Field Guide on Branching Best PracticesThis guide offers a brie
2、f overview of version control for the digital assets used in virtual production,as well as guidelines for setting up pre-vis workflows through branching in your version control tool,depending on the scale and needs of your projects.Table of ContentsIntroduction.3Version Control:An Essential Tool for
3、 Virtual Production Teams.3Branching in Version Control:A Primer.4Setting Up Perforce Helix Core.5Install&Configure Helix Core.5Understanding Depots and Helix Core Server Organization.5A Guide to Setting Up Streams.6What Sets Helix Core Streams Apart.6Terms to Know Before Choosing Your Branching Str
4、ategy.6What Not To Do:Streams By Department.7Branching Strategy 1:Single Development Stream.8Branching Strategy 2:Vendor/Client Streams.9Branching Strategy 3:Release Streams.10Branching Strategy 4:Advanced Setups:Virtual Streams,Components,and Shared Libraries .11Conclusion.12 Perforce Software,Inc.
5、All trademarks and registered trademarks are the property of their respective owners.(1020JB22)Version Control in Virtual Production3IntroductionInnovations in virtual production technology have been essential in creating todays most cutting-edge film and television productions.With real-time 3D eng
6、ines like Unreal Engine and Unity,teams in media&entertainment(M&E)create photorealistic virtual worlds and characters to be displayed in an LED volume on set.Then,the practical cameras on set are synced with virtual cameras in the game engine,so that the virtual scene moves as the cameras do,offeri
7、ng enhanced realism and depth of perspective.Aside from learning to use new technology,such as game engines,one of the biggest challenges for studios implementing virtual production techniques is coordinating all of the various teams much earlier in the process than usual.Virtual productions inheren
8、tly frontload creative work,meaning studios will no longer follow the typical linear production process.More work is done in pre-production(and less in post),and any errors early on will have a compounding effect.Creating these virtual worlds within a game engine often involves having multiple group
9、s working on separate parts of the project at the same time.Its imperative that all these different teams and studios can collaborate on the same project simultaneously without breaking each others work.Creating films in this way is an intricate dance that requires tight control of digital assets,te
10、ams,and workflows.Version Control:An Essential Tool for Virtual Production TeamsStudios who adopt game engines for virtual production find themselves with many,massive digital files to manage;increasingly complex projects;and large,often dispersed teams.Realizing the need for a more efficient way to
11、 manage these complexities,they are beginning to adopt a tool that software teams and game developers have been using for decades:version control.Version control as a process refers to tracking and managing changes to files over time.Version control systems automate this process.The best systems all
12、ow you to not only store every iteration of your digital files,but to control the flow of changes to those files and manage the teams contributions.Good version control enables teams to contribute to the same project without overwriting,breaking,or duplicating each others work.It is standard practic
13、e for software developers to use version control to maintain a complete history of code,collaborate more easily on projects,and avoid running into merging disasters.Perforce Software,Inc.All trademarks and registered trademarks are the property of their respective owners.(1020JB22)Version Control in
14、 Virtual Production4A powerful version control tool that can support large art assets is essential in virtual production projects,where multiple people are creating work to be combined into a final product.It is especially important that work is done correctly from the start when cost of iteration i
15、s relatively low(as compared to making changes to creative during filming when every minute costs much more).A Note on the Term“Version Control”in Media&Entertainment For M&E professionals,the term“version control”is often misinterpreted to mean simply“version tracking,”which relies on strict naming
16、 conventions and folder structures to organize files.Version tracking also involves tools like ShotGrid,ftrack,or custom automation scripts a studio creates in-house,which help to manage those versions.“Version control,”on the other hand,refers to a system that tracks changes to each individual file
17、 over time and can be used to return to any previous change without losing work or changing filenames.As the M&E industry adopts game engine technology and workflows,it is increasingly important to distinguish between“version control”(such as Helix Core)and“version tracking”(such as ShotGrid or ftra
18、ck).Perforce Helix Core:The Leading Version Control System for Game EnginesPerforce Helix Core is the leading version control tool for teams using game engines.For years,it has been the tool of choice for game developers including the top 10 AAA game development studios for its ease at versioning th
19、e many,massive binary files involved in creating art and animations for games and entertainment.It is also chosen for its tight integration with leading game engines and DCCs(digital content creation tools),its performance and scale,and its ability to store,version,and secure any digital file.Perfor
20、ce Helix Core allows you to secure your work,ease collaboration,and keep productions on-time and on-budget.Branching in Version Control:A PrimerIn version control,branching is a key functionality that allows your team to safely work on individual files without risk of altering files that are already
21、 approved for use on a shoot day or in a final render.Branching also allows multiple team members to contribute to the same project without overwriting,duplicating,or breaking each others work.The basic idea is that one team member can“check out”a file or several files,work on them,and“merge”the fil
22、es up to the greater project once they have been tested.All version control systems have branching functionality.Helix Cores branching functionality is called Streams.Streams was designed especially for large or complex projects and remote teams.It provides built-in visual support for complex branch
23、ing and merging operations to ensure everyone understands the workflow and where to submit changes to keep the project on track.This guide is intended to give you a starting point for setting up branching using Streams in Perforce Helix Core,depending on the scale and needs of your projects.Perforce
24、 Software,Inc.All trademarks and registered trademarks are the property of their respective owners.(1020JB22)Version Control in Virtual Production5Setting Up Perforce Helix Core To get started setting up the right branching structure for your teams needs,you will need to set up your Perforce Helix C
25、ore server.Follow the links below for instructions.Install&Configure Helix Core Get Helix Core Free for Five Users Helix Core Quick Start Guide for Unreal Engine Helix Core Quick Start Guide for Unity 3D YouTube Video:Configure Helix Core for Game Engines Helix Core Quick Start GuideUnderstanding De
26、pots and Helix Core Server OrganizationWhen you install Helix Core,you will want to set up the organizational structure for your projects.In Helix Core,“depot”is the term for the largest organizational unit on a server.Generally,a studio will use a single server and will add one depot per project.Th
27、e term“depot”is sometimes used incorrectly to refer to the whole server,rather than an organizational unit on a server.Organizing projects into depots on one server is useful because you will not have to reconfigure your server for each project.Plus,organizing your server this way also gives users o
28、ne central place to log in.Best practice is to set up a depot for each project,rather than having one depot with separate folders or streams for all your projects,for the following reasons:It is easier to manage permissions.Helix Core allows you to define permissions down to the individual file,comp
29、uter,and user level,but for most studios,it is simpler to grant a group of users access to an entire depot.It is easier to create custom settings for a project.For example,you could have one project that uses Unreal Engine and another that uses Unity 3D.By putting them in separate depots,it is easie
30、r to tell your server how it should handle the different types of files.It enables you to archive a depot when the project wraps up.Individual depots can be saved on different drives.This can be a huge advantage for people using cloud storage,as they can move a depot from a fast solid state drive to
31、 a slower spinning drive to save money.They can even snapshot a drive,store the snapshot,and archive the depot entirely to save exponentially.Perforce Software,Inc.All trademarks and registered trademarks are the property of their respective owners.(1020JB22)Version Control in Virtual Production6A G
32、uide to Setting Up StreamsOnce your Helix Core server is set up,configured,and your game engine and other tools are configured,you can begin setting up your branches/Streams(these terms are often used interchangeably in version control).Below is a guide to how your team can set up streams depending
33、on the scope of your projects.What Sets Helix Core Streams Apart Streams was designed for large or remote teams and complex projects.It offers more functionality than standard branching in other version control systems.Streams allows your team to:Create and visually show the dependencies between bra
34、nches.Systematically enforce best practices around branching and merging.Set up developer workspaces automatically upon branch creation.Terms to Know Before Choosing Your Branching StrategyLets start with a brief explanation of Mainline and Development streams,as these are the core stream types used
35、 across branching styles.MainlineThis can be thought of as the“Approved”or“Stable”stream.Everything has been tested and approved.DevelopmentThis is the“Working/Work in Progress”stream,where your developers and artists are working and submitting changes.Development streams allow artists to get the la
36、test work from each other without risk of causing the stable Mainline stream to fail on a shooting or delivery day.Perforce Software,Inc.All trademarks and registered trademarks are the property of their respective owners.(1020JB22)Version Control in Virtual Production7What Not To Do:Streams By Depa
37、rtmentFigure 1:Branching strategy,Streams by departmentA lot of studios begin by setting their streams up by department,as shown here.At first glance,it may make sense,but setting up streams this way will slow down your teams and create extra work for your project leads.A Streams setup by department
38、 can cause problems due to the way that data flows within branches.People tend to see the up and down arrows between branches(i.e.between“Main”and“Dev”above)and assume information flows back and forth between them.That isnt exactly true.We can think of each branch like a parallel universe.You can ed
39、it files in one dimension,but back in the other dimension,everything stays the same.To get the changes,someone must take those changes back through the portal to your universe and decide how to combine them,which is called a“merge.”This is a process that someone must do manually.To illustrate furthe
40、r:lets say a change is made to a file in the Modeling branch.Teams working in Rigging,Layout,Compositing,and FX cannot access that change until it is copied up to the Dev stream by a supervisor and then merged down to each departments streams by supervisors.That adds two steps that must be completed
41、 by a team lead or supervisor,creating a bottleneck and often significantly slowing the entire team down.If someone created a new version of a texture,you want everyone to get that latest version as soon as they are ready for it,so you want these changes to be in the same stream.Instead,we suggest u
42、sing one of the three options outlined below.Perforce Software,Inc.All trademarks and registered trademarks are the property of their respective owners.(1020JB22)Version Control in Virtual Production8Branching Strategy 1:Single Development StreamFigure 2:Branching strategy,single development streamA
43、 single development stream is the recommended starting setup for small teams or short-term projects that are small in scope.(It can also be a good starting point for any project,as additional branches can always be added as needed.)Some examples of projects that a single stream is best suited for in
44、clude:A shoot with just one virtual location.A film that is only using virtual production for a single setting.A short proof-of-concept project.A music video.The single development stream consists of two branches:the Main branch and Dev branch.As described earlier,the Main branch can be thought of a
45、s“Approved”the product that will go on your LED volume or be delivered to a client and the Dev branch can be thought of as“Working/Work in Progress.”(Your team may even want to change the name of these branches to alleviate confusion.)Remember that these streams are like two parallel dimensions.Like
46、 an airlock or customs booth,nothing flows between them until it has been approved.Nothing gets to the volume until someone does a copy up from Dev to Main.Setting up the barrier in this way stops the flow of data until its approved and ready to go on set.For additional protection,you can edit your
47、permissions so only certain users are allowed to copy anything up into the Main stream.Because all your artists and developers will be working in the same stream,they will be able to get each others changes as soon as they are submitted to the server.Another advantage of version control systems like
48、 Helix Core is that each user has control over when and if they get the latest versions from their teammates.Or,if they need to check an older version,they can do that,too.Again,this is a great starting point for small teams or short-term projects.You can always expand your stream setup from here wh
49、en your projects grow.Perforce Software,Inc.All trademarks and registered trademarks are the property of their respective owners.(1020JB22)Version Control in Virtual Production9Branching Strategy 2:Vendor/Client StreamsFigure 3:Branching strategy,vendor/client streamsThe next branching strategy your
50、 team may consider is a setup for vendors or clients.You can also think of this as development+external streams.Just like with the previous stream setup,your entire internal team will work in the Dev stream.The difference is that from the Dev stream you will create child branches for each vendor/cli
51、ent.In the example here,there is a child stream for Vendor A and one for Vendor B.Youll want someone on your team to serve as a vendor coordinator.When a vendor has changes to copy up,this person will check their changes before moving them up from the vendor child stream into the Dev stream.Similarl
52、y,with data going out,you will see that there are things being done in Dev that your vendor(s)dont have.You may want it that way.You may want to give them access only to certain specific items,or you may want to wait for a more polished version of something before you give them access to it.(To do t
53、his,in your permissions and stream configurations,you would have it set up so Vendor B users can only see things in the Vendor B stream and the Vendor B stream only mirrors specific folders or files from Dev,as an example.)Perforce Software,Inc.All trademarks and registered trademarks are the proper
54、ty of their respective owners.(1020JB22)Version Control in Virtual Production10Branching Strategy 3:Release StreamsFigure 4:Branching strategy,release streamsIn addition to using development streams for work in progress or for collaborating with vendors or remote departments,release streams can be u
55、sed to create a stable snapshot in time.Having a stable snapshot can be helpful in post as well as when preparing for a shoot day.In this example,during the week of November 15th,a Release stream was created for the shoot on stage.A release stream is considered even more stable than Main,and by defa
56、ult will not accept any new changes from the mainline stream after it is created.As the downward arrow indicates,changes made on stage that day can still be merged back into the mainline for continued work,but there is no up arrow to copy new changes into the release stream.Release streams allow the
57、 team to easily access all the files used during that shoot day,meaning exactly the same versions that were used on stage.This can be useful in post:When the team wants to fix or enhance a shot that was filmed on the LED volume,they can return to the state of all files when the release stream was cr
58、eated,saving hours of time that would be spent recreating changes to the layout or other game engine settings.While you could achieve the same result by getting older versions from your mainline stream,a release stream can simplify that process,especially if the release stream only includes a smalle
59、r sub-set of the total project files.Release streams are also a useful way of grouping or customizing a subset of the total project for simpler deployment on an LED volume.Rather than having to manually select folders of environments to sync on stage,a release stream can be configured in advance to
60、include only particular files from the mainline stream,saving time and complexity.Release streams can also include different configurations and imports,allowing you to configure and test in advance.For example,you could film the same virtual location on two different days and on two different LED vo
61、lumes,and you could prep and test them in advance with separate release streams,saving you time during prep when filming.Perforce Software,Inc.All trademarks and registered trademarks are the property of their respective owners.(1020JB22)Version Control in Virtual Production11Branching Strategy 4:Ad
62、vanced Setups:Virtual Streams,Components,and Shared LibrariesFigure 5:Branching strategy,imports and componentsThis final Streams setup is a more complex branching strategy best suited for large teams with multiple projects as well as assets and configurations they will use across their projects.In
63、this example,the Dev stream splits down into two virtual streams(outlined with a dashed line),in this case two separate virtual environments,“Castle”and“Junkyard.”Virtual streams allow your team to work within the parent stream using a filtered view.In Figure 5,the team is still working in the Dev s
64、tream,but filtering to only see what is in the Castle or Junkyard environment.If a change is made to an element in the Castle environment that also exists in the Junkyard environment,that change will automatically show up in the Junkyard environment.In a large project,instead of just two virtual str
65、eams,you would likely have many different filtered virtual streams for different scenes so that users can more easily load just the files they need.Down from there,you can add child streams to your virtual streams to give vendors access to only what they need just as in the previous stream example.A
66、long the top,we have our release streams,and you can see other disconnected streams these are for tools and libraries that can be used across projects.They could be set up as separate mainline streams(best if they are specific to this project,like a project library),or they could be separate depots(
67、best for in-house tools or shared libraries that will be used across many different projects).Similarly,a stream for your stage blueprint could live in its own depot;No matter what show youre working on,the stage blueprint will be the same,and having it in its own depot allows you to share it across
68、 shows without having to manually copy it to your different projects.This advanced setup takes advantage of the flexibility that Helix Core Streams gives you in terms of sharing and reusing assets and tools.This example should give you an idea of what is possible,and it can be customized to work wit
69、h your pipeline.Perforce Software,Inc.All trademarks and registered trademarks are the property of their respective owners.(1020JB22)Version Control in Virtual Production12ConclusionPerforce Helix Core supports virtual production projects of any size.It allows you to version every digital asset your
70、 team is working with,instantly revert to or find older versions,give your entire team instant access to changes,and save time on set.The functionality provided by Streams allows your team to set up a branching structure as simple or complex as you need.Power your virtual production pipeline with in
71、dustry-leading tools by Perforce.Helix Core for Version ControlGet started on your next virtual production with the version control system trusted by top studios.Helix Core is free to use for teams up to 5.GET HELIX CORE FREEVisual Client for DesignersFind,share,review,and version art assets fast with Helix DAM.TRY OUR SANDBOXFree Training from Perforce UBecome a certified virtual production pro or refresh your technical skills with free,on-demand training.SIGN UP TODAY