about developer kit

Thank you for purchase M30.

M30 does not drive by itself. However we have bundled a developer kit so that everyone who purchased can make themselves additional functions, and sell, distribute and introduce easily.

Do you want to light the headlight? Do you want to play the engine sound? You can do them yourself with the developer kit. Don't you want to drive M30? With the developer kit, you can make that wish much easier than developing everything.

All the purchaser of M30 have the right to sell or distribute their work which includes the kit. It's transferable!

configuration of the kit

developer kit for M30 … object / Mod-Copy-Trans
 ├ m30drivervasepose.bvh … pose for rider seat / Copy-Trans
 ├ m30passengerbasepose.bvh … pose for sidecar seat / Copy-Trans
 ├ m30tandembasepose.bvh … pose for tandem seat / Copy-Trans
 ├ vias10_aux_for_m30.lsl … sub script for developing / Copy-Trans
 └ vias10_core_for_m30.lsl … main script for developing / Copy-Trans

vias10_core_for_m30.lsl and vias10_aux_for_m30.lsl are not actively processing. They are designed to perform specific processing by receiving link messages. Hereinafter, we express these scripts as VIAS1).

try our development sample out

AnalogMatic for M30 is our development in order to show you how VIAS works. After you install it, you can take your friend out with M30. We added 2 scripts and some poses, and associate them with VIAS.

AnalogMatic for M30 … object
 ├ am-eg_for_m30.lsl … physical parameters
 ├ am-io_for_m30.lsl … interface and communications with VIAS
 ├ m30driver-4.bvh
 ├ m30driver-8.bvh
 ├ m30driver-12.bvh
 ├ m30driver-18.bvh
 ├ m30driver4.bvh
 ├ m30driver8.bvh
 ├ m30driver12.bvh
 ├ m30driver18.bvh
 ├ m30drivervasepose.bvh
 ├ m30passengerbasepose.bvh
 ├ m30tandembasepose.bvh
 ├ vias10_aux_for_m30.lsl
 └ vias10_core_for_m30.lsl

See this page and install it.

3rd party showcase

Please tell me when you release your development. We introduce your works here.

development information

Make link both developer kit and M28 by the same procedure as AnalogMatic. After that, add scripts, animation, sound, etc and send link message from the script according to the following API to control M28.

about VIAS

VIAS is the basic script that controls the car state. From now on, all our vehicles will be equipped with VIAS and will be able to control the cars with the same API system.

VIAS can

  • control linkage motion of joints
  • switch the lights ON / OFF
  • run installing process » see this video
  • play / stop engine sound

By separating interfaces and physical engines and standardizing the specifications of car control scripts, the following advantages are generated for third-party developers.

  • can divert engine script once developed
  • can develop scripts without considering difficult parts such as linkage
  • also creators who are not modeler can partly participate in development

Further, as the number of developers who adopt this mechanism increases, the following advantages are created for users.

  • with one ride, they can try different operating methods and different ride comfort
  • only necessary functions can be selected and used according to time or place

VIAS API

All transmission / reception is done with link message.

integer ApiVersion;
 
SendAPICommand(string command, integer value){ // transmission
    llMessageLinked(LINK_ROOT, value, command, "");
}
 
default{
    state_entry(){
        SendAPICommand("VERSION", 0);
    }
 
    link_message(integer sender, integer value, string response, key id){ // reception
        if (response == "VIAS-M30"){
            ApiVersion = value;
        }
        else if (llGetSubString(response, 0, 3) == "VIAS"){
            llSay(0, "[ERROR] does not correspond to this model");
        }
    }
}
API ver. command value 説明
1.0 VERSION Query API version. In response to the inquiry, the following reply will be made.
 response = “VIAS-M30” … To LINK_THIS, assign a value obtained by multiplying value by 10 times and return it. In the case of ver.1.0, value = 10 is returned.
1.0 RESET 0 Discard variables related to vehicle body control held by VIAS and restore the following initial state.
 LEFT = 0
 SPEED = 0
 GEAR = 0
 PARKING = 1
1 Reboot VIAS. With this command, VIAS starts the installation work; moves and rotates each link prim to the prescribed position. After reboot, the following reply will be made.
 response = “SEAT” … To LINK_SET, returns the link number of SEAT. You may use this number as the passengers' sit target.
 response = “INIT” … To LINK_SET, returns the boolean whether succeed installing or not.
1.0 ENGINE 0 Stop engine sound.
1 Play engine sound.
1.0 TEXT 0 Text off.
1 Text on.
1.0 LEFT -200 〜 200 Turn handle left and rotate front wheels. ex) LEFT = -127 means turning right 12.7 degrees.
1.0 SPEED -100 〜 100 Changes “Speed : xx%” on the text and wheels rotate. When SPEED < 0, changes the Gear “R” on the text. VIAS does not have any physical parameters so car would not run with this command.
1.0 GEAR 0 〜 4 Changes “Gear : n” on the text and move shifter.
1.0 LOW 0 〜 1 Move another shifter.
1.0 SUS 0 front suspension movement OFF.
1 front suspension movement ON.
1.0 PARKING 0 Hides “P-Brake : ON” on the text.
1 Shows “P-Brake : ON” on the text.
1.0 LIGHT 0 head light OFF.
1 head light ON.
1.0 BRAKE 0 Brake lamps OFF.
1 Brake lamps ON.
1.0 SHADOW 0 Hides shadow.
1 Shows shadow.

remarks about SEAT

VIAS sends 2 link numbers at once.

integer LinkNumber4Sidecar;
integer LinkNumber4Tandem;
llMessageLinked(LINK_SET, LinkNumber4Sidecar<<8|LinkNumber2Tandem, "SEAT", "");

So divide it in the following way.

link_message(integer sender, integer value, string response, key id){
    if (response == "SEAT"){
        integer LinkNumber4Sidecar = value>>8&255;
        integer LinkNumber4Tandem = value&255;
    }
}

when you release your development

the name

You need not use “anhelo” or “VIAS” in your development name.

poses

If you don't use the poses “m30driverbasepose.bvh”, “m30passengerbasepose.bvh”, and “m30tandembasepose.bvh”, please kill them from the inventory.

permission

Customers have to make link between M30 and your development. So you should release it as modifyable.

remarks on your AD

Customers have to purchase M30 from anhelo when they use your development. So you should add that remarks on your AD. Our main store is here. Please add this LM in your package.

after releasing

Please tell me about

  • SLURL of your shop
  • about your development
  • price
  • whether DEMO available or not
  • your avatar name and your shop name

We will publish about your development through

  • in-world group notice
  • subscriber kiosk system
  • our main store
  • SNS such as twitter, Facebook and so on
1) Vehicles' Interactive Add-on System