Search Unity

可視化を行いましょう!ビジュアルスクリプティングツール Bolt の舞台裏

, 3月 23, 2018

熟練した開発者がビジュアルスクリプティングに興味を持つ理由があるでしょうか?それは、コーディングが嫌いな開発者の場合だけではないでしょうか?私たちは最近、Bolt と Chronos の作者と膝を交えて語り合い、彼がどのようにそれらの開発を開始したのか、またコードの可視化、UX、アセットストア自体に関する彼のアイデアについて聞きました。

人気のアセットストアパッケージである BoltChronos を開発した人物は、Lazio Bonin 氏といい、 皆で協力し合える、明るくライティングされたモントリオールのダウンタウンのゲームプレイスペースを拠点とする、ツールおよびゲームの開発者です。彼は 24 歳で、受賞歴があります。

Bonin 氏は Unity コミュニティに熱意を持って貢献しています。「なんらかの時点で、開発中のゲームからツールを分離独立させると、一定の程度まで高度化するとともに使いやすくなります。そのようなツールを共有しないでいると申し訳なく感じます。私の直感がツールを共有せよと囁きます。ツールの作者なら、その多くは同じ考え方を持っていると思います。ツールの作者は Unity のように既に存在しているものを同僚に再開発させたくないのです。既存のツールがあるのに、どうして独自のゲームエンジンをコーディングする必要があるでしょうか。」もちろん、ツールの人気が出れば、そのツールを生んだゲームを開発するのにも役立ちます。

ツールの開発を始めるずっと前から、彼は独学のアマチュアゲーム開発者でした。「私が 10 歳のころ、従兄弟が私の家に来て Visual Basic をインストールし、操作方法も教えずに帰っていきました。」Bonin 氏は HTML のコーディングならやっていましたが、Visual Basic はまったく新しい挑戦でした。そして数年後、彼は「他人には決しておすすめしない、ありえないほど野心的なプロジェクト」と自身が笑って形容するような、外に出すわけでもないゲームを多数開発する、非常に精力的な愛好者になっていました。

彼は 19 歳の時に、Unity を知り、ゲーム開発をより真剣に学び始めました。彼は Full Inspector のようなアセットに感謝の意を表明しました。「これは天からの賜物でした。このアセットのおかげで Unity のインスペクターが非常に高度なものになり、私のデザインもはるかに柔軟になりました。これは全てのプロジェクトに最初にインポートするアセットになりました。」最近では、Bonin 氏は Odin – Inspector and Serializer を使用しています。「アセットストアにあるツールのうち、最大級に便利で高度な素晴らしい物のひとつです。」

Bolt のパブリッシャー、Lazlo Bonin 氏。モントリオールのゲームプレイスペースにて。

ゲームの中で育まれた Bolt

Bonin 氏がまだアマチュアだった時に、自分が学校に通うための資金を調達するためにウェブサイトをデザインしたり他の人のゲームに貢献したりしたことが、自身の最初のアセット Chronos のアイデアにつながりました。「私はとあるタワーディフェンスゲームに取り組んでいました。結局そのゲームはリリースされなかったのですが…敵の動きを鈍くして、攻撃が届かないところから敵を制圧したかったのです。ここで、私は自分のためにそのようなツールを作成し、他の人にも利用できるようにすべきだと実感しました。」これこそ、彼が「アセットストアの魂」だと考えているものです。つまり、開発しようとしているゲームの共有可能部分を抽出し、パッケージ化し、リリースして他の開発者を支援することです。

Chronos と同様に、Bolt も Bonin 氏が別のプロジェクトに取り組んでいる時に作成されました。「私はモントリオールで行われる『Ephemera』というバーチャル体験イベントを物語風のゲームとして開発する小さなチームにいました。そして、私たちは、チームのアーティストとアニメーターがコアシステムとコーディングに焦点を当てながらシーンの構成とゲームプレイに貢献できるようにするビジュアルステートマシンを探していました。私たちはいくつかのソリューションを検討しました。そして、アセットストアには実に良いものもありました。しかし、私は完璧主義者なので、自分が頭の中で描いていたようなものにしたいと思いました。」

Ephemera チームが資金の調達に奔走する中、Bonin 氏は Bolt の開発だけに集中して、約 9 か月を費やしました。「いくつかの機能に取り組み始めると、それらをさらに洗練したくなったので、数週間猛烈に働きました。しかし、それだけの時間をかける価値がありました。理想的な開発方法を発見できたからです。」

彼は自身のゲーム開発およびゲームデザインの知識を投入して、コーディングとデザインの作業をすべて行いました。

「この経験は私にとって有意義でした。私が作りたかったビジュアルツールは視覚的思考者に役立つことを目的としたツールだったからです。ここで、視覚的思考者とは例えば、優れたデザインと視覚的フィードバックを楽しむ人、起こっていることをひと目で知りたいと思う人、エラーや警告が発生したタイミングと場所を知る必要がある人のことです。視覚的思考者への配慮は、私にとってバックエンドエンジンと同じぐらいに重要でした。そのため、バックエンドエンジンに対して開発できるすべての機能に注ぐのと同じ大きな労力を使用感にもかけました。」

Bolt のフローグラフが動作しているところ

彼は基礎を築いてから、それを正式版として作り上げる前に、重要なデザイン上のフィードバックを求めました。

「6 か月ほど経った後に、私は Bolt の画面を映したスクリーンの前に経験豊富なモントリオールのゲーム開発者たちを集めて尋ねました。『これなら直感的に分かりますか。私がこの 2 つの要素をつないだ場合にここで何が起こったのかを理解できますか。お見せしたこのグラフが何を行うものなのか、ひと目でわかりますか。』とね。」

インターフェースで起こったことを開発者たちが理解できなかった場合、Bonin 氏は GUI を手直しして、より直感的なものにしました。開発終盤の数か月間で、彼が作った、少数の開発者から成るグループでは、「Bolt」に対する徹底的なアルファテストを行いました。

Bolt が仲間のプログラマーに役立つと Bonin 氏が考える理由

Bonin 氏は、ビジュアルスクリプティングの概念に対する開発者からの抵抗に慣れています。彼が Bolt のリリースを初めて発表した時(2017 年夏)、「そもそも、プログラマーがビジュアルスクリプティングツールを使用する理由がわからない」というようなコメントをいくつか受けました。経験豊富なプログラマーである Bonin 氏が必ずしも必要ではなかったものを開発するのに、利益にもつながらない 9 か月分の労力をかけたのはなぜでしょうか。

「プログラマーとして私たちは、自分と異なる方法で考えたり学んだり、あるいは自分とは違うツールを必要としていたりする人々もいることを認識する必要があります。そのことに価値があるのが分かればよいのです。」Bonin 氏は、コーディングに夢中になっているのと同じぐらいに、優れたデザインとユーザー体験(UX)に夢中になっており、より良いツールやプログラミング教授法を主導している Bret Victor 氏などのデザイン思考実践者の著書を読んでいます。

「Victor 氏は次のようなことを書いています。『私たちが行っているイノベーションはエンドユーザー向けであり、同僚の開発者向けではありません。私たちは開発者の体験を改善するのに十分な時間を費やしていません。』彼は尋ねます。『なぜ私たちは今でも、起こっていることを可視化して理解しようとせず、むやみにテキストエディターでコーディングしているのでしょうか。この値が別の場所に影響を及ぼしていることを知るにはどうすれば良いでしょうか。また、どのようにすれば可視化できるでしょうか。』」

Unity が無料で公開している『Space Shooter』のデモ(Bolt を使用するように Bonin 氏が変換した後のバージョン)

フローグラフ VS ステートグラフ

フローグラフは「Bolt」の機能の 1 つですが、Bonin 氏は熟練した開発者にとってフローグラフが有用かどうかについて正直にこう語ります。

「プログラマーにはフローグラフは必要ないでしょう。Bolt がほとんどのコードを 1 対 1 翻訳するだけだからです。しかし、ステートグラフは、コーディング方法を知っている場合でも非常に有益です。それはコードでは簡単に可視化できない方法でロジックを構築できるからです。

例えば、ゲームプレイのシナリオを見て、『このキャラクターは待機ステートにある。待機ステートの間は、他の関数を呼び出そう。』と考えるかもしれません。そして敵が近くに寄れば、チェイスステートに入ります。そのステートでは、他の一連の関数を呼び出します。…このため、全てのステートでコードが可視化するのは難しい場合があります。このような場合こそ、高度な可視化が一部の開発者にも非常に役立つ場面です。」

NPC 用の AI の挙動を示すサンプルステートグラフ(待機、パトロール、チェイス、攻撃など)

開発者に対して魅力があると彼が感じるもうひとつの部分は、Unity コードベースのすべてが Bolt で直接利用可能になることです。Bolt と Unity の間にはインテグレーション層がないからです。そして、それによりメンテナンスも簡素化されます。「自分のキャラクタークラスや独自のアイテムクラスなどに直接アクセスできます。Bolt 内にあるそれらのクラスから関数を呼び出し、プロパティを設定できます。また、私にとってのメリットは、Unity が新しいコンポーネントを含む新しいバージョンをリリースした場合に、私もユーザーも何もしなくてよく、新しいバージョンが自動的に Bolt によって取り込まれる点です。コードベース全体が直接分析され、読み込まれて、オプションを選択できるようになります。」

さまざまなスキルレベルの開発者が共に作業する場合にも対応できる

Bonin 氏は、3000 人近いユーザーベースを誇る「Bolt」が、さまざまなスキルレベルが入り混じったチームに採用されていることを目の当たりにしています。

「あなたのチームがプログラマーやアーティストなどの多様なチームである場合は、いくつかのコアシステム、主要な C# クラス、およびそれらの項目間の通信方法にプログラマーを専念させながら、デザイナーやアーティストにはそれらの項目に Bolt からアクセスさせることができます。彼らはパラメーターをいじったり構造を理解したりするだけであり、それらがコードの段階で実際にどのように作用するかについては心配する必要がありません。」

実際、彼は開発を始めたばかりの開発者に対し、このようなアプローチを取るように奨励しています。チュートリアルを含む豊富なドキュメントを提供しているのにもかかわらず、中にはそれらを見ずにいきなり飛び込んで何が起こるのかを早く見たがる人もいます。

「初めて Bolt を目にした際に『どこから始めればよいのかがわからない』と言ってきたアーティストやデザイナーの友人がいたので、私は彼らに言いました。『ゲームオブジェクトのひとつに Bolt コンポーネントを追加し、再生ボタンを押すだけだよ。そして、プレイ中には、ノードを追加し続けて、その実行内容も確認できる。これは Bolt の利点のひとつだね。ライブ編集を行って、その結果をリアルタイムで確認できる。また、必要なあらゆるものを追加、削除、変更することもできる。これは、エンジンや利用できるツールを学習し始めた人たちにとっては、創造性を発揮できるようにしてくれる一種のサンドボックスとも言えるね』と。」

Bolt のチュートリアルに収録されている 2D プラットフォーマー。ビジュアルスクリプティングでいろいろ試すのに最適な環境となっている。

アセットストアパブリッシャーのある 1 日

それでは、数千人のユーザー(そのうちの 500 人以上は Discord サーバーでホスティングされている Bolt コミュニティのメンバー)とともに働く Bonin 氏の典型的な 1 日とは、どのようなものでしょうか。

「私はまず、プライベートチケットや教育ライセンスの申請などを確認します。次に、コミュニティで行われた発言内容、および『Bolt』の改善方法に対する提案を確認します。彼らのアイデアには非常に役立つものがあります。というのは、自分のプロジェクトに入り込みすぎると、判断力を失う場合があるからです。このため、コミュニティは私が順調に物事を進めるのに大いに助けになっています。次に、バグの修正に進みます。そして、空いた時間を使用して新機能の開発を開始します。

1 人での作業なので、ユーザーからの過度な期待に応えるのは難しく、管理する必要があります。「最近、Ludiq を『私たち』と呼ぶのを止め、『私』だけを使用しなければならなくなりました。それにより、コミュニティが、決定事項が期待するほど早く行われない理由を理解できるようになるからです。そして、このことは多くのユーザーに理解されていると思います。なぜかと言えば、私のロードマップを公開しているからです。新しい機能が多くの人から注目される場合でも、私は提供する内容とタイミングに慎重でいなければなりません」と彼は語ります。

モントリオールにある Ludiq の本社

独自のツールを作成する開発者へのアドバイス

最後に、「ゲーム開発者が自分の IP(知的財産)の一部を分離してアセットに取り込めば、他の開発者を支援することになるので、それら他の開発者のパッションプロジェクトを財政的に支援することにもつながります」とふと気づいた、自身のようなゲーム開発者に対し、Bonin 氏が語りかけるメッセージをお聞きください。

「デザイン面では、ツールのモックアップ、UX とインタラクションの設計、Unity エディターの仕組みとデザイン言語に関する学習をお勧めします。優れた Unity ツールを使用する鍵は習熟することですが、この手順を多くの開発者が踏んでいないと私は思います。技術面では、初心者の場合、このチュートリアルを使用して『Unity エディター』でツール、プロセス、タスクをカスタマイズするスクリプトを作成することをお勧めします。また、『Unity エディター』の『GUI API』とその複雑性(Unity ブログのこちらの記事をご覧ください)に習熟してください。」

4 月 5 日までに Unity Plus を新規サブスクライブすれば無料

4 月 5 日までに Unity Plus サブスクリプションにサインアップすれば、「Bolt」を無料で入手できます。また、「Triple Boost with Unity Plus」キャンペーンには、年間通しかつ追加コストなしでの「Unity Game Dev Courses」、および選択したアセットストア製品の 20% 割引の特典も含まれています。

Unity Plus を入手する

ビジュアルスクリプティングについてもっと学ぶ

Unity 社員の Ethan Bruins がホストした最近のライブセッションで「Bolt」の使い方を学びましょう。

アセットストアから入手できる類似のパッケージに関しては、ビジュアルスクリプティングのページをご覧ください。

 

20 replies on “可視化を行いましょう!ビジュアルスクリプティングツール Bolt の舞台裏”

Unity you should buy and integrate this into the base Unity engine, like you did with Textmesh Pro and Probuilder. It will really help out beginners. Will also be a perfect complement to the shader graph, and a nice addition for people who used Unreal Engine for it’s blueprint system.

Curious, why is Unity getting behind Bolt vs Nottorus? I’ve not seen any clear cut answers yet, but some things I’ve seen has lead me to believe that Nottorus is a superior product. What’s your reasoning here Unity folks? Truly curious as there must be something I’m not seeing!

Well…Nottorus is $150 for a product that is no longer being supported or developed after next month (04/2018).

Bolt has helped me build my first game faster. It’s nice to read about Lazlo and all the hard work he put into his product. Keep up the good work Lazlo! and thank you for answering my questions and your tutorials.

How does Bolt compare to PlayMaker? Is Bolt now the officially recommended visual scripting tool?

Hi Hans, thanks for your interest. From time to time we profile popular assets and inspirational publishers, and since Bolt is fairly new and popular (and free with Unity Plus at the moment), we decided to provide a behind-the-scenes view of what it’s like to create, publish and support such an asset.

There are many great visual-scripting tools out there in addition to Bolt such as Playmaker, uScript, FlowCanvas and more. You can see the available visual-scripting assets, including many currently discounted ones for Unity Plus and Pro subscribers, here: https://assetstore.unity.com/categories/tools/visual-scripting

Regarding Playmaker, another 5-star visual-scripting tool, Ludiq has an extensive feature-comparison table where you can see how it, and many other visual-scripting tools, compare to Bolt: https://support.ludiq.io/knowledge-bases/4/articles/222-compare-visual-scripting-tools-for-unity

And we ran a blog post on Playmaker last year: https://blogs.unity3d.com/2017/05/04/spotlight-on-playmaker-visual-scripting-that-lets-you-bypass-the-code-and-unleash-your-creative-potential/

I also encourage you to check out the Unity Forum, the comments on this post, and other sources as you inform yourself about the best Unity tools and assets for your needs.

That’s all good, but when I can write the flowgraph above in just 6 or 7 lines instead of 20 node and connection and read it much easily, what’s the point of going visual?

void Update () {
float time = Time.time;
Color col = new Color(Mathf.Sin((Input.GetKey(KeyCode.LeftShift))?0:time), Mathf.Sin(time + 1f), Mathf.Sin(time + 0.5f));
if (Input.GetKey(KeyCode.Space))
{
Debug.Log(col.r);
GetComponent().material.color = col;
}
transform.Rotate(Vector3.up, Time.deltaTime * speed);
}

Not everyone is an experienced programmer. Some people like the simplicity of the visualization

it’s not ONLY for plus version; it’s available fro ALL versions; PLUS version has it only DISCOUNTED on the store

I love it when coders equate # of lines to # of nodes nodes in visual script. I’ve heard this so many times. Ahhh, the thinly veiled condescension, and so far from any real logical comparison that an empathetic designer minded person would immediately recognize. Consider the knowledge it takes to find, construct, and properly order the syntax of said lines – even with the eye sore that is visual studio. Consider that a single node abstracts all of that, hiding it behind the ease of simply dragging it onto the canvas and hitting play. Then seeing how it reacts with other nodes as they are arranged in real time, seeing not just their interaction in the scene but also the real time visual feedback of the state flow in the nodes. When a button is down what nodes are being used? What aren’t? What nodes are not even being accessed? Brett Victor indeed. He warns against this shallow minded creativity killing assault by individuals who think in this narrow minded fashion. Go Bolt!!

Agreed. The question of “which is better” isn’t really accurate, because it depends on so many things, like the experience level of the programmer and the task at hand. Some things can be much more streamlined in code, for sure. Other things benefit from the visual paradigm, which also allows non-coders to understand what’s going on. Both are important.

Two critical factors supporting visual coding:
–it dummy-proofs code-based errors: syntax, spelling, number of arguments, etc. A lot of this is solved with code hinting, but there are still a lot of errors possible.
–it can be manipulated in real time. One single change to one script and you have to recompile everything. This can stretch into several minutes in complex programs. Again, you can minimize compilation rounds by exposing variables in the Inspector to tweak, but the countless other changes in your scripts must go through these cycles. It can really eat up a lot of time eventually.

I teach game design at a university where the two main tracks are game design and animation. The animation students I’ve had will really appreciate visual scripting, and I hope to incorporate it in future classes. They have to learn some code as well, which is important, but I think tools like these will keep them developing into the future…most don’t seem to continue developing using code after the required classes in it.

I am pretty sure that Bolt is a solid visual scripting plugin. What I am also sure about is the fact that Unity Tech. seems to be favoring this particular plugin. Blog posts and videos and streams and whatnot are all indicating that. There are other visual scripting solutions out there which could do with some love from Unity as well. I can totally see how this special treatment would tick off other plugin developers which again, have not gotten this royal treatment from Unity.

Agreed! I’ve been using uScript for years now, it’s probably one of the first, if not the first stable/reliable common purpose visual scripting tool in the unity world. Also there is a free personal/learning version available, meaning you can try it before you buy it.

I have had the same feeling about this since Bolt had been released, Unity picking Bolt out and pushing above other visual scripting tools. I own several, use the better ones, and I see that there are other tools as good and feature rich as Bolt, also good looking ( Personal favourite: FlowCanvas+NodeCanvas).
So what is the reason for pushing Bolt?

Comments are closed.