きゅーびっくきゅーこん

Topはてなブックマーク

about : サーバ関係、PukiWiki などの駄メモ + うなずき系Blog
with : VIA EPIA-C800 + バリュードメイン

Recent Blog Entry

<< 2016.12>>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

2016-11-17はてなブックマーク

[VR]Google Earth VRをOculus Rift CV1でプレイする Permalinkはてなブックマーク


Google Earth VRが公開されました。

Steamから入手できます。


ただし、現時点で対応しているヘッドマウントディスプレイはHTC Viveのみ。

Oculus Rift CV1でプレイしようとすると、
チェックに引っかかり、次のようなダイアログが表示され、プレイできません。

google_earth_vr_check.png


と、ここで、RedditのShockfire7というユーザがチェックを回避するパッチを作ってくれました。


試して、動作することを確認したので手順を記載します。

色々なリスクがあります。自己責任にてお願いします。


利用手順

  1. FakeViveをダウンロードする。
  2. zipを展開する。
  3. エクスプローラーで %PROGRAMFILES(X86)%\Steam\steamapps\common\EarthVR を開く。
  4. ddraw.dllをそのフォルダにコピーする。
  5. Google Earth VRを起動する。


なお、僕の環境ではまだコントローラーが利かないので、
メニューの[Demo]から[Play Tour "Landmarks"]を選んで楽しんだりしています。


11/17 12:50追記
Leap MotionとLeap Motion Driver for SteamVRをインストールして、
左手だけを使うようにすると、Selectくらいはできました (^^;


11/17 14:00追記

Xboxコントローラー(およびその互換コントローラー)でViveコントローラーをエミュレートすると、
より快適にプレイできるのではないかということで、FreePIEを使ってみました。

参考ページ


Flyを押せないのでイマイチですが、ドラッグはできるので、先ほどまでよりは多少マシに操作できます。

11/17 15:00追記:RBとRTを押しながら、右スティックを前方に倒し、さらに押し込むとFlyできます。

色々なリスクがあります。自己責任にてお願いします。


  1. 準備
    1. FreePIEをダウンロードして、インストールする。
    2. xbox_vive_emulation_v0.3.9.py.7zをダウンロードして、展開する。
      (ダウンロードにはmtbs3dへのサインアップが必要。できない場合は前述の「参考ページ」を参照。)
    3. sixense_fakex64.rarとsixense_fake.rarをダウンロードして、展開する。
      (ダウンロードにはmtbs3dへのサインアップが必要。できない場合は前述の「参考ページ」を参照。)
    4. SteamVR Driver for Razer Hydraをインストールする。
    5. エクスプローラーで %PROGRAMFILES(X86)%\Steam\steamapps\common\SteamVR Driver for Razer Hydra\hydra\bin\Win32 を開く。
    6. sixense_fake.dllをsixense.dllにリネームし、上記フォルダにコピーする。
    7. エクスプローラーで %PROGRAMFILES(X86)%\Steam\steamapps\common\SteamVR Driver for Razer Hydra\hydra\bin\Win64 を開く。
    8. sixense_fakex64.dllをsixense_x64.dllにリネームし、上記フォルダにコピーする。
  2. プレイ
    1. FreePIEを起動する。
    2. メニューの[File]>[Open]をクリックする。
    3. xbox_vive_emulation_v0.3.9.pyを選択する。
    4. メニューの[Script]>[Run]をクリックする。
    5. Google Earth VRを起動する。
    6. Riftを装着する。
    7. "Point each Hydra controller at the base and press any button."と表示されたら、コントローラーのLBとRBを押しながら、何かボタンを押す。
    8. " Hold both controllers by your head and press both system buttons at the same time."と表示されたら、コントローラーのLBとRBを押しながら、スタートボタンを押す。
  3. Xboxコントローラーの操作方法
    • スティックを押し込むと画面内のViveコントローラーがリセンターされます。
    • スティックはViveコントローラーの位置操作。LBやRBを押しながらだと回転操作。
    • トリガーはトリガー。
    • RBとRTを押しながら、右スティックを倒すと右トラックパッドを操作できます。スティックを押し込むとトラックパッドを押し込めます。
      (左も同様)

2016-05-09はてなブックマーク

[VR]いい感じに透けて縁が発光するCapsuleHand(LEAP motion) Permalinkはてなブックマーク

LEAP motionのCapsuleHand、ちょっとダサい。

ということで、改善してみる。


最終的にはこんな感じになる。



まずは、手の甲と指の関節の球をなくす。

  1. LeapMotion/Scripts/Hands/CapsuleHand.csを開く。
  2. 14行目のSPHERE_RADIUSの値を0fに変更する。
  3. 16行目のPALM_RADIUSの値を0fに変更する。


次に、シェーダーを変える。

  1. 下記のシェーダーをダウンロードする。
    fileCapsuleHandRim.shader
    // ref. http://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html
     
    Shader "Custom/CapsuleHandRim" {
    	Properties {
    		_RimColor("Rim Color", Color) = (1.0, 0.76, 0.0, 1.0)
    		_RimPower("Rim Power", Range(0.01, 8.0)) = 0.32
    	}
     
    	SubShader {
    		Tags { "Queue" = "Transparent" }
     
    		Cull Back
    		Blend One SrcColor
    		ZWrite Off
     
    		CGPROGRAM
    		#pragma surface surf Lambert
     
    		struct Input
    		{
    			float3 viewDir;
    		};
     
    		float4 _RimColor;
    		float _RimPower;
     
    		void surf(Input IN, inout SurfaceOutput o) {
    			half rim = 1.0 - saturate(dot(normalize(IN.viewDir), o.Normal));
    			o.Emission = _RimColor.rgb * pow(rim, _RimPower);
    		}
     
    		ENDCG
    	}
     
    	Fallback "Diffuse"
    }
  2. Rimという名称でMaterialを新規作成し、上記シェーダーを割り当てる。
  3. RimColor(フチの色)とRimPower(フチの光具合)を調整する。
  4. HierarchyのCasuleHand_Lをクリックし、InspectorのCapsuleHandのMaterialに上記Rimを割り当てる。
  5. HierarchyのCasuleHand_Rをクリックし、InspectorのCapsuleHandのMaterialに上記Rimを割り当てる。

2016-05-05はてなブックマーク

[VR]Oculus Rift製品版の設置案 Permalinkはてなブックマーク

Oculus Rift製品版がそろそろ発送されるようだ。

届いたら、こんな感じに本棚から吊り下げる形で設置したい。

ケーブルの余りはリールで引っ張り上げる一方で、ケーブルに負担がかからないように、テグスで本棚とRiftの距離を制限する。

oculus_rift_cv1_cable_management.png


ということで下記を買った。


それとケーブルの長さが心配だから下記を買った。


あとポジショントラッキングセンサー用に下記を買った。


2016-04-02はてなブックマーク

[VR]某社のOrder Historyのステータスを取得して、Gmailで送るスクリプトを書いた Permalinkはてなブックマーク

某社のOrder Historyのステータスを取得して、Gmailで送るスクリプトを書きました。


Raspberry Pi上で動作させようとしたけれど、色々あって失敗。

ということでWindows上で動作するようにしてみました。


定期実行する場合は、あまり短い間隔で動作させるのは止めましょう。向こうのサーバに負荷がかかりますし、無意味です。

基本的に1日に1回程度。せめて数時間以上間隔を空け、かつXX:00でなくなるように分の部分もずらすとベターかと思います。


導入手順は次の通り。


  1. Pythonをインストールする。
  2. コマンドプロンプトで下記を実行する。
    cd C:\Python27\Scripts
    pip install selenium
  3. ChromeDriverのサイトからchromedriver_win32.zipをダウンロードして適当な場所に解凍する。
  4. Googleの二段階認証を有効にしている場合はアプリパスワードを発行する。
  5. filesend_oculus_order_status.pyをダウンロードする。
  6. send_oculus_order_status.pyを開き、下記を設定する。
    設定説明
    CHROMEDRIVER_PATH上記でダウンロードしたchromedriver.exeのファイルパスを指定する
    LOGIN_ADDRESSOculusのサイトのログインアカウントであるメールアドレスを指定する
    LOGIN_PASSWORDOculusのサイトのログインパスワードを指定する
    MAIL_FROMメールの差出人を指定する(認証にも使います)
    MAIL_TOメールの宛先を指定する
    MAIL_PASSWORDメールの認証パスワードを指定する(二段階認証を有効にしている場合は上記で発行したアプリパスワードを指定)
    MAIL_SUBJECTメールの件名を指定する


スクリプトの中身はこんな感じ。

filesend_oculus_order_status.py
# -*- coding: utf-8 -*-
 
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import smtplib
from email.mime.text import MIMEText
 
CHROMEDRIVER_PATH = r"C:\Chromedriver\chromedriver.exe"
LOGIN_ADDRESS = "example@gmail.com"
LOGIN_PASSWORD = "exAm!E"
MAIL_FROM = LOGIN_ADDRESS
MAIL_TO = LOGIN_ADDRESS
MAIL_PASSWORD = "exxamplee"
MAIL_SUBJECT = "Oculus Order Status"
 
def get_oculus_order_status(path, addr, passwd):
    driver = webdriver.Chrome(path)
 
    try:
        driver.get("https://shop.oculus.com/en-us/history-login/")
 
        el_email = WebDriverWait(driver, 100).until(
            EC.presence_of_element_located((By.NAME, "email"))
        )
        el_password = WebDriverWait(driver, 100).until(
            EC.presence_of_element_located((By.NAME, "password"))
        )
        el_login = WebDriverWait(driver, 100).until(
            EC.presence_of_element_located((By.NAME, "login"))
        )
        el_email.send_keys(addr)
        el_password.send_keys(passwd)
        el_login.click()
 
        el_section = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CLASS_NAME, "op-accordion"))
        )
        el_section.click()
 
        el_status = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CLASS_NAME, "op-order-history__order-status"))
        )
        el_numbers = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CLASS_NAME, "op-order-history__order-numbers"))
        )
 
        return el_status.text + "\n" + el_numbers.text
    finally:
        driver.close()
        driver.quit()
 
def send_mail_by_gmail(ml_from, ml_to, passwd, sub, body):
    msg = MIMEText(body)
    msg['Subject'] = sub
    msg['From'] = ml_from
    msg['To'] = ml_to
 
    smtp = smtplib.SMTP("smtp.gmail.com", 587)
    smtp.ehlo()
    smtp.starttls()
    smtp.ehlo()
    smtp.login(ml_from, passwd)
    smtp.sendmail(ml_from, ml_to, msg.as_string())
    smtp.close()
 
if __name__ == '__main__':
    status = get_oculus_order_status(CHROMEDRIVER_PATH, LOGIN_ADDRESS, LOGIN_PASSWORD)
    send_mail_by_gmail(MAIL_FROM, MAIL_TO, MAIL_PASSWORD, MAIL_SUBJECT, status)

2016-03-11はてなブックマーク

[Devel]いらすとやさんでVRっぽいイラストを探してみた Permalinkはてなブックマーク

フリーのイラスト素材集サイトいらすとやさんが最近話題。

ということで、VRに関係しそうなイラストを探してみました。


VRデバイス

head_mount_display.pnggame_vitual_reality.pngar_kakuchou_genjitsu.pngmoney_kinketsu_man.pngseikyuusyo_shock.png

3D映画など

3d_eiga_glass.pngmovie_taikaneiga_4dx_mx4d.png

VRとIPD

ganka_kensa.png6_14.png

VRと身体トラブル

allergy_me_kayui.pngsick_memai.pngkibunwarui_man.pngvirus_oetsu.pngsick_kizetsu.pngjiko_isu_korogeru.pngkorobu_kodomo.png

VRと関わりのある食べ物

food_karaage.pngkaki.png

VRコンテンツ一般

omocha_tsumiki.pngrollercoaster.pngseikimatsu_woman.pngrobot_bukiminotani.png

きゅーこんのVRコンテンツのイメージ

sushi_akami.pnghalloween_pumpkin1.png

桜花一門さんのVRコンテンツの勝手なイメージ

ski_jump.pngskydiving.pngdanro.png

GOROmanさんのVRコンテンツの勝手なイメージ

idol_akusyu.png

野生の男さんのVRコンテンツの勝手なイメージ

hoshizora_nagareboshi.pngfantasy_dragon.png

ゆーじさんのVRコンテンツの勝手なイメージ

fantasy_zombie.png

伊藤周さんのVRコンテンツの勝手なイメージ

quadcopter_drone.png gunkanjima.png

わっふるめーかーさんのVRコンテンツの勝手なイメージ

vacation_cruiser.pngillustrator_pentablet.pngbijyutsu_paint_man.png

手妻師さんこと藤山晃太郎さんのVRコンテンツの勝手なイメージ

keiba.pngburanko_boy2.pngharness_man.png

mekaさんのVRコンテンツの勝手なイメージ

exercise_aerobike.png

栗坂こなべさんのVRコンテンツの勝手なイメージ

cat_mikeneko.png iruka.png

仁志野六八さんのVRコンテンツの勝手なイメージ

senkan.png

VRフレームレート警察

referee_yellowcard.pngnamahage_ao.png

差分 一覧