Extend & Automate
Live2D Cubism
“There's a lot of automation that can happen that isn't a replacement of humans, but of mind-numbing behavior.”
— Stewart Butterfield
PluginSnippet.java
@Override
public float beforeSetParameterValue(final Parameter parameter, float value) {
if ("ParamMouthOpen".equals(parameter.id().value())) {
return value > 1f ? 1f : Math.max(0f, value);
}
return value;
}
public void demo(PluginContext context) {
var model = context.cubism().activeModel().orElseThrow();
var mouth = model.parameters().findById("ParamMouthOpen").orElseThrow();
float next = mouth.getValue() > 0.5f ? 0f : 1f;
mouth.setValue(next);
model.update();
context.logger().info("Turboism value -> " + next);
}