見出し画像

Unity1Week「穴あけ苦行」の雑記

 note使うの初めて、景品につられっクマー
こちらの話

で、作ったのはこっち

 簡単な振り返りと、技術的な話(紙の折り曲げ・紙の穴開け)について
書いておく


:振り返り:


目標達成可否

【目標】   ゲームの完成、音・絵を頑張る
【サブ目標】 目指せプニキ

目標の達成可否
 ・ゲームの完成 〇
 ・音・絵を頑張る △
 ・プニキ ×

アイデアについて

 ゲームのアイデアとして、
  1.ゴルフのホールを自分で開ける(球は自動で飛んでくる)
  2.金魚すくいの金魚側(ぼいに穴を開ける)
  3.穴あけパンチで正確な位置に穴を開ける
  4.ドアマンとなって良いタイミングでドアを開ける
を思いついた

 また、プニキは「理不尽さ(イライラ)と中毒さの両立」みたいな、
壺おじ、アイワナ辺りに通じるゲーム性のことを指してる

 このゲーム性と照らし合わせて
  1.プニキとほぼ同じもの作ることになりそう
  2.いま冬やぞ
  3.技術的にできるんか?
  4.面白くするの大変そう
ってことで3.の穴あけパンチになった

投稿した作品の自己評価

 ・それなりのイライラと弱めの中毒さ
 ・この小ささだから耐えられるゲーム性(物量を増やしてもつまらない)
みたいな感じか

 手が素直に動くと面白くなかったので、なるべくやりにくいようにしたが
たぶん良い方向(より苦しむ方向)に行ったと思う

 開けた穴と正解の穴とのずれが見れるのも
「違った、もう少しこうすれば」みたいな感触を得られてる気がする
なので、曲げたときに穴の位置がずれるバグは大変ダメな奴だった

 他の人の奴に比べると「快感性」みたいなのが足りていない
自分では「うまくやった時の喜び」を重視してたので、
そちらに目を向けていなかった
 作り方か、重視しているところが微妙に違うのだろうか
 自分が「あける」行為自体がうまくなれるように作る、に対して、
「あける」ことが楽しくなるように、リズムを付ける、エフェクトを出す、点数を付ける、アニメーションを付ける・・・っていう作り方・・・なのだろうか
 要考察


:技術面:


紙の曲げについて

 方針として
1.物理を再現する
2.何かしらで近似する
の2つがあったけど、物理の知識が足りなさ過ぎて1.を断念した

 2.において、紙のメッシュの頂点位置を正規分布で近似することにした
下の画像みたいな感じ

画像1

画像2

 くっそ見辛いのは承知しているが許してほしい
x,yはUnityの座標系の方向と一緒
μ、σはそれぞれ正規分布の値
(今回は紙の中央のメッシュの頂点をμ=0として計算した)
Lはメッシュの1つの正方形の大きさ

 近似にやってることは次の通り(正規分布をf(x)とする)
1.両手間の距離が初期距離よりどれくらい近づいてるか(ΔL)を取得
2.ΔLからいい感じに紙中央の高さと分散を決める
3.f(μ)をyとして中央の座標M(0,y)を決める
4.隣の頂点の位置をM'(L,f(L))として、MとM'の距離(L')を求める
5.L≒L'となるように2分探索で数値的に頂点の座標を求める
6.求まったらMにM'を代入して4.へ、+x方向の頂点全て求める
7.終わったらxの値を反転して1行分のメッシュの頂点位置確定
8.メッシュ全行に1行目と同じ頂点位置を格納し終了

 なんか回りくどいやり方してる気がするので
もっと簡単な方法募集してます

紙の穴開けについて

 ぶっちゃけよくわかってないのでやったことだけ記しておく
0.Shaderをいじって透明用の位置を用意して、指定位置が透明円になるようにsurfをいじる
1.GameObjectに穴を開ける位置を保存するObjを子として用意
2.メッシュの範囲外に子を移動させておく
3.穴開け時に所定位置にObjを移動
4.Obj.のワールド座標をShaderの透明用に用意したプロパティに代入

 4.は常時更新させているので、紙の移動に合わせて透明部分も移動する
直接頂点をいじってメッシュとして穴を開ける方法も考えたけど、
実装するために考えるのがめんどくさかったのでやめた

 これもかなり回りくどいことをやってる気がするので情報欲しい・・・


:総括:


 まぁ、新規技術(メッシュいじり、Shaderいじり)を手に入れたのでヨシ!
もっと良いゲーム作りたいし、そろそろ物量に耐えるゲーム作りたい・・・

この記事が気に入ったらサポートをしてみませんか?