Aarhus University Seal / Aarhus Universitets segl

Teknologi: MaxMSP -> Unity

Jeg har idag arbejdet hårdt i DDLab’et, med henblik på at få lavet en kobling imellem MaxMSP og Unity. Dette er selvfølgelig noget som gerne skal komme resten af vores brugere til gode, så her følger kildekoden til scriptet i Unity, såvel som til patchen i Max!

Unity – Skal gemmes som et javascript i Unity, og derefter blot appliceres på et tomt gameobject:

#pragma strict

import System;
import System.Text;
import System.Net;
import System.Net.Sockets;
import System.Threading;

private var recieveObj : UDPReceive;
private var receiveThread : Thread;
private var vector : Vector3;

function Start() {
    receiveThread = new Thread(new ThreadStart(ReceiveData));
    receiveThread.IsBackground = true;
    receiveThread.Start();
}

function ReceiveData() {
  var client = new UdpClient(3333);
  while (true) {
    var anyIP : IPEndPoint = new IPEndPoint(IPAddress.Any, 0);
    var data : byte[] = client.Receive(anyIP);

    //Denne variabel bliver lig den fra MaxMsp, og skal derefter parses ud i dens bestandele.
    var text : String = Encoding.ASCII.GetString(data);
    Debug.Log(text);

    //Her skabes et array hvor hvert index indeholder en værdi / streng
    var arr : String[] = text.Split("*"[0]);

    //Dette kan herefter parses om til fx. en Vector som følgende: i dette tilfælde omregner jeg en heltals værdi, men der kan også bruges parseFloat til decimaler.
    vector = Vector3(parseInt(arr[0]), parseInt(arr[1]), parseInt(arr[2]));
    Debug.Log(vector);
  }  
}

function Update() {
  // Gør noget med dataen  
}

MaxMSP - Dette skal blot kopieres, og derefter indsættes i Max ved at vælge “File -> New From Clipboard

----------begin_max5_patcher----------
1224.3ocyZF0SiaDDG+4jOEirTeAEn1qsSbtm5Ug5SmTQEgT60VcZS7DiI1q
srWmB8z8w4No94fuX2r6ZCoPBwDhsBQjfWudYle6+Y1YW3yCGXMK6VrzBdG7
mvfAed3fA5lTMLn95AVo7ammvK0cyZdVZJJjViL2Sh2J0s+q+7kuChgPTJQP
Fmr39ukDhvrhpHr.tAifqwDIOYDPOdc2VxEPIORhhRXYlXEVHwBrT83.WDVf
PHWxk2kiEifx6+ZYVJHwkkRHKhFh4wob0PdViwjDKv4YUBsEMttwbtb90whn
OUfykFO02kcl8HvgY9v2V8Qvzyrg+t9gVjIjkw+Kp5uipWllEUowhDTpQgyi
MlUIaZsoqwgZrjM6lSYtVqMrBdpdXsdeQLOwRciuLbn5sQuwof2u.tThKVPT
8hrpjRhymBme9G3yNKb4FYDa6LJPwDeOMfbzW350Y.xoe.z4ZUGIfvzbLAHc
YBeEJ05MsPU.7E.894W8gS+MdXbFonqDwx6HPpjsJAq.S0OQN8aizpFc5hrh
TZ3nOzRVPoTWbKjbW3Y6E30HEbY9cK3cF2Of+B9xkDdlgkKwP5G9QX08eqHL
l9wRt5QzSA2+ehWKr7lnIDy.JG+wcLuX8CutDEgOxKAjQoFgqN+BH+9uBpF3
hn3UBDhyANo+HknBjRHOqPtQF5tcF5F3pnlGKXMF5EzULb5gEgojyyivmgP2
wmvbNwyq4FFiRsVhwqsrdv81.SXDL7IkTfNAXfQc8ZQBaiHw44HYRek9SPRl
TTVjojVRLUky55UTRqrEThQkjqTo7Jgx3HAOgtVEWdkJC3qUUQAlD.cbmnQm
WP2Jp76GB9K2fEBhJoXRBlVTkpJDorZVoLVVQktntSHPqnbxqNQliIUuq6Zk
jzgIxrOr.Sf+CMrOiWEXDdaN7WzWkvO0.JRpcxOXu8.yQO461Dn5ZRdEn4Fy
caby60vM+myM2fCL2pRmgEaEEwJMHXMiR2+hTndYPmIlp1LPvd2hmbdA4BTQ
2eBE7YI35pkV.H1FBD8ONAjoD1iA.4cTBH2w1GK.h0KolpByUq0Q9BsBE8xQ
k68gMps8LMMkI40ZDsmqncfyPKyhhRvWTmzh7r0qmydty+FEBanpHuoGvoaS
UOrsupyNiPZHvXSDRvdM825RB8lzWkICLG3sVlrsopkttNYuCbtyYURYl3MK
IX19aInXOE9rCnvOmOeIXqdseSwtS8z9n4HyFOduj8ts00c6oCj3iuPhdOey
wB5V63caddlc+3w+g0KMGaBbqOVzocqG6Lse73e+k7358YYli6bO9.uqAsIr
egyM6TvLUaN1L06aNkkcqSY0XMMSFpaz2tVcM9GXWy8Hv0ZpN+.6Zrc4Z5wW
eFFO4uQj1FUs++82xrph4MdT8IaAOZkgHs+eAWFSK59XeTU5tVmtNNLDEq6G
gwkpJJ01s8FAeaMG0122o8L43ybb5EyQUd0NMmmXyco8nNKgcaOTEC.qerGu
1ZO8y7kZmxsyd5m4KZCa61d75uvKu1j8wi0e1SaludRPXmZOsI4re+kMbbaw
S+Dd41F7zeyVsQ73uuhYyB8777UXQY8XpsDpDlaxJd3+mBKpLCyk5Qzp.WE2
ze+gpQ6KC+Nf2ktv4
-----------end_max5_patcher-----------