リアルとバーチャルの間

気まぐれに書いてます。

【Mac】トラックパッドで中ボタンを押せるアプリ

Mayaを操作していると中ボタン押せないと何もできないって感じになります。
そこで、トラックパッドで中ボタンを押せるようにするアプリを
インストールして解決しましょう!

こちら無料アプリ!
http://blog.boastr.net/

このアプリを入れたら以下のように設定すると
3本指をタップすると中ボタンクリックしたのと同じ意味になります。

非常に簡単で便利なのでマウスとか忘れちゃった時には
こちらの方法を参考にして下さい。

バーテックスからカーブを生成するMEL

ブックマーク的記事

スクリプトダウンロード
Plot Curves - Maya Script

情報元
【Maya】アニメーションされたポリゴンのバーテックスから、カーブを生成する無料MEL『Plot Curves』 | CGトラッキング 世界のCGニュースを集めてみる

Unityでサイン波とか使って音を鳴らしたい!って思う今日この頃

趣味でDJはやるものの、アプリが進化したおかげで適当にやっていても
それっぽくDJが出来てしまうすごくいい時代です。
まあ、テクノロジーまかせというか。。。

最近、相対性理論さんとお仕事する機会も頂き
音楽で新しい事を考えてみるのもいいなあーっと思い始めました。

ということで、勉強をはじめることにしました。
音の鳴るおもちゃ作りたいからお仕事来ないかなあー。


Unityでサイン波とか使って音を鳴らしたい! - Qiita

Oculusをつけている時と外している時の判定をジャイロで判断させてみる

Oculusをつけている時と外している時の判定をとりたいと思うんだけども
デバイスくっつけないで何か判定できないかな?っと思った時にジャイロで判断させようと思います。

ただ、Oculusをそこら辺に置いておいても微妙にジャイロが判定されてしまうので
回転値(0,0,0)で考えると失敗してしまいます。
そこで、Quaternion.Angleを使って角度が0.1よりも動いたのか、それとも動いてないのかでOculusをユーザーがつけているのかどうかを判定する事にしました。

判定するカメラは、OVRCameraControllerの子にあるレフトカメラを使いました。
※サンプルとしては、適当にカウントアップさせて値を超えたら別シーンへ移動としています。

using UnityEngine;
using System.Collections;

public class OculusGyroStatus : MonoBehaviour {
    //セッティング
    private Transform CameraLeft_; 
    //角度
    private Quaternion prevRotation;
    //動いてるのか、止まっているのかを判断する為のカウント
    private float count = 0;
    //スタート時間からの差分をはかる為のフラグ
    private bool flg = false;

    void Start () {
         //OVRCameraControllerの子にあるレフトカメラを参照にする
        CameraLeft_ = transform.FindChild ("CameraLeft");
    }

    void Update () {        
        //現在のレフトカメラと保存している回転角度を測定して何度なのか調べる
        float angle = Quaternion.Angle(CameraLeft_.rotation, prevRotation);

        if (angle < 0.1f)
        {
            if (flg == false)
            {
                count++;
                if (count >=  1000)
                {
                    NextScene();
                }
            }

        } else
        {
            count = 0;
        }
        //カメラの回転を保存する
        prevRotation = CameraLeft_.rotation;
    }

    void NextScene(){
        flg = true;
        Application. LoadLevel("nextscene");
    }
}

ハコスコを拡張してマーカーARアプリでVR体験!

二次元こっちに来ないかな?とか
二次元に行けないかな?とか
テクノロジーでどうやったら解決できるかな?っと考えているんだけども
先日、ハコスコを改造してかぶれるようにしたら色々と問題が解決できる事がわかった!

こちらをご覧下さい。


ハコスコは、iphoneを入れて楽しむクラフト系ヘッドマウントディスプレイです。


この方法ならばOculusの初期機能ではないカメラ機能があるので、iPhoneアプリ開発の知識とiphoneのカメラを使えばVRをもっとすごい領域へ持って行けるのです!!!!!!


改造した部分ですが
ハコスコに、こんな感じでゴムバンドをつけました。


ハコスコにはヘッドフォンの穴もあるし、オキュラスと違ってPCなどにつなぐ必要もないので視覚情報が奪われないのでこのまま自然に歩いたり、本を読んだりする事が出来ます!すごい!


後輩につけてもらいました。
すごくいい笑顔です。


ARマーカーを使って現実世界に初音ミクさんを呼んでみました!


このようにカメラの上に3Dが合成されるのでARとVRが見事に融合しました!
個人的には、完璧に近い2.5次元だと思った。たのしー


そして、気がついてしまったのですが
前からオキュラスでカフェをやりたいと思っていたのですが
CSTさんの「初音ミクとカップルストローできるアプリ作ってみた」を現実世界へ
呼ぶ事ができるじゃないか!!!!!
初音ミクとカップルストローできるアプリ作ってみた ‐ ニコニコ動画:GINZA

これは大変だ!!!!

っと思ったのでVRカフェを作り始めることにしました。
出来上がるの楽しみだーw

一般的なマーカーを使ったARにハコスコを改良したものでAR×VRという新体験コン­テンツをつくりました!クラフト系のヘッドマウントディスプレイは、カメラ機能が使え­る、PCにつなぐ必要がないからコードレス、ハンドフリーになるという最大のアドバン­テージがありますね!

Unity無料版でもOculus Riftの開発ができるようにする事を発表されました。

なんと言う、素晴らしい対応なのでしょうか。
今まで、無料版では何かと開発に困難がありましたが
Unity無料版でも制作できるように現在開発中だそうです。

開発サイトから無料公開予定なので無料版ユーザーは
もうしばらく我慢ですね!

Expanded Oculus Rift Support in Unit
http://blogs.unity3d.com/2014/09/20/expanded-oculus-rift-support-in-unity/

16Labさんが「指輪型ウェアラブル コンピューティング デバイス」の開発を進めているそうです。

合同会社 16Labの代表 木島さんが「指輪型ウェアラブルコンピューティングデバイス」の開発を進められているそうです。
これからの暮らしを変える、新しいリング!!!!!!

サイトもオシャレですし、これはすごく期待ですね。
次の発表が楽しみです。

リンクはこちら
16Lab

http://16lab.net/press/16Lab_140917_JP.pdf

GoPro6台で360度撮影 動画とネット技術で新世界

360度ぐりぐりと回してみる事のできる動画です。
サイトはこちら

クリックしながらマウスを動かすと360度色んな確度から見る事ができます。
WEBGLが早くiPhoneに実装される事が待ち遠しいですよね。

さて、こんな動画をどうやって作ったのかっという話ですが

海外の”360HEROS”から購入する所から始まります。
私が購入したのはGoProが6台つけられるタイプのものです。

この取り付けるやつですが、7万円くらいして結構高い><
3Dプリンターでも作れちゃう感じなので案件が落ち着いたら自分で作って
Gitとかで無料配布しようかと思うので作ったらまた告知しますね。

購入すると1週間くらいしたら送られてきます。

それで、コイツにGoProを取り付けようとするのですが
固いのなんの。 ちょ、これあんまりグイグイ曲げると折れるんじゃないの?って
思うくらいハラハラしますが、とりあえずけっこう曲げちゃっても大丈夫なのでご安心を!

これでとりあえずは、ぽちぽち録画ボタンさえ押せば6方向から撮影できるのですが
GoProのwifi設定を使って遠隔のリモコンと6台のGoProを通信させる事をお勧めします。

それで、そんな感じで録画した映像を3DCGの球体にマッピングできるように結合する必要があるのですが
auto pano videoというツールを使うのがオススメです。

こいつは、GoProから動画を取り込んでSynchronizationボタンを押してしまえば
あっという間に出来上がってしまいます。
厳密に動画の始まりを合わせる方法として、カチンコなどで音の始まりを押させておいてしまい
Synchronoization内にある音同期のボタンを押せばさらに良いと思います。

Unityカンファレンスで登壇させて頂いた時にも360度の撮影から実装までを話しています。
http://japan.unity3d.com/events/usc2014/pdf/1400_ROOM1_Kayac.pdf

カメラ撮影から実装までさせて頂いた案件

明治エッセルスーパーカップ20周年プロモーション|受託実績|面白法人カヤック



そうして書き出された動画を使ってブラウザへ表示されているのです。
いやー。ほんといい時代なったものですね。

ソースは以下みたいな感じ。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div id="container"></div>

<script src="./js/Detector.js"></script>
<script src="./js/RequestAnimationFrame.js"></script>
<script src="./js/threejs/three_r65.js"></script>
<script src="./js/threejs/TrackballControls.js"></script>
<!--<script src="./js/threejs/OrbitControls.js"></script>-->
<script type="text/javascript">

if (Detector.webgl)
{

    var MODEL_DATA = './screen.js';

    var renderer,
        scene,
        light,
        camera,
        geometry,
        material,
        mesh,
        controls;

    var video,
        videoImage,
        videoImageContext,
        videoTexture;

    var loader = new THREE.JSONLoader();

    loader.load(MODEL_DATA, function (geometry, materials)
    {
        var material = new THREE.MeshBasicMaterial({map: videoTexture, overdraw: true, side:THREE.DoubleSide});
        mesh = new THREE.Mesh(geometry, material);
        mesh.scale.set(100, 100, 100);
        scene.add(mesh);

        draw();
    });

    function init()
    {
        var WIDTH = 1200;
        var HEIGHT = 600;

        renderer = new THREE.WebGLRenderer();
        renderer.setSize(WIDTH, HEIGHT);
        renderer.setClearColor(new THREE.Color(0xFFFFFF));
        document.getElementById('container').appendChild(renderer.domElement);

        scene = new THREE.Scene();

        camera = new THREE.PerspectiveCamera(45, WIDTH/HEIGHT, 1, 1000);
        camera.position.set(0, 0, 80);
        scene.add(camera);

        light = new THREE.PointLight( 0xFFFFFF );
        light.position.set(10, 50, 130);
        scene.add(light);

        controls = new THREE.TrackballControls(camera, renderer.domElement);

        // video
        video = document.createElement('video');
        video.src = 'low-movie.mp4';
        video.load();
        video.play();

        videoImage = document.createElement('canvas');
        videoImage.width = 1024;
        videoImage.height = 512;

        videoImageContext = videoImage.getContext('2d');
        videoImageContext.fillStyle = '#000000';
        videoImageContext.fillRect(0, 0, videoImage.width, videoImage.height);

        videoTexture = new THREE.Texture(videoImage);
        videoTexture.minFilter = THREE.LinearFilter;
        videoTexture.magFilter = THREE.LinearFilter;
    }

    function draw()
    {
        if (video.readyState === video.HAVE_ENOUGH_DATA) {
            videoImageContext.drawImage(video, 0, 0);
            if (videoTexture) {
                videoTexture.needsUpdate = true;
            }
        }

        controls.update();
        renderer.render(scene, camera);
        requestAnimationFrame(draw);
    }


    init();

}
</script>

</body>
</html>

unite2014で登壇したすべての資料が公開されました!

先日開催された開発ソフトunityの公式カンファレンスイベントunite japan
私もそこで登壇させて頂いたのですが(ありがたいことです)

そこで発表された登壇者のPDFファイル(画面に映っていた資料)が公開されました。
ダウンロードも可能ですので、興味がある方は是非是非見てみてください。

公開先はこちらから

アニメ「ピンポン」でカヤックの名前が!!!!

アニメ「ピンポン」のプロモーションにご協力させて頂いたのですが、エンドロールになんと会社の名前を入れて頂きました!
 
これは、なんともうれしい事です。
 
f:id:amano-kiyoyuki:20140411094811j:plain
 
 
アニメも素晴らしい出来上がりでした。
クリエイター、ファン、両面として
全力で応援していきます!
 

VR卓球ピンポン THE DREAM MATCH のプレイ動画(アニメジャパン風景)

ピンポン THE DREAM MATCH

松本大洋先生の「マンガ」を、湯浅政明監督が「アニメーション」させる、
フジテレビ・ノイタミナ放送のアニメ『ピンポン』。
そのアニメの世界を実際に体感できるVRコンテンツを制作しました。

今回制作した「ピンポン THE DREAM MATCH」は、
アニメ「ピンポン」のキャラクターと卓球の試合ができる
VR卓球ゲームです。

iPhoneが装着された卓球ラケットを振る事で
ディスプレイに映るアニメキャラクターと対戦することができます。

球の軌道を、卓球台にプロジェクションして、ラリーを再現しました。

2014年03月22日〜23日に開催された『AnimeJapan 2014』で展示。
展示会場には行列が絶えることなく、
多くの来場者に楽しんでいただくことができました。

ピンポン THE DREAM MATCH つくりました!

松本大洋先生の「マンガ」を、湯浅政明監督が「アニメーション」させる、 フジテレビ・ノイタミナ放送のアニメ『ピンポン』。
そのアニメの世界を実際に体感できるVRコンテンツを制作しました。 今回制作した「ピンポン THE DREAM MATCH」は、 アニメ「ピンポン」のキャラクターと卓球の試合ができる VR卓球ゲームです。
 
iPhoneが装着された卓球ラケットを振る事で ディスプレイに映るアニメキャラクターと対戦することができます。 球の軌道を、卓球台にプロジェクションして、ラリーを再現しました。

HaKU MV制作しました。

HaKU the day
こちらのPV制作に関わりました。
 
アスキーアートを歌詞で構成してPVを作っています。英字だけのアスキーアートは色んなソフトウェアで簡単に作れちゃうけど、漢字やひらがなを好きなようにってなるとないもんですね。
 
ということで、弊社のプログラマーが作ってしまいました。
日本語を入れる場所もCSVで指定できるようになっているので
なかなかの出来だと思います。

 

畳と音楽と映像

先週末、鎌倉にある面白法人カヤックのシェアオフィスで行われた畳と音楽のイベント。

こちらでVJやってきました。

 

ガラスにアミッドスクリーンを貼り付けて空中に浮いているようなモーショングラフィックを演出。

音声のデータを複数のPCへ飛ばしてインタラクティブに映像をコントロールしています。

quartz composerやmaya、after effectsで制作した素材をVJソフトでミックスしています。