初心者VJ講座 国産 無料VJアプリEasyVJ

VJ(ビデオジョッキー)に関することをVJ初心者や予備知識ゼロの方にも分かりやすく丁寧に解説します。VJアプリをフリーで公開しています。 扱いやすいインターフェイスのオリジナルVJアプリ EasyVJも公開してます。

無料で使える新しいVJアプリを公開しました。詳しくは、こちらの記事をご覧下さい。

MadMapper

MadMapper - the Projection Mapping software. create 3d projection mapping and LED Light Mapping
MadMapperは世界最大シェアを誇るプロジェクションマッピングソフトで使いやすい洗練されたUIである。多くの映像のプロが愛用するプロ向けソフトだが、アマチュアでも分かりやすく使いやすい、一番おすすめのソフト。

MAPIO 2

Visution - MAPIO 2
マッピングに特化したソフト。他のソフトと比べると機能は少々劣るが、プロジェクションマッピング制作に必要な機能は全てそろっている。価格も安く抑えられていて他ソフトに比べると格安の値段。

Millumin

Millumin :: create audiovisual and interactive shows
公式サイトにとても丁寧なチュートリアルやヘルプがあるので使い方の習得が非常に容易。

Resolume Arena

Resolume VJ Software & Media Server - Resolume VJ Software
VJとプロジェクションマッピングソフトが一体になったソフト、映像のミキシングやライブパフォーマンスを交えたリアルタイムでのパフォーマンスを行える。

08
いまどきVJはプログラミングぐらいできないと、かなり恥ずかしいということでopenFrameworksに挑戦しました。なかなかいい感じにできました。

参考
openFrameworksでカメラの映像を3Dにする - aa develop

初心者にも一番おすすめなVJソフトのVDMX5
openFrameworks

まずプロジェクトは、Add onのofxSyphonを追加して生成します。
astellato/ofxSyphon: An OF add-on for using the Syphon framework

方法はこちらをご覧ください。
プロジェクトにアドオンを追加する方法 | openFrameworks

ofApp.h
#include "ofMain.h"
#include "ofxSyphon.h"

class ofApp : public ofBaseApp{

	public:
		void setup();
		void update();
		void draw();
    ofxSyphonServer output;

		void keyPressed(int key);
		void keyReleased(int key);
		void mouseMoved(int x, int y );
		void mouseDragged(int x, int y, int button);
		void mousePressed(int x, int y, int button);
		void mouseReleased(int x, int y, int button);
		void mouseEntered(int x, int y);
		void mouseExited(int x, int y);
		void windowResized(int w, int h);
		void dragEvent(ofDragInfo dragInfo);
		void gotMessage(ofMessage msg);

    ofEasyCam cam;
    ofVideoGrabber videoGrabber;
    ofMesh mesh;
    float xInterval, yInterval;
};

ofApp.cpp
#include "ofApp.h"

//--------------------------------------------------------------
void ofApp::setup(){
    ofBackground(0);

    ofSetFrameRate(30);
    output.setName("Main");

    ofEnableDepthTest();
    ofEnableBlendMode(OF_BLENDMODE_ADD);
    cam.setDistance(400);

    videoGrabber.setup(80, 60);
    xInterval = float(ofGetWidth()) / videoGrabber.getWidth();
    yInterval = float(ofGetHeight()) / videoGrabber.getHeight();
    
    ofEnableDepthTest();
    ofEnableSmoothing();
    mesh.setMode(OF_PRIMITIVE_TRIANGLES);
    mesh.enableColors();
    mesh.enableIndices();
}

//--------------------------------------------------------------
void ofApp::update(){
    videoGrabber.update();
    
    if(videoGrabber.isFrameNew()){
        unsigned char * pixels = videoGrabber.getPixels().getData();

        mesh.clearVertices();
        mesh.clearColors();
        mesh.clearIndices();
        for(int h = 0; h < videoGrabber.getHeight(); h++){
            for(int w = 0; w < videoGrabber.getWidth(); w++){
                float r = (float)pixels[int(h * videoGrabber.getWidth() + w) * 3] / 256.0;
                float g = (float)pixels[int(h * videoGrabber.getWidth() + w) * 3 + 1] / 256.0;
                float b = (float)pixels[int(h * videoGrabber.getWidth() + w) * 3 + 2] / 256.0;
                ofFloatColor color = ofFloatColor(r, g, b);
                float z = ofMap(color.getBrightness(), 0, 1, 300, -300);
                mesh.addColor(color);
                //mesh.addVertex(ofVec3f(w * xInterval, h * yInterval, z));
                mesh.addVertex(ofVec3f((w - videoGrabber.getWidth()/2) * xInterval, (h - videoGrabber.getHeight()/2) * yInterval, z));
            }
        }
        for(int h = 0; h < videoGrabber.getHeight() - 1; h++){
            for(int w = 0; w < videoGrabber.getWidth() - 1; w++){
                mesh.addIndex(h * videoGrabber.getWidth() + w);
                mesh.addIndex(h * videoGrabber.getWidth() + w + 1);
                mesh.addIndex((h + 1) * videoGrabber.getWidth() + w + 1);
                mesh.addIndex(h * videoGrabber.getWidth() + w);
                mesh.addIndex((h + 1) * videoGrabber.getWidth() + w);
                mesh.addIndex((h + 1) * videoGrabber.getWidth() + w + 1);
            }
        }
    }
}

//--------------------------------------------------------------
void ofApp::draw(){
    cam.begin();
    ofScale(1, -1, 1);
    //mesh.draw();
    mesh.drawWireframe();
    cam.end();

    output.publishScreen();
}

目次
  • ブースは狭いことを心得よ
  • 映像端子について
  • 映像が映らないときは
  • マルチスクリーンをするVJ機材
  • マトリックススイッチャーとは
  • HDMIケーブルを延長するVJ機材
  • VJのコントローラー

ブースは狭いことを心得よ

こちらはVJブースの写真です。
IMG_1548
こんな感じの丸テーブルをVJブースとしています。どこのクラブにもこんなテーブルがありますね。
at-63_img01
直径60cmです。機材はこの中に収まるようにしましょう。
ブースは狭いです。なので大きな機材を持って行くと、他の出演者さんに迷惑がかかります。コンパクトな機材を心がけましょう。
よく初心者VJにある痛い行動は、アホみたいにでかい機材をたくさん持ってきて狭いDJブースのスペースを占拠してしまうことです。そんで俺機材自慢を延々と話す。とりあえずは相づちを打ってはくれますが、本心では聞いてません。そんなことどうでもいいですね。お客にとってもスタッフや主催者にとってもVJで重要なのは映像で、機材なんてどうでもいいのです。
ベテランでも機材を並べてイキってる勘違い系VJもいますが誰も見てません。邪魔で傍迷惑なだけです。嫌がられるのでやめましょう。

映像端子と機材のつなぎ方について

パソコンとプロジェクターはHDMIでつなぎます。
VJ機材
パソコンのHDMI端子を確認しましょう。
1_px450


もしパソコンにHDMI端子がないときは、アダプターでHDMIに変換してTVやプロジェクターにつなぎます。
img11
Mini DisplayPort / ThunderboltをHDMIに変換するアダプタ。(Mini DisplayPortでもThunderboltでも同じアダプターが使えます。)
Mini DisplayPortとThunderboltの端子
414Oh9X88CL

USB Type-CをHDMIに変換するアダプタ

USB Type-Cのケーブルと端子
150312_usbtypec1
プロジェクターは明るさが3000lm以上あり解像度が720p以上あるものが良いです。
例えばこのプロジェクターです。

映像が映らないときは

VJの現場ではトラブルは付きもの、しかし意外と基本的なことが原因であったり。
まずは基本をしっかり押さえて、現場で慌てないようにしましょう。


まずプロジェクターの入力切替を確認します。
プロジェクターなどには入力端子が複数あるので、ケーブルを挿しているHDMIになっているかをチェックします。なっていなければ入力選択ボタンを押して切り替えましょう。

ケーブルが断線している場合があるので、別のケーブルを試してみましょう。

なんらかの原因でパソコン側がうまく接続を認識できていない可能性もあります。ケーブルを抜き差しして再認識させることを試みましょう。

それでも映らなければ、プロジェクターとパソコンの電源を一度落としてから、ケーブルを挿しなおし再び電源を入れてみましょう。

マルチスクリーンをするVJ機材

011
1つのVJパソコンから複数のTVやプロジェクターに映像を映すには、HDMI分配器という機材を使います。

メーカーのページ
http://www2.elecom.co.jp/products/VSP-HD14BK.html

マトリックススイッチャーとは

たくさんのプロジェクターや映像ディスプレイを使った演出もあります。
例えば、6つのプロジェクターを横一面につなげて、見たこともないような横長の映像を出したり、4×4に積み上げた16個の映像ディスプレイを自由に制御したり、今までは大きな企業イベントやビッグアーティストのコンサートでしか見ることのなかった演出を比較的小さなイベントでも行うことができるようになってきました。
511-201
マルチスクリーンはそれだけで珍しく他では見たことのない演出を行うことができます。また、視覚に収まりきらないほどの横長のスクリーンを作ったり、360度すべてを映像で囲ってしまえば、それだけで大迫力の映像演出を行うことも可能です。
dvax-84
複数のプロジェクターやTVの画面を自由自在に切り替えるにはマトリックススイッチャーという機材(上の写真)を使います。マトリックススイッチャーはIMAGENICS社製のものが高性能で一番よく使われています。
SL-82A | IMAGENICS

ほかにもこのようなメーカーがあります。
4K ビデオマトリクス・スイッチャー HDMI - Black Box
XTP CrossPointマトリックススイッチャー | Extron
株式会社アイ・ディ・ケイ|IDK

HDMIケーブルを延長するVJ機材

160421_Micro-Converter_top
HDMIケーブルをそのまま100m延長するのは無理なので、必要な場合はHDMIケーブル延長機を使います。よく使われる代表的な製品はBlackmagic DesignのMicro Converterです。この機材を使うとFull HDの映像を無劣化で最大100m延長することができます。

メーカーのページ
https://www.blackmagicdesign.com/jp/products/microconverters

VJのコントローラー

先ほども書きましたがVJブースは狭いので、そのような場所でも取り回しやすいコンパクトな機材が重宝します。例えばnanoKONTROLです。非常にコンパクトかつその使い勝手の良さからVJのコントローラーとして、プロからアマまで一番よく使われているスタンダードとなっています。

メーカーのページ
http://www.korg.com/jp/products/computergear/nanokontrol2/

他にTouch OSCもすごく人気があります。
4c4fe283
TouchOSC メーカーのホームページ
https://hexler.net/software/touchosc

↑このページのトップヘ