見出し画像

【cluster】Animationを使ってランダムっぽい結果を作る

はい、美坂です。この記事はcluster1月のお題企画
「記事求ム!クリエイターキットライターズ」への投稿記事になります。

はじめに

Cluster Creator Kitでのランダムな値の生成は、
通常はLotteryを使うことになるかと思います。

しかしこの機能
あらかじめ指定した選択肢の中からどれかが選ばれる
という仕組みなので
この値からこの値の間の適当な値」みたいな
アナログな結果を得ることはできません。

あと選択肢が増えると編集がとても面倒です!

この記事ではAnimationを使って色々な
それっぽいランダムな結果
を作り出す手法を紹介していきます。

アナログな位置・ベクトルを得る

まず拙作「EARTH DEFENSE」で使った手法。

このゲームワールドでは広範囲に隕石が降ってくるのですが

画像1

この隕石の生成位置、かなりランダムっぽい感じになっています。
Lotteryで実装するには無理がある感じ!

さて、どうやって実装しているかですが、仕組みは割とシンプル。

画像2

まず空のオブジェクトを作って
Animationでそのオブジェクトの位置・向きをあちこちに動かします。
動きは早めに!(画像はだいぶ速度落としています)

画像3

そして高速振動しているオブジェクトの位置を
「Spawn Point」としてCreate Item Gimmickします。

ゲーム中での隕石の生成タイミングは不規則です。
なので、生成処理が呼ばれた際の位置・向きは
いい感じにランダムっぽくなります。

※ちなみにこの辺のアイデア、ガルペノさんの
 銃の弾を散乱させる処理とか見て思いついた感じです。感謝!

複数の位置からランダムに選択する

次「Trick or Sweets」と「謎の壺オンライン」で使った手法。

これらのワールドではマップ内の
あらかじめ指定された複数の出現位置のうち、
どこかにアイテムが出現する感じになっています。

画像4

図の出現ポイントのどこかにエナジーとか酸素ボンベとかが
出現する仕様です。

これについてはLotteryで処理できなくもないんですが、
数が多いので設定が面倒くさい!

これも考え方と仕組みは前述の方法と同じです。

画像5

空のオブジェクトを作って
出現予定地を次々と移動していくAnimationを割り当て。

あとは適当なタイミングでアイテム生成すると
ランダムっぽい位置にうまいこと配置されてくれます。

ついでにここで1つAnimationでの知見も

画像6

デフォルト設定だとAnimationでの値はこういう連続した値になりますが

画像7

keyframeを右クリック、Tangentの指定を「Constant」に設定すると

画像8

こういう不連続な値を得られます。
今回のような不連続な座標指定とかに使うと便利!

まとめ

はい、高速振動する何らかのAnimationを用いて
ランダムな位置を得る知見でした。

まあ厳密に言うとランダムではないんですけど、
ゆるいゲームで使う値ならこれぐらいの作りでも
十分それっぽい感じに動いてくれます。

厳密にやるととても面倒くさい処理を
手を抜いた雑な手法でそれっぽい結果を出すってムーブ、
ゲーム制作とかではとても有用な考え方です。たぶん!

みなさんもいい感じに雑にやっていきましょう
(ほどほどにね)

サポートは主においしそうな or 変な食べ物に費やされます。 サポートしてくれるととても嬉しいですが、お金はまず自分自身を優先して使ってくださいね。