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

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

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

2aaeb32c767f6a34745f06933c49e02d
初心者にオススメのVJソフトを厳選して紹介します。
ここで紹介するVJソフトは、初心者でも操作が簡単で使いやすく、何万人規模の巨大なフェスでも使われている代表的なVJソフトウェアです。これらのソフトは有名VJの間で支持されており、分かりやすいのでどれもオススメです。

そもそもVJとは何か

VJBooth
VJとはビデオジョッキーの略。簡単に言えばDJの映像版
クラブやコンサート、ファッションショーなどで映像を演出する人です。
やり方は人により様々で、その場の雰囲気に合わせて準備された映像を操作したり、即興で映像演出したりします。
ノートパソコンとソフトウェアの進化によりVJは大きく発展してきました。最近では昼間の明るい野外でもLEDスクリーンによって映像が投影できるので、VJの活躍の場は広がってきています。

VJ機材の準備

そもそもVJをやるには何を用意して、どう準備すればいいのか解説します。

VJをやるにために用意する機材はプロジェクターとパソコンです。
パソコンとプロジェクターをHDMIでつなぎます。これで準備完了です。
VJ機材
VJブースは狭いです。ノートPCがちょうど置けるくらいの所がほとんど、だいたい40cm四方ぐらいでしょうか。機材はそこに収まるようコンパクトにしましょう。初心者によくある間違いはデカい機材を持ち込んでDJブースにはみ出してしまうことです。他のスタッフからすごく嫌がられるのでやめましょう。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

VDMX5



https://vidvox.net/

何と言っても定番、初心者にはVDMX5を一番おすすめします。特徴は初心者にも一番取っ付きやすくVJの基本を理解しやすい、それでいて第一線のVJに使える高機能です。多彩で豊富な機能と扱いやすい操作インターフェースでとても分かりやすく、初心者でもすぐに使い方を覚えられます。
プロジェクションマッピングも可能です。

主な特徴
  • 設定自在な外部フルスクリーン機能
  • ほぼ全ての映像フォーマット(Quicktime, Mpeg2, Mpeg4, Hap, Hap-Q, QC, Flash*ActionScript3対応)に対応
  • 映像素材のインポートやハードディスク内の素材管理が簡単
  • 変幻自在、無限通りの操作インターフェース
  • カスタマイズ可能なパネルレイアウト
  • アサイン可能な150種類以上の映像エフェクト
  • MIDIアサイン可能
  • OSCプロトコル対応
  • CoreAudio / ASIOの入出力に対応
  • VST / Rewire 対応
  • 音声トラック付きファイルも利用可能

Resolume Avenue

 

http://resolume.com/

今、最も人気のあるVJソフトです。
EDMなどセットリストが決まっているVJなどに一番向いています。
ULTRAなど有名DJのプレイでよくVJが使ってるのがこちらです。
姉妹品のResolume Arenaならプロジェクションマッピングも出来ます。

主な特徴
  • 設定自在な外部フルスクリーン機能
  • 映像素材のインポートやハードディスク内の素材管理が簡単
  • MIDIアサイン可能
  • OSCプロトコル対応
  • CoreAudio / ASIOの入出力に対応
  • VST / Rewire 対応
  • 音声トラック付きファイルも利用可能

Modul8

 

http://www.modul8.ch/

モジュールと呼ばれるソフトウェア部品を追加することで、機能を拡張できます。
モジュールはPythonで自作することができ、非常に拡張性が高いソフトウェア。

主な特徴
  • 設定自在な外部フルスクリーン機能
  • ほぼ全ての映像フォーマット(Quicktime, Mpeg2, Mpeg4, Hap, Hap-Q, QC, Flash*ActionScript3対応)に対応
  • 映像素材のインポートやハードディスク内の素材管理が簡単
  • 変幻自在、無限通りの操作インターフェース
  • カスタマイズ可能なパネルレイアウト
  • アサイン可能な150種類以上の映像エフェクト
  • MIDIアサイン可能
  • OSCプロトコル対応
  • CoreAudio / ASIOの入出力に対応
  • VST / Rewire 対応
  • 音声トラック付きファイルも利用可能

CoGe

 

http://imimot.com/cogevj/

QCで構成されたセミモジュラー形式のソフトウェア。QCを勉強して自在にカスタマイズできる。

主な特徴
  • 設定自在な外部フルスクリーン機能
  • ほぼ全ての映像フォーマット(Quicktime, Mpeg2, Mpeg4, Hap, Hap-Q, QC, Flash*ActionScript3対応)に対応
  • 映像素材のインポートやハードディスク内の素材管理が簡単
  • 変幻自在、無限通りの操作インターフェース
  • カスタマイズ可能なパネルレイアウト
  • MIDIアサイン可能
  • OSCプロトコル対応
  • CoreAudio / ASIOの入出力に対応
  • VST / Rewire 対応
  • 音声トラック付きファイルも利用可能

Processing


https://processing.org/
電子アートとビジュアルデザインのためのプログラミング言語であり統合開発環境である。VJなどアーティストによるコンテンツ制作作業に適しており。視覚的なフィードバックが即座に得られ電子スケッチブックの基盤としても利用できる。Javaを単純化しグラフィック機能に特化した言語といえる。オープンソースプロジェクトである。


openFrameworks




http://openframeworks.cc/
最先端の技術を簡単に扱えるようにした創造的なコーディングのためのオープンソースツールキットです。
2Dや3Dのグラフィック,動画やアニメーション、音声など様々なメディアを簡単に非常に高速に処理して扱うことが可能なためメディアアートやインタラクティブなVJで活発に活用されています。



Pure Data




http://puredatajapan.info/
音声、ビデオ、映像をリアルタイム処理するためのグラフィカルなプログラミング環境です。多くの有志のエンジニアによってメンテナンスや拡張がなされています。フリーソフトです。

Pure Data -チュートリアル&リファレンス-
美山千香士
ワークスコーポレーション
2013-02-04

(fluxus)


http://www.pawfal.org/fluxus/

たった数行の文字を打ち込むだけで、自動的に変化する映像をリアルタイムに生成する今までにない画期的なVJソフト。

2V-P

14
公式サイト: http://www.2v-p.tv/

ISADORA


https://troikatronix.com/

Glypheo

syphon
公式サイト: http://glypheo.com/

Cinder

index
Cinderがすごい話 - Qiita
https://libcinder.org/

Millumin

millumin-video-mapping-software

Millumin :: create audiovisual and interactive shows

MAX


https://www.mi7.co.jp/products/cycling74/max/

Plask

57

http://www.plask.org/

Vuo


https://vuo.org/

PixelConduit

screen800x500
http://pixelconduit.com/

Lumen


Lumen - Analog-Style Video Synth

TouchDesigner

sunippets01
http://derivative.ca/

Magic Music Visuals

Magic Music VisualsはVJと音楽ビジュアライザー作成のためのソフト

Music Visualizer, VJ Software & Beyond: Magic Music Visuals

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();
}

↑このページのトップヘ