バッテラのハローワールド研究室

エンジニア、プログラミングに関する情報を掲載中!

【パチンコ開発】パチンコの逆止弁を作る (Unityで絶賛開発中)

はじめに

今日はパチンコ制作開発の回です。

今回はパチンコにおける逆止弁を作るのをやっていこうと思います

環境

  • MacOS Monterey (12.1)
  • Unity (2021.2.9f1)

逆止弁とは

打ち出した玉が戻ってこないようにするためのギミックになります。

これをどうUnityで再現するかが今回の課題。

HIngeJointというのが使えそう

docs.unity3d.com

Aのオブジェクトを基準としてBが回転するといったものが作れるようになります。

ドアなんかがその代表例で、ドアの支柱を基準としてドア板が回転するとか。。

とある軸を基準にして回転させるってときに「HIngeJoint」を使うってことでいいのかな。

軸と弁のモデルをつくる

モデリングせずUnity標準の3DオブジェクトでもいいしProbuilderで作るのもよし

軸となるものを「Cylinder」で作ります (図の右側)

弁となるものを「Cube」で作ります(図の左側)

「軸」の設定

軸は一切動かないですが、Rigidbodyをアタッチしてあげます。

HingeJointを使うために双方がRigidbodyである必要があるんです。

とはいえ動かなくていいので Is Kinematic にチェックいれます。

あとは位置を自分の好きな位置に移動してあげます。

これで軸の設定は終わりです。

弁の設定

回転する側のほうです。

まずHingeJointをアタッチします。そうすると自動でRIgidBodyもアタッチされます。

ConnectedBodyに 「軸」のゲームオブジェクトをアタッチします。

Anchorの設定

Anchorとは、基準点からどれくらい離すかの設定だと思う。振り子の「幅」を決めてる感じ。

全部0なら「軸」「弁」の真ん中がぴったり合うようになります。

今回求めているものは、軸に対して上側なのでY軸の値を -0.5 します。

そうすると下図のようになります。

Axisの設定

回転する軸を決める設定です。

デフォルトだとXにだけ1という値が入ってます。

0 か 1 のどちらかの値を入れるイメージ。

Xが1だとX軸が回転するというわけではありませんので注意です。

Xが1だとZ方向が回転します。弁の動きとしてはX軸方向に回転なのでこれだとダメですね。

X軸の回転の場合は Z を1にして他は0にします。

Connected Anchorの設定

正直この値はなんなのかはわからんです。今回は使いません。

Auto Configure Connect... はチェック外し Connected Anchorは 全部 0 にします。

実行したら分かりますが 「弁」の位置は自動で書き換えられます。

Springを設定する

「弁」の動きとしては、開いたらまた定位置に戻るような動きになってほしいですよね。

こういうバネのよう動きをさせるには、 Use Springにチェックします。

SpringとDamperは実行した状態でどうしたらどのような塩梅になるかを試しながら調整しましょう。

これで完成です。

おわりに

それでは、また。

読者登録・Twitterのフォローをしていただけると、ハッピーになります。