やりたいこと
学校の昇降口のような両開きのガラス戸を作りたい!!!!!!
- キューブを組み合わせてオリジナルの扉を作成する
- 作成した扉とフレームを組み合わせてええ感じの見栄えにする
- ブループリントで動かしてみる
詰まったこと
- 作成したアクタの軸が中心だった
- どうやって軸を変更するんだっけ => ピボットの変更
- これって保存できるんだっけ? => できない🥺
- 両開きにするため、Set Relative Rotationを2つ置く必要があった
- 扉が開閉し続ける謎のバグ(笑)
扉のアクタ作成
今回はガラス戸なのでガラスっぽいマテリアルを作成する。このサイトを参照すべし!
https://note.com/takuya814/n/n421ee7968654
次に金属のフレームっぽい箇所はStartContent内の「M_Metal_Chrome」を利用した。
最後にFabから適当に取っ手をダウンロードしてつけてみた。
あとは良い感じに形を調整し、配置し、ツールタブから「アクタをマージ」を選択して保存する。今回は扉が両開きになるので、通常に加えて180度回転させたアクタを用意する必要あり。
なお、この方法で合っているのかは不明🤔
ブループリントの作成
扉の開け閉めに関するブループリントについてはこちらを参考にした。
https://www.udemy.com/course/unreal-engine-4-beginner-tutorial/?couponCode=NEWYEARCAREERJP
セクション12:ブループリントを使って、アクターに動きをつけたり、変化を持たせる
18. インタラクション - 1/2
作成するコンポーネント
- Doorを設置するためのDoorFrame
- 実際に動かすDoor(今回は両開きなので2枚)
- Eventのトリガーとなる当たり判定のBox
イベントグラフの作成
- OnComponentBeginOverlapでBoxを指定し、触れた瞬間イベント発火
- ここで扉が開くようにする
- OnComponentEndOverlapで扉を潜った後の終了処理
- タイムラインで0-1の間に扉の開閉を座標を指定
- 値は0~130とし、扉の左右でプラマイを逆にする
- SetRelativeRotationに対して2つのピンを伸ばすことはできないが、SetRelativeRotation自体を2つ繋げることにより両方の扉に対するイベントを作成
これで完成や!!!
!?!?!?wwww
軸(ピボット)の修正
作成したアクタは軸(ピボット)が中心に設定されていた。
レベルの内部ではピボットを変更することが可能であるが、今回はスタティックメッシュコンポーネントとしてアクタ(Door)を呼び出しているため、変更したピボットを保持できない模様・・・
直接変更できないのであれば仕方ない。
空のSceneを作成しスタティックメッシュであるDoorの軸に該当させたい箇所に重ねる。
Doorと親子関係を持たせ、DoorではなくSceneをターゲットとしたSetRelativeRotationで回転させることにより、軸問題が解決した!!
それなのに、どうして・・・
↓
Boxの範囲にSceneが収まっていないことが原因でした!w
Sceneが収まるようにBoxサイズを変更したら無事に治った🥳🥳🥳
完成!
これで自分の好きな扉を大量生産できるぜ!
おしまい