Skip to content

UTMS-VR/DeformingKnot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

結び目描画アプリ

このアプリでは結び目をVRの空間内で自由に描画, 移動, 変形させることができる. 変形の仕方は, 切断と結合, 曲線の一部を選択して引っ張る, 結び目のエネルギーの勾配に沿って整形の3通りである.

インストール

  • このリポジトリをcloneする.
  • Unity 2020.3.3f1で開く.
  • FileからBuild Settingsを開く.
  • プラットフォームをAndroidに変更する.
  • Sceneが1つも追加されていない場合はScenes/SampleSceneを追加する.
  • ビルドするとOculus Questで使用可能な.apkファイルが得られる.

操作方法

初期メニュー画面

操作 ボタン 詳細
描画 右人差し指のトリガー 右手の動きに合わせて曲線を描画する.
移動 右中指のトリガー 右手に十分近い曲線を右手の動きに合わせて平行移動・回転させる.
選択 Aボタン 曲線を選択・選択解除する. 選択された曲線は黄色になる.
切断 Bボタン 選択された曲線を右手に十分近いところで切断する.
結合 選択されている曲線が1つの場合は曲線が閉じているか否かを切り替える.
2つの場合は結合して1つの曲線にする.
いずれの場合も端点同士が十分に近くなくてはならない.
削除 選択されている曲線を削除する.
連続変形 連続変形のメニュー画面に移る.
この時, 曲線はすべて自己交叉のない閉曲線で, 互いに交叉を持ってはならない.
元に戻す 直前の操作をキャンセルする.
保存 現在描かれている曲線のリストを.json形式で/mnt/sdcard/CurveDataに保存する.
ファイル名はyyyy-MM-dd-HH-mm-ss.json.
開く ファイル選択画面に移る.

連続変形メニュー画面

操作 ボタン 詳細
選択 Aボタン 曲線を選択・選択解除する. 選択された曲線は黄色になる.
自動変形 自動変形メニュー画面に移る.
手動変形 選択された曲線が1つだけの時, 手動変形メニュー画面に移る.
平滑化 選択された曲線を滑らかにする.
詳しくは, 角度の小さい頂点を, 自分自身と隣接する2点(計3点)の平均に取り替える.
戻る 初期メニュー画面に戻る.

自動変形メニュー画面

結び目のエネルギーが小さくなるように結び目を自動で整形する. 絡み目にも対応している. 自己交叉しそうになると変形が止まる

操作 ボタン 詳細
自動変形(遅い) Aボタン 結び目のエネルギーの勾配に沿って自動で変形する.
自動変形(速い) Bボタン 自動変形(遅い)の更新時に慣性を加えたもの.
戻る 連続変形メニュー画面に戻る. 

手動変形メニュー画面

自己交叉しそうになると変形が止まる。また、1フレーム間の変化量には上限がある。

状態 メッセージ Aボタン Bボタン
Base 可動域を確定しますか? 可動域を確定するして
Pullに移る.
Choose1に移る.
Pull 右手の動きに合わせて変形します 変更を確定して
Baseに移る.
変更をキャンセルして
Baseに戻る.
Choose1 可動域の始点を選択して下さい 始点を決定して
Choose2に移る.
キャンセルして
Baseに戻る.
Choose2 可動域の終点を選択して下さい 終点を決定して
Baseに移る.
キャンセルして
Baseに戻る.

ファイル選択メニュー画面

ファイルを開くときに現在描かれている曲線を削除するか否かを選択することができる. Galleryフォルダ内からは https://github.com/UTMS-VR/CurveData/tree/main/Gallery で公開されている結び目の例を開くことができる.

pc上での操作

Oculus Quest上で可能な操作はUnityのエディタ上でエミュレートすることができる.

Oculus Questのコントローラーのボタンとpcのキーの対応

コントローラー pc
右人差し指のトリガー R
右中指のトリガー E
左人差し指のトリガー Q
左中指のトリガー W
Aボタン A
Bボタン B
Xボタン X
Yボタン Y
左スティック 矢印キー

コントローラーの位置操作

pc上で動作させる場合は白いキューブがコントローラーを表している。 コントローラーとカメラが同じ位置にあるのでPlay開始時にはコントローラーは見えない。 z軸正方向にいくらか動かすと視界に入るようになる。

pcのキー 移動方向
; x軸正方向
k x軸負方向
o y軸正方向
l y軸負方向
i z軸正方向
, z軸負方向

日本語フォントのライセンス

日本語フォントはSIL OPEN FONT LICENSEのNoto Sans Japaneseを用いています.