联合主键和联合索引_联合2013年培训日

联合主键和联合索引

This year at Unite 2013, two hundred and fifty people arrived at the Unite conference a day before the keynote, to take part in the training day. Demand was high for this event, and the tickets for training day were sold out well in advance.

今年在Unite 2013大会上,有250人在主题演讲的前一天参加了Unite会议,参加培训日。 此活动的需求很高,培训日的门票已提前售罄。

We’ve had training days at Unite before, but this year we decided to turn things up a notch and create a hands-on workshop where all the attendees could start with an empty scene and put together a complete game in a single day.

我们之前曾在Unite接受过培训,但是今年我们决定提高水平,并创建一个动手实践的研讨会,所有与会者可以从一个空旷的场景开始,并在一天内完成一场完整的比赛。

This was a fairly ambitious undertaking – I’ve trained groups of people onsite at lots of companies and at lots of events, but this group was about ten times the size of the ones I’d worked with before. It was vital to ensure that nobody would get left behind, despite the size of the crowd. Expectations were high.

这是一项相当雄心勃勃的工作-我在很多公司和很多活动中培训了一群人,但是这个人的规模大约是我以前工作过的人的十倍。 无论人群多少,确保没有人会落伍至关重要。 期望很高。

The content I prepared for the day was partly based on material that I’ve delivered to customers, combined with some brand-new stuff that was put together just  for the training day. By far one of the most requested areas of training from customers is our character animation system, so I went with the choice of a third-person action game as a base. I also added a few carefully selected game elements. These were things that  many games have in common: collectible items, firing projectiles, hazards to jump or dodge. Each element was designed so as to give an opportunity to learn a different area of Unity’s specialized features such as particle systems, editor gizmos, animation masking and path finding.

我当天准备的内容部分基于我提供给客户的材料,再加上一些仅用于培训当天的全新内容。 迄今为止,客户最需要培训的领域之一是我们的角色动画系统,因此我选择了第三人称动作游戏作为基础。 我还添加了一些精心选择的游戏元素。 这些是许多游戏的共同点:可收藏的物品,发射弹丸,跳跃或躲闪的危险。 每个元素的设计都是为了让您有机会学习Unity特殊功能的不同领域,例如粒子系统,编辑器小控件,动画蒙版和路径查找。

I also wanted to give the attendees the opportunity to feel as though they had created something of their own design, rather than building an exact replica of an existing project. To achieve this, I decided to provide a simple collection of tile-based environment assets designed to snap together (using Unity’s snap tools), which allowed the users to quickly design their own floor plan of a level, and choosing where corridors and rooms should go in their game. I then added to this an editor script, which would automatically place walls and corner pieces around the floor plan they had created.

我还想给与会人员机会,使他们感觉好像他们已经创建了自己的设计,而不是为现有项目建立精确的副本。 为此,我决定提供一个简单的基于图块的环境资产集合,这些资产旨在(使用Unity的对齐工具)对齐在一起,从而使用户可以快速设计自己的楼层平面图,并选择走廊和房间的位置参加比赛。 然后,我在其中添加了一个编辑器脚本,该脚本将自动在其创建的平面图周围放置墙和角件。

Editor scripting and customising the editor in general is one of my favourite features, and it’s something that a lot of larger customers really appreciate about Unity, since they often build very specialised tools to speed up development of their own games. I wanted to give our attendees a taster of this, so after a quick introduction to the concepts of editor scripting, and some examples of what it can do, we let them loose with the “Auto Walls” script, and soon there were towers and crenellations as far as the eye could see.

总的来说,编辑器脚本和自定义编辑器是我最喜欢的功能之一,许多大客户对Unity颇有感激,因为他们经常构建非常专业的工具来加快自己游戏的开发。 我想让参加者对此有所了解,因此在快速介绍了编辑器脚本的概念以及该脚本可以做什么的一些示例之后,我们让他们使用“ Auto Walls”脚本放松了一下,很快便有了塔楼和肉眼所见的锯齿状。

We then took a crash course in physics, including setting up a controllable capsule-based physics character from scratch – solving problems such as how to achieve the typical “collide and slide” behaviour that gamers expect from a character, before moving on to adding an animated character, and driving the movement with the animation root motion.

然后,我们进行了物理方面的速成课程,包括从头开始建立可控制的基于胶囊的物理角色-解决诸如在实现添加游戏角色之前如何实现游戏者期望从角色获得的典型“碰撞和滑动”行为的问题。动画角色,并通过动画根部运动来驱动运动。

Our animation system is an extremely powerful piece of software, and while its visual editors make much of the work easy and intuitive, it’s still a complex system – so we had an in depth look at exactly how the various pieces fit together, including creating animation loops, understanding humanoid avatar rigs, and setting up state machines in the animator controller window.

我们的动画系统是功能非常强大的软件,尽管其视觉编辑器使大部分工作变得简单直观,但它仍然是一个复杂的系统-因此我们深入研究了各个部分如何精确地组合在一起,包括创建动画循环,了解人形化身装备,并在动画控制器窗口中设置状态机。

The spiky medieval hazards not only demonstrated collision detection and tagging, but also served as a way do show how the editor window can be enhanced with icons and lines drawn into the scene view by code – allowing programmers to provide their level designers with specialised visual tools for positioning and manipulating the game elements.

尖刻的中世纪危险不仅展示了碰撞检测和标记功能,而且还是一种方法 确实显示了如何通过代码在场景视图中绘制图标和线条来增强编辑器窗口-允许程序员为关卡设计师提供专门的可视化工具,用于定位和操纵游戏元素。

We looked at creating projectiles so the character can throw tomatoes (historically accurate – there was a lot of tomato-throwing in medieval castles), which involved a bit of scripting – but also required learning about the use of Avatar Masks to mix the throwing animation with the character’s existing running/jumping motion.

我们研究了如何创建投射物,以便角色可以投掷西红柿(历史上准确,中世纪城堡中投掷了很多西红柿),其中涉及一些脚本编写,但是还需要学习使用“阿凡达面具”来混合投掷动画角色现有的跑步/跳跃动作。

And near the end of the day, we explored the NavMesh feature, which was recently made available in the free version of Unity. And because we’d introduced examples of componentised architecture earlier in the day, making an animated AI enemies which could chase the player around the castle was a breeze – simply swapping the artwork of the character, and swapping out the User Input component with an AI Input component driven by the pathfinding feature.

几乎在一天结束时,我们探索了NavMesh功能,该功能最近在Unity的免费版本中可用。 并且由于我们在当天早些时候介绍了组件化架构的示例,因此使动画AI敌人可以追逐玩家在城堡周围是一件轻而易举的事-只需交换角色的图稿,并用AI交换出User Input组件输入组件由寻路功能驱动。

In order to make sure the day was at least twice as good as it would have otherwise been, we used two screens and two presenters. The fantastic Mr. Will Goldstone joined me, helping to present the day’s material.

为了确保当天的天气至少是原本两倍,我们使用了两个屏幕和两个演示者。 出色的威尔·戈德斯通先生也加入了我,介绍了当天的材料。

The dual screens allowed us to freely switch between live demonstration and coding on one screen, and steps to follow or things to remember on the other. And with two of us presenting, we managed to reduce the symptoms of “geek coding on stage” to what I think were safe levels.

双屏幕使我们可以在一个屏幕上自由地在现场演示和编码之间切换,而在另一个屏幕上可以遵循的步骤或需要记住的事情。 在我们两个人的参与下,我们设法将“舞台上的极客编码”的症状降低到我认为是安全的水平。

We also couldn’t have pulled it off without the help of our field engineers who were standing by at the wings waiting to help out anyone who was having problems.

如果没有我们的现场工程师的帮助,我们也无法实现这一目标。我们的现场工程师站在机翼旁等待帮助遇到问题的任何人。

Another fail-safe we had in place to make sure nobody fell too far behind was to include “checkpoint” scenes in the files we gave to all the attendees. This way, if any one particular stage of the day proved insurmountable to complete, the users could load up the current checkpoint scene and automatically catch up. The project we handed out also contained finished versions of all the scripts we would be writing, as well as the completed versions of the assets and prefabs we built. However, I was incredibly impressed with how well everyone did, and as it turned out very few people ended up using the catch up scenes at all. The day went really smoothly, and we even had time for some Q&A at the end.

为了确保没有人落在后面,我们采取的另一种故障预防措施是在我们提供给所有与会者的文件中包含“检查点”场景。 这样,如果一天中的任何一个特定阶段都证明无法完成,则用户可以加载当前的检查点场景并自动进行追赶。 我们分发的项目还包含我们将要编写的所有脚本的完成版本,以及我们构建的资产和预制件的完成版本。 但是,每个人的表现都给我留下了深刻的印象,结果发现很少有人最终使用追赶场景。 一天进行得非常顺利,最后我们甚至有时间进行一些问答。

Thanks to everyone who attended, and everyone who helped make the day what it was – a great success!

感谢所有参加的人,以及帮助使这一天变得如此美好的每个人–取得了巨大的成功!

翻译自: https://blogs.unity3d.com/2013/09/04/unite-2013-training-day/

联合主键和联合索引

相关文章: