Skills
Skills
IVE(没入型仮想環境)を用いて実験を行う利点 → Detail
IVEを用いて実験を行う利点は以下の4つに分類できる。
Oculus Rift & Oculus Questとの接続
仮想環境の提示
import viz
import oculus
hmd = oculus.Rift()
viz.link(hmd.getSensor(), viz.MainView)
viz.go()
コントローラの接続と操作反映(https://forum.worldviz.com/showthread.php?t=5984)
hmd = oculus.Rift()
remote = hmd.getRemoteController()
if remote.isButtonDown(oculus.BUTTON_REMOTE_UP):
pos[1] += inc
if remote.isButtonDown(oculus.BUTTON_REMOTE_LEFT):
pos[0] -= inc
if remote.isButtonDown(oculus.BUTTON_REMOTE_DOWN):
pos[1] -= inc
if remote.isButtonDown(oculus.BUTTON_REMOTE_RIGHT):
pos[0] += inc
Vizardへの接続
ボタン・トリガー操作の反映
Eye-Tracking 関連
Cyberith Virtualizer との接続
import viz
import vizact
import viztask
import steamvr
import math
import GazeUtils
#### Viz.go ####
viz.setMultiSample(8)
viz.go()
#### HMD(and Virtualizer/navigation)Setting ###
hmd = steamvr.HMD()
navigationNode = viz.addGroup()
viewLink = viz.link(navigationNode, viz.MainView)
viewLink.preMultLinkable(hmd.getSensor())
#### Cyberith Virtualizer Setting ####
from cybsdk2 import *
class VirtPlugin:
@staticmethod
def AngleToVector(angle):
return [math.sin(angle), 0, math.cos(angle)]
@staticmethod
def VectorScale(vector, scale):
return [vector[0]*scale, vector[1]*scale, vector[2]*scale]
def updatevirtualizer(self):
playerOrientation = virtualizer.GetPlayerOrientation()
movementDirection = virtualizer.GetMovementDirection()
movementSpeed = virtualizer.GetMovementSpeed()
movement = VirtPlugin.AngleToVector(playerOrientation * 2 * math.pi + movementDirection * math.pi)
movement = VirtPlugin.VectorScale(movement, movementSpeed * 1.2)
movement = VirtPlugin.VectorScale(movement, viz.elapsed())
navigationNode.setPosition(movement, viz.REL_PARENT)
def ResetOrientation():
virtualizer.ResetPlayerOrientation()
hmd.getSensor().reset()
virtPlugin = VirtPlugin()
# 1. Get device
virtualizer = Virt.FindDevice()
if virtualizer == None:
print("No Virtualizer Device Found!")
# 2. Open connection
if virtualizer.Open() == False:
print("Unable to connect to Virtualizer!")
# 3. Update every frame
vizact.onkeydown('r', virtPlugin.ResetOrientation)
vizact.ontimer(0, virtPlugin.updatevirtualizer)
#######
StarVR ONEとの接続
Display Optimizationの不具合は、先方のサーバの問題かも?
装着後に画面が明滅するときは、締め付けが緩いことがある。
Unityを用いて開発を行う場合、Unity2019のバージョンを使用する。StarVRのUnity統合は、UnityのOpenVRコンポーネントに依存しているが、このコンポーネントはUnity2020から削除されている。Unityのダウングレードはプロジェクトの破損を招くため、最初からUnity2019を使用することがおすすめ。
Vizconnect(Vizardに標準装備されている各種デバイスとのコネクトツール)
各種デバイスとの接続状態を記憶したVizconnectファイルを作成
Vizardスクリプト上でVizconnectファイルを読み込んで使用する → VR SOFTWARE WIKI
教養としてのPython → 東京大学のPython講座
Vizardは、Pythonの知識がなくても何となく使えてしまいます。が、
Vizardが吐き出すエラーコードを読み解くにはPythonの知識が必要。
使う人から作る人になるためには、Pythonの言語構造の学習が近道。
ポートフォリオの使用言語欄に「日本語、英語、Python」と書こう。
3dsMaxのモデルをvizardに読み込む
3dsMaxでモデルを作成し、書き出し>wrlで名前を付けて保存(例えば ball.wrl)
Vizardで新規vizardファイルを作成し、下記のコードを走らせる。
import viz
viz.go()
ball = viz.add('ball.wrl')
import viz
viz.go()
ball = viz.add('ball.osgb')
How to Create a VR Experiment with Vizard
Performing Eye Tracking Studies in VR
Mixamo to Vizard 手順
キャラクターのスケール調整
アニメーションの追加
3dsMaxでのモデリング
スタイルの活用
章節番号、図番号などは自動で更新されるように調整
図版の作成
84mm・5~8pt・Eng
横幅84mm・文字サイズ5~8pt・英語表記で作成する。
梗概や論文だけでなくスライド・ポスターにも使える。
行内に配置
図版の配置は基本的には「行内」で指定すること。
図表スタイルが用意されていればそれを適用する。
本文スタイルのままだと「字下げ」が適用される。
図版の組み合わせ(グループ化)
複数の図版の組合せはなるべくWord上で行うこと。
素材作成はイラレでもよいが添削時の編集が難しい。
「前面」で配置し「グループ化」し「行内」に配置の手順。
図表の周囲の行間調整
段落>間隔>「行数をグリッド線に合わせる」オフ
→ 図の上下の行間調整が自由にできるようになる
Word形式からPDF形式への変換(画像劣化への対処)
とりあえずの応急措置
・そのまま「PDF形式で保存」すると画像が劣化します
・「印刷」→ 「AdobePDF」→ 「プリンターのプロパティ」を開く
・PDF設定で「高品質」や「プレス品質」を選んで印刷
上記で納得がいかない場合
・PDF設定の右の「編集」画面を開く
・「画像」を選択し、圧縮を全て「OFF」にする
・画像は劣化しない、けど ファイルサイズは大
イラレからの画像貼り付け
そのままコピペ(ダメ)
・自動的にAdobe SVG形式になる
・PDF化すると低ラスター化(ギザギザ)される
形式を指定して貼りつけ(一番キレイ?)
・「図(拡張メタファイル)」を指定すること
・PDF化してもベクターデータのまま
イラレ上でPDF化してから貼りつけ(手間がかかる)
・PDFから範囲指定でコピーしてWordにペースト
・PDF化したときにWord とPDFの見え方にズレがない?
Word上で複数の図版を組み合わせる(グループ化)
図が「行内」にあるとグループ化できません。
・文字列の折り返しの設定を「四角」か「前面」にする
・複数の図版のレイアウトを仮決めしてグループ化する
・行内に戻してから個々の図版のレイアウトの調整する
文献管理
建築学会用のスタイル(cslファイル)を使用する →建築学会用CSL
和文情報は不備がでる場合が多いので、全て英文情報で管理する
Mendeleyの使い方
表計算
マクロ
グラフ
研究室の標準フォーマットを使用するとよい。
自己流では書かない
既往の論文からお手本を探して表現形式をマネする
わかりやすく書くこと
読者の知識とのギャップを埋めるように丁寧に書く
新しい知識や技術を、誤読されないように記述する
難解さと面白さ
「ケーキはしょっぱい」は「ケーキは甘い」より難しい
読者の既知の知識とのギャップの大きい宣言だから
ただ多くのケーキには塩が含まれるため真ではある
新しい知識はギャップが大きいゆえに新しく難しい
ギャップを放置すると難解なままで共感されないが
ギャップを埋める記述ができれば面白い文章になる
初期設定
Windowsのインストールファイルが入ったディスクやUSBを接続した状態でPCを起動
ライセンスキーを入力し、インストールの種類は「カスタム」を選択
PCメーカ―のサイトにシリアル番号を入力しネット接続用のドライバをダウンロード
→ネットに接続されたPCでダウンロードし、USBを用いて新規PCにファイルを移動
グラボは最新のドライバをサイトからダウンロードしてインストールする