Cluster GAMEJAM 2022 in AUTUMN
今回も参加してみました。
こんなイベント時にしかClusterの開発は触らないのでまったく賞が狙えるようなレベルでもないのですが、イベントごとが好きなのと、逆にこんな機会でもないと触ることがないので参加してる感じです。
前回は春だったのでおよそ半年ぶりのCluster開発に触ってみる経験でした。
↓ 前回とその前の参加記事
siroitori.hatenablog.com
siroitori.hatenablog.com
今回のエントリー特典
毎度エントリー特典があるのもCluster GAMEJAMの特徴です。
参加特典のTシャツが届いたー!
— とり子 (@siroitori0413) 2022年10月27日
今晩から日曜まででワールド作るのだけど、頭痛いしお腹痛いし足も痛いしちゃんとできるかな‥と少し弱気だけど、楽しんでがんばる〜。
新機能のスクリプトは使ってみたい。
息子氏手伝ってくれないかなぁぁ。 pic.twitter.com/tJxV09QSNu
Tシャツゲット〜♪
今回はスマホアプリでも作れる「ワールドクラフト」に挑戦
Clusterの開発がGAMEJAMの時にしかやらないと書きましたが、それはUnityについても同様です。
普段まったくUnityを使っていないのですがClusterの開発のときだけちょっと触っています。
しかし今までの2回の参加経験上、ちょっと問題がありました。
「Unity(というより3Dゲーム)酔う・・・」
GAMEJAMはいつも金曜の夜から日曜の夜までの2日間で完成させるのですが、ちょっと酔う開発をぎっちぎちにやってしまうと終わった頃には結構具合悪くなりますw
なので今回はUnityを使わないワールドクラフトを使って、しかも他の用事も立て込んでたのもあり、そこまで時間をかけずにやろうと決めました。
ただし「Unityを使わない」と思ったものの結局少しは使うことになりました。これについては後述します。
ワールドクラフトはPCのほかスマホアプリからでも行え、マイクラのようにアイテムを置きながら建築ができるものになります。
これを使ってワールドを作ること自体はとても簡単で、私なんかよりもマイクラ好きのお子さんのほうがはるかに上手にできると思います。
私に足りないもの、それは・・・建築センス!
ワールドクラフトにスクリプトが書ける新機能
今回新機能がありました。なんとワールドクラフトでクラフトするアイテムにJavaScriptでスクリプト(挙動のプログラム)が書けるようになったとのこと。
これは息子くんも興味津々でした。
じゃあ一緒に作ろう!と言ったのですが「そこまでは結構」と非情に断られましたw
GAMEJAMがはじまった!
— とり子 (@siroitori0413) 2022年10月28日
clusterの新機能のスクリプト(JavaScript)をワールドクラフトでやってみたら、結構簡単にできた。
た、たのしい!
今回はこれで作る!#ClusterGAMEJAM pic.twitter.com/HX6gdhr15G
↑ toioみたいな四角い箱が左右に行ったり来たり。これはJavaScriptのコードで動いています。
結局スクリプトのアイテムを作るにはUnityが必要
最初ドキュメントを読んでもスクリプトで制御できるアイテムの関係性が最初わからなかったのでどういうこと??となりましたが、こういうことのようです。
- Unityで作るワールド
- ワールドクラフトで作るワールド
上記どちらにも「アイテム」が使用可能です。
この「アイテム」はワールドクラフト上では「クラフトアイテム」として最初から存在するもののほか、Unityで作ったものをアイテムとしてアップロードしてワールドクラフトで使うこともできます。
はたまたこうやってアップロードしたクラフトアイテムをワールドクラフトストアで購入・販売することも可能のようです。
▲ ワールドクラフトではこのように最初からたくさんのアイテムが用意されています。また左のメニューの一番下にあるSTOREのボタンからワールドクラフトストアに飛ぶことができます。
ただし、スクリプト可能なアイテムは最初から準備されていないため(多分!)、自分でUnityで作る必要があります。
またはワールドクラフトストアではスクリプト制御されたアイテムも販売されています。
補足情報
■ クラフトアイテムの販売
creator.cluster.mu
Unityでの作り方
下記の2つの内容を参考に作ることができました。
note.com
creator.cluster.mu
動くアイテム、乗って動くアイテム、触ると動くアイテムなどいろいろスクリプト制御することができます。
ポイントとしては、
- スクリプト可能なアイテムを作る場合、Scriptable Itemを設定しておく必要がある
- 動くアイテムを作る場合、上記に加えMovable Itemを設定しておく必要がある
- 乗れるアイテムをを作る場合、上記に加えRidable Itemを設定しておく必要がある
- つかめるアイテムを作る場合、Scriptable Itemに加え Grabbable Itemを設定しておく必要がある
Scriptable Itemについてのマニュアルはこちら
Scriptable Item以外については以前からのUnityでのアイテム作成上の仕様かもです。
(すべて私の理解ですので違ってる部分があったらご指摘ください)
また、JavaScriptのスクリプトの内容(実際の挙動のコード)についてはUnity上で設定しておいても良いですし設定しなくてもワールドクラフト上で設定・変更させることも可能となります。
▼ Unityでクラフトアイテムを作成しました。Scriptable Item、Movable Item、Ridable Itemを設定しています。
しかしスクリプトは難しい
だいたい理解できた!と思ったのですが・・・
スクリプトが物理式わかってないと超むずい感じでした。
たとえばZ軸方向に反復移動するサンプルのスクリプトの抜粋。
$.state.time += deltaTime; $.setPosition($.state.pivot.clone().add(direction.clone().multiplyScalar(Math.sin($.state.time * speed) * range).applyQuaternion($.getRotation())));
よくわからないままこれを円を描くように動くようにしたいなと思い修正するとこのようになりました ↓
乗れるクラフトアイテム作ってスクリプトで動かしてみてるけど・・・難しい・・
— とり子 (@siroitori0413) 2022年10月29日
そう動かしたいんじゃなくて・・って。
そもそもsinとか物理式がぜんぜんわかんないw
ノリで値を調整してる。 pic.twitter.com/5xUu9BOwUx
まぁ大きな円弧は描いているのですが・・。私が思い描く動きにはなりませんでした。
無事に完成
無事に時間内に完成しました。
サムネイル画像をあとで差し替えようと思っていましたが日曜にほかの用事に時間を取られて差し替えられませんでした。
でも投稿はできたので、早い時間にアップロードしておいて助かった〜と思ったのでした。
無事に時間内にGAMEJAMの作品投稿した〜
— とり子 (@siroitori0413) 2022年10月30日
けども誰が見てもクオリティ低くて恥ずかしいのでリンクはあえて載せません😂
よっぽどマイクラ得意な子にデザインしてほしかった!
しかし今回はスクリプトの勉強ができたので良しとする。
ドドン!
Twitterにリンク載せませんでしたが「ダサくないよ」と言われたのでこちらに公開しておきますw
今回のテーマは『はかる』だったので測るもの=定規の世界を作ってみました。
ワールドに入ると最初はお部屋の中。散らばっている定規はGrabbable Itemにしたので持つことができます。(床も同じテクスチャなのでわかりにくかったかも)
部屋中央の階段を登っていくと、定規アスレチックになっています。難易度は超低いです。
アスレチックの左下にあるエリアでは3つの定規が階段の上に乗っていて、これらは乗って遊ぶことができます。
さいごに
たいしたものは作れませんでしたが、こういうふうにして作れる・使えるということを学べてよかったです。
これからも楽しんでいろいろ挑戦していきたいなと思います。
[2022/12/25 追記]
奨励賞をいただきました!ありがとうございました!
そして参加賞のメダルも届きました。
ClusterGAMEJAM 奨励賞もろたー!
— とり子 (@siroitori0413) 2022年11月24日
そしてアンケートのプレゼントも当たったー!
ダブルでアマギフはとても嬉しいーーーーーー!
有難うございます。#ClusterGAMEJAM pic.twitter.com/cvHflFM1bh