未経験から始めるビジュアルスクリプティングのススメ

17.2K Views

October 26, 22

スライド概要

公式パッケージとして配布されているビジュアルスクリプティングツール Script Machine を使い、素人がわからないなりに2週間でゲームを作ってハイパーカジュアルの市場テストをした事例となります。
実際にゲームをどのように作っていったのか、初心者として助かった機能と癖のある点について実体験を交えながら解説させていただきます。
私自身アーティストなので、今までプログラムを書いてない職種の方にも触ってみようと思っていただけるきっかけになればと思います。

こんな人におすすめ:
・自分でゲームを作ってみたいと思っている非プログラム職種の方
・プログラムを書こうとして挫折した方

受講者が得られる知見:
・ビジュアルスクリプティングの始め方
・Script Machineの基本的な使い方と注意点

出演:
越後 壮平 (株式会社カヤック)

--
初出: SYNC 2022 #UnitySYNC
https://events.unity3d.jp/sync/

profile-image

リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

未経験から始める ビジュアルスクリプティングのススメ ~ 素人が2週間でゲーム作ってみた ~

2.

未経験でも2週間でゲームが作れました!

3.

越後 壮平 面白法人カヤック アーティスト 作ったハイパーカジュアルゲームが 全世界で5億DLされました うち2タイトルが全米一位獲得

4.

プロトタイピング 少数のユーザーに広告を配信し インストールしてもらう 反応が良ければ 本開発に進む 反応が悪ければ 企画からやりなおし ハイパーカジュアルゲームの制作では プロトタイプを作ったらそのアプリが売れそうか ストアに一旦出して確認する工程があります。(CPIテスト)

5.

今のチームでは企画アイデアが 400案程度ストックされているのですが、 実装ラインの都合、その全てがテストできているわけではありません => エンジニアの稼働数がそのまま テスト頻度になっている状態

6.

自信のある企画が書けたとしても、 実装がいつになるか分からず経験も溜めにくい状態でした ならば自分で作ってしまおうと思い手を出したのが

7.

Unity2020から正式に導入された Script Machine です

8.

コードを書くのではなく 箱と箱を線で繋ぐことでプログラムができます (Bolt と言った方が馴染みがある方もいるかも)

9.

今回作ったゲームも、このようにノードで動いています

10.

このセッションは プログラム素人がわからないなりに 2週間でゲームが作れた! という実体験の参考事例となります

11.

実例:キャラを動かす部分

12.

実例:キャラを動かす部分 キャラが消えた時 死亡演出を再生

13.

実例:キャラを動かす部分 毎フレーム 力として加える (キャラが動く) 掛けて 水平と ジョイスティック 入力の ベクトルにし 垂直を キャラの速度と キャラが消えた時 死亡演出を再生

14.

実例:キャラを動かす部分 毎フレーム 力として加える (キャラが動く) 掛けて 水平と ジョイスティック 入力の ベクトルにし 垂直を キャラの速度と 時だけ ベクトルが 同じではない キャラが消えた時 死亡演出を再生 ベクトル(0,0,0)と キャラを ベクトル方向に 向ける (自分で動かした 方向に向く)

15.

実例:キャラを動かす部分 毎フレーム 力として加える (キャラが動く) 掛けて 水平と ジョイスティック 入力の ベクトルにし 垂直を キャラの速度と 時だけ 口で説明出来たら書ける ベクトルが 同じではない キャラが消えた時 死亡演出を再生 ベクトル(0,0,0)と キャラを ベクトル方向に 向ける (自分で動かした 方向に向く)

16.

実例:HP管理

17.

実例:HP管理 常に 時だけ 一個づつ OFFにする(キューブを落とす) アイテムを HPが 親オブジェクトの 0以下になった アイテム接続部分 の数

18.

実例:HP管理 爆発エフェクトを 一度だけ ONにし その後 常に 時だけ 一個づつ OFFにする(キューブを落とす) アイテムを HPが 0以下になった 親の 削除処理を させる 親オブジェクトへ 親オブジェクトの アイテム接続部分 の数 このUnitごと

19.

実例:ステージクリア

20.

実例:ステージクリア 常に 時 一度だけ ONにする 数と 敵キャラの 一致した クリア画像を 倒した敵の数が

21.

実例:ステージクリア 3秒待ってから 常に 時 一度だけ ONにする 数と 敵キャラの 上書きし レベルのロード 処理を走らせ 一致した クリア画像を 現在のステージを 倒した敵の数が レベル置き場の 現在のレベルに +1して 削除する

22.

初心者視点で Script Machineに搭載されていて助かった機能

23.

Variables 初心者にありがちな宣言ミスが 起きにくい仕組みになっている 2.Varialesの欄が作られ ScriptMachineを使用する際、 スクリプトをつけるとすぐ上にvariablesの欄が 作られ そこに入力した値は宣言した状態になる 入れた値はドラッグすることで使える 3.入力した値は ドラッグで取り出せる 1.ScriptMachineを付けると 「書いてないものは値として使えない」というの がわかりやすく表現されている

24.

型ごとの色 型ごとに色が決まっている為 間違えて指定したことに 気が付きやすい ノードを繋ぐ際に型ごとに決まった色の線が引 かれるため、同じ色に繋ぐことを 心がけるだけで型指定のミスが起きにくい

25.

プレビュー 再生中に信号が走るので状況が 把握しやすい 再生時にノード上を信号が走るので 今プログラムがどういう状態なのか 把握しやすくなっている また、ValuesをONにすると渡された値も表示さ れるので、どの当たり判定が感知されたのか等 がぱっと見でわかるようになっている

26.

プレビュー 再生中に信号が走るので状況が 把握しやすい エラーが起きた時は該当部分が赤く表示される ので見つけやすい とはいえ赤くなっているノードが悪いのではな く、そこに渡してる値が悪い場合もあるので過 信はできない

27.

Coroutine コルーチンがワンボタンで 設定できる コルーチン扱いにしたいノードを選び、 チェックを入れるだけで使えるようになる

28.

ノードにスクリプトを追加する 外部プラグインが読み込めると一 気にやれることが広がる ScriptMachineにJoystickを導入する Unityさん公式の動画が非常にわかりやすかっ たです🙏

29.

Script Machineのちょっと癖のあるところ

30.

Aot List 何でも入るAot List リストの枠1個ごとに入るモノを指定してどんな 型でも入ってしまうかなり豪快なリスト 初心者としては何でも入れられて便利ですが、 GameObjectを渡していたつもりがRigidbody が入ってた、みたいなエラーが結構起こりがち なので理解して使ってないと難しい

31.

差分 Diff(差分)が取りづらい ノードの構成自体をいじっていなくても 場所ずらしただけで 更新がかかってしまったり、 Github上で差分が目で見てわからないので 複数人で使用する際は注意が必要そう こんな感じで全てまとまっているので内容が読めない (現状自分一人で使用しているので コンフリクトは未経験です)

32.

情報の検索性 ネットに情報があまり落ちていな いので普通にUnityの知識は必要 になってくる 通常のUnityでの解法を調べてそれをノードで 再現することが多かったです プログラムで使っている書き方に該当するノー ドがなかったりして 結構苦しむことがありました

33.

Unityさんへの要望 ・var以外もインスペクタから直接ドラッグできたら神 ・文字が前後間違ってても検索に出てくれると最高 ・今動いてるプログラムを一望できる機能がほしい ・ノード上で検索させてほしい ・シェーダーグラフとなぜかズーム方法が違うの揃えて...

34.

なお、今回作ったアプリは 実際にストア上げて CPIテストをしました

35.

結果は奮いませんでしたが、 エンジニアに頼まずとも アーティストだけで テストができたのは大きな経験

36.

Script Machine オススメです! ありがとうございました

37.

お世話になった資料 ビジュアルスクリプティングで 始めるUnity入門 見てわかるUnity Visual Scripting超 入門