![](https://i-blog.csdnimg.cn/blog_migrate/02a4d0ba185f2d333927439af7ffd389.png)
机器人工厂参观心得
We talked to Tinybop’s Rob Blackwood, lead iOS engineer, Jessie Sattler, production designer, and Cameron Erdogan, iOS engineer, about their experience using to Unity to build The Robot Factory.
我们与Tinybop的iOS首席工程师Rob Blackwood,产品设计师Jessie Sattler和iOS工程师Cameron Erdogan进行了交谈,讨论了他们在Unity上建造机器人工厂的经验。
The Robot Factory, was the 2015 iPad App of the Year on the App Store. It is the sixth app (of eight total, now) that the studio launched and the first app in a new series of creative building apps for kids. As the first app in that series, it was the first they built with Unity. It will also be the first app TinyBop made available for Apple TV.
机器人工厂(Robot Factory )是App Store上的2015年度iPad App。 这是该工作室推出的第六个应用程序(目前总共八个),也是针对儿童的一系列新的创意建筑应用程序中的第一个应用程序。 作为该系列中的第一个应用程序,这是他们使用Unity构建的第一个应用程序。 这也将是首款可用于Apple TV的应用程序TinyBop。
Moving to Unity enabled the development and design teams to work together more quickly and efficiently. Rob Blackwood, lead iOS engineer, and Jessie Sattler, production designer, walk through how they work together to bring the app to life. Cameron Erdogan, junior iOS engineer, chimes in about preparing The Robot Factory for tvOS with Unity. Every app TinyBop builds is a learning process which helps refine and improve their processes on the next app.
迁移到Unity后,开发和设计团队可以更快,更高效地合作 。 iOS首席工程师Rob Blackwood和产品设计师Jessie Sattler讲述了他们如何共同工作以使应用程序栩栩如生。 初级的iOS工程师Cameron Erdogan钟情于准备将Unity工厂用于tvOS的机器人工厂。 TinyBop构建的每个应用程序都是一个学习过程,可帮助改进和改进下一个应用程序的过程。
开发设计工具 (Building tools for development & design)
Rob: As software engineers, it’s our duty to architect solutions for all the concepts that make up the app. We need to identify the app’s systems and rules and implement them through code. For example, a system we created in The Robot Factory determines the way a robot moves. In an app about plants, we created systems to represent the different seasons of the deciduous forest. There are also many cases where we must create tools for tweaking these systems and rules. These tools can then be used by a production designer to create the right look and feel for the app.
Rob :作为软件工程师,我们有责任为构成应用程序的所有概念构建解决方案。 我们需要确定应用程序的系统和规则,并通过代码实施它们。 例如,我们在“机器人工厂”中创建的系统确定了机器人的移动方式。 在有关植物的应用程序中,我们创建了代表落叶林不同季节的系统 。 在许多情况下,我们必须创建用于调整这些系统和规则的工具。 然后,生产设计师可以使用这些工具为应用创建正确的外观。
Jessie: As a production designer at Tinybop, I’m in charge of putting together the visual elements that live inside the app (to put it simply). We commission a different illustrator for each app, which gives us a range of styles and techniques. It’s my job to translate all the artwork into interactive, moving parts. I build scenes in Unity, animate characters and objects, and make sure everything runs smoothly between the art/design and the programming/development of our apps.
杰西(Jessie) :作为Tinybop的产品设计师,我负责将应用程序内部的视觉元素放在一起(简单地说)。 我们为每个应用程序委托不同的插图画家,这为我们提供了多种样式和技术。 我的工作是将所有艺术品转换为互动的活动部分。 我在Unity中创建场景,为角色和对象设置动画,并确保在艺术/设计与应用程序的编程/开发之间一切顺利进行。
Rob: When we began our first app, we were a very small team using a development environment that required pure programming to develop for. We developed a tool for layout and physics simulation but it was not very sophisticated. As our team grew, we realized we had a bottleneck on the engineering side since most everything had to be programmed and then built manually before it could be tested. Not having immediate visual feedback when developing also meant a lot more iteration on the code, a time-consuming task. Not having an automated build system, like Unity Cloud Build, meant an engineer had to sink time into manually delivering a build to devices or sending it up to Testflight.
Rob :当我们开始第一个应用程序时,我们是一个很小的团队,使用的开发环境需要纯编程才能进行开发。 我们开发了一种用于布局和物理模拟的工具,但它并不十分完善。 随着我们团队的成长,我们意识到我们在工程方面存在瓶颈,因为大多数内容都必须进行编程,然后在进行测试之前手动进行构建。 在开发时没有即时的视觉反馈也意味着在代码上进行更多的迭代,这是一项耗时的任务。 没有像 Unity Cloud Build 这样的自动化构建系统, 工程师不得不将时间浪费在手动将构建交付到设备或将其发送到Testflight上。
Jessie: Our previous editor lacked a friendly interface for someone who wasn’t primarily working in the code. I relied heavily on the engineers to perform simple tasks that were not accessible to me. Unity has alleviated the engineers of menial production tasks, and at the same time enabled me to perfect things to the slightest detail. We also couldn’t see the result of what we were making until we built to device, whereas in Unity I can live preview the project as I work.
杰西(Jessie) :我们以前的编辑器对于不是主要在代码中工作的人缺乏友好的界面。 我严重依赖工程师来执行我无法访问的简单任务。 Unity减轻了工程师的繁琐生产任务,同时使我能够将细节做到最细致。 在构建到设备上之前,我们也看不到所做的结果,而在Unity中,我可以在工作时实时预览项目。
Rob: The most important thing Unity has done for us is allow us to easily separate engineering from production design. Unity is a very graphics-driven environment which means production can do much of the visual layout before ever having to code a single line. This also allows us to continually integrate and iterate as the engineers develop more and more systems. The production team can get immediate feedback as they design because Unity lets you play and stop the app at any moment you like. We also use Unity Cloud Build which lets us push new builds out to actual iOS devices as frequently as every 20 minutes. S o, everyone can test and give feedback on the current state.
Rob :Unity为我们所做的最重要的事情是使我们能够轻松地将工程与生产设计区分开。 Unity是一个非常受图形驱动的环境,这意味着在无需编写一行代码之前,生产即可完成大部分视觉布局。 这也使我们能够随着工程师开发越来越多的系统而不断进行集成和迭代。 生产团队可以在设计时立即获得反馈,因为Unity使您可以在任何时候播放和停止该应用程序。 我们还使用Unity Cloud Build,它使我们每20分钟将新的构建推送到实际的iOS设备上。 因此,每个人都可以测试并提供有关当前状态的反馈。
Jessie: Using Unity has made collaboration with engineers a dream! I can specify what visual effects I want to achieve. Then, we work together to build tools and scripts for me to use directly in the editor. The visual nature of Unity makes it much easier for me to have the control I need as an artist to get the projects to look the way we want them to. It also facilitates our iterative process. I can go back and forth with our engineers to find solutions that meet both our aesthetic and technical requirements.
杰西 :使用Unity使与工程师的合作成为梦想! 我可以指定要实现的视觉效果。 然后,我们共同构建工具和脚本,供我直接在编辑器中使用。 Unity的视觉特性使我更容易获得画家所需的控制权,以使项目看起来像我们希望的样子。 它还有利于我们的迭代过程。 我可以与我们的工程师来回寻找能够满足我们美学和技术要求的解决方案。
![robots5_2048x1536](https://i-blog.csdnimg.cn/blog_migrate/1b8f503027ede5f9d9dbc7663dec3980.png)
In The Robot Factory, giving robots locomotion based on the parts they were created with was a big challenge. Using pure physics to move the robots made it too difficult to control, and having pre-planned walk cycles was boring and predictable. I worked with the engineers to create tools to draw the path of motion for each robot part, within a set of restraints, as well as each part’s gravity and rotational limits. We were able to maintain enough physics-based movement to get unique locomotion, but users still had enough control and part reliability to navigate their robots through a world.
在机器人工厂中,要使机器人根据其创建的零件进行移动是一个很大的挑战。 使用纯物理原理移动机器人会使机器人难以控制,并且预先计划的步行周期无聊且可预测。 我与工程师合作,创建了一些工具来绘制每个机器人零件在一系列约束内以及每个零件的重力和旋转极限内的运动路径。 我们能够维持足够的基于物理的运动来获得独特的运动,但是用户仍然具有足够的控制力和零件可靠性,可以在整个世界中导航他们的机器人。
适应不同的应用程序和艺术品 (Adapting for different apps & artwork)
Rob: We’ve always given priority to the art and we try to not funnel the artist toward too many particulars, style-wise. This can sometimes be difficult from a technical standpoint because it means our strategies for creating the feel of animations and interactions often need to change. The Robot Factory artwork has a lot of solid-colored shapes and hard edges. We were able to identify a fairly small set of re-useable elements that could be combined to create most every robot part—each one comprising as many as 50 small pieces—that could then be animated independently. (This was important because real robots have a ton of moving parts, as everyone knows!) This contrasted sharply in our most recent app, The Monsters, where we wanted the monsters kids created to appear more organic and even paintable. In this instance, we created actual skeletons and attached something akin to skin so that they could bend naturally and be colored and textured dynamically when a child interacted with it. So while there are many challenges to adapting to different artistic styles, the benefit is that we are much closer to the artist’s vision, which is always more interesting.
罗伯 :我们一直将艺术放在首位,我们尽量避免艺术家过多地关注风格。 从技术的角度来看,这有时可能很困难,因为这意味着我们创建动画和交互效果的策略经常需要更改。 机器人工厂的艺术品具有许多纯色形状和坚硬的边缘。 我们能够识别出很小的一组可重复使用的元素,这些元素可以组合在一起以创建大多数机器人零件(每个零件最多包含50个小零件),然后可以独立制作动画。 (这很重要,因为众所周知,真正的机器人有很多运动部件!)这与我们最新的应用程序 《怪物》 形成了鲜明的对比,在 该 应用程序中, 我们希望创建的怪物怪物看起来更有机,甚至可以绘画。 在这种情况下,我们创建了实际的骨骼,并在皮肤上贴了一些东西,以便它们可以自然弯曲,并在与孩子互动时动态地着色和纹理化。 因此,尽管要适应不同的艺术风格面临许多挑战,但好处是我们离艺术家的视野更近了,这总是更有趣。
![robots7_2048x1536](https://i-blog.csdnimg.cn/blog_migrate/51ddba66dbbbba6d572372212bd7ba4f.png)
Jessie: Each illustrator brings a different style, thus a different set of challenges for every app. On the production side, we have to decide what aspects of the art are integral to keep intact, and what can be translated through simulations and programmatically generated art. A lot comes down to balancing three needs: widely scoped content, efficient development, and beautiful visuals. It’s a big challenge to create reusable techniques that we can carry over app to app. Many instances call for unique solutions. Where we would rig, bone, and animate meshed skeletons in one case, another app might need large, hi-res sprites, or small repeatable vector shapes and SVGs. Having disparate techniques means longer production time, but because we deem the quality of art and design in our apps so important, it is a necessary step in the process.
杰西 :每个插画家都带来不同的风格,因此每个应用程序都面临着不同的挑战。 在生产方面,我们必须确定哪些方面是完整的要素以保持完整,哪些可以通过模拟和以编程方式生成的艺术品进行翻译。 平衡三个需求在很大程度上取决于:范围广泛的内容,有效的开发和精美的视觉效果。 创建可重复使用的技术,使我们可以将应用程序移植到应用程序中是一个很大的挑战。 许多实例要求独特的解决方案。 在一种情况下,我们将对网格化的骨架进行装配,骨骼化和动画化处理,而另一个应用程序可能需要大型的高分辨率Sprite或较小的可重复矢量形状和SVG 。 拥有不同的技术意味着更长的生产时间,但是由于我们认为应用程序中的艺术和设计质量是如此重要,因此这是该过程中的必要步骤。
使用Unity转到tvOS (Moving on over to tvOS with Unity)
Cameron: I didn’t have to change much code to get The Robot Factory up and running on Apple TV. After downloading the alpha build of Unity with tvOS, I made a branch off of our original app’s repository. After a day or two, I was able to get the app to compile onto the Apple TV. I had to remove a few external, unsupported-on-Apple TV libraries to get it to work, but the majority of the work was done by Unity: I merely switched the build target from iOS to tvOS. Pretty much all of the classes and frameworks that work with Unity on iOS work on tvOS, too.
卡梅隆(Cameron) :我无需更改太多代码即可在Apple TV上启动和运行机器人工厂。 在使用tvOS下载Unity的Alpha版本之后,我从原始应用程序的存储库中分支出来。 一两天后,我得以将应用程序编译到Apple TV上。 我必须删除一些外部的,Apple上不受支持的电视库才能使其正常工作,但是大部分工作是由Unity完成的:我只是将构建目标从iOS切换到了tvOS。 iOS上与Unity一起使用的几乎所有类和框架也都可以在tvOS上使用。
After I got it to compile, I had to alter the controls and UI to make sense on TV. To do that, I used Unity’s Canvas UI system, which played surprisingly nicely with the Apple TV Remote. The last main thing I did was add cloud storage, since Apple TV has no local storage. To do that, I wrote a native iOS plug-in, which again was integrated easily with Unity.
将其编译后,我不得不更改控件和UI才能在电视上使用。 为此,我使用了Unity的Canvas UI系统,该系统在Apple TV Remote上的播放效果令人惊讶。 我做的最后一件事是添加云存储,因为Apple TV没有本地存储。 为此,我编写了一个本机iOS插件,该插件再次与Unity轻松集成。
![robots3_2048x1536](https://i-blog.csdnimg.cn/blog_migrate/122a65fbb06bae0eacea06c34174e40d.png)
展望未来 (Looking ahead)
Jessie: We currently build apps with 2D assets in 3D space. This allows us to create certain dimensional illusions that help bring life to our apps. I’ve been experimenting with using more 3D shapes in our apps and working with new 3D particle controls in Unity 5.3. I’m excited about tastefully enhancing 2D worlds with 3D magic.
杰西 :我们目前在3D空间中使用2D资源构建应用。 这使我们能够创建某些尺寸错觉,从而帮助我们的应用程序生机勃勃。 我一直在尝试在我们的应用程序中使用更多3D形状,并在Unity 5.3中使用新的3D粒子控件。 我很高兴能用3D魔术巧妙地增强2D世界。
Rob: As we look to the future, we’d like to expand our apps to even more platforms. Unity attempts to make this step as seamless as possible by exporting to multiple platforms with just a little bit of additional engineering on our end. Like our experience moving to the tvOS platform, we hope Unity will do much of the heavy lifting for us. And by the way, we’re hiring senior Unity engineers right now. If you love Unity and building advanced simulations, look us up at http://www.tinybop.com/jobs.
Rob :展望未来,我们希望将我们的应用程序扩展到更多平台。 Unity尝试通过导出到多个平台并尽可能少增加其他工程设计,从而使这一步骤尽可能无缝。 就像我们迁移到tvOS平台的经验一样,我们希望Unity能够为我们完成很多繁重的工作。 顺便说一下,我们现在正在招聘Unity的高级工程师。 如果您喜欢Unity并构建高级仿真,请访问http://www.tinybop.com/jobs查找我们。
The Robot Factory is available for iOS and Apple TV on the App Store:
机器人工厂 可在App Store上用于iOS和Apple TV:
Congratulations to Tinybop and thanks for sharing your story.
恭喜 Tinybop, 并感谢您分享您的故事。
翻译自: https://blogs.unity3d.com/2016/02/05/tinybop_robotfactory/
机器人工厂参观心得