345 lines
No EOL
12 KiB
JavaScript
345 lines
No EOL
12 KiB
JavaScript
//
|
|
// config.js
|
|
//
|
|
// Variables shared by ui and javascript files.
|
|
//
|
|
// Copyright 2019 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
|
|
/* global module */
|
|
|
|
// Variables other variables depend on
|
|
var APP_NAME = "AvatarCustomization101",
|
|
STRING_MATERIAL = "material",
|
|
STRING_BLENDSHAPES = "blendshapes",
|
|
STRING_ANIMATION = "animation",
|
|
STRING_FLOW = "flow",
|
|
STRING_INFO = "info",
|
|
STRING_STATE = "state";
|
|
|
|
// Material preset strings
|
|
var STRING_DEFAULT = "default",
|
|
STRING_GLASS = "glass",
|
|
STRING_CHAINMAIL = "chainmail",
|
|
STRING_DISCO = "disco",
|
|
STRING_RED = "red",
|
|
STRING_TEXTURE = "texture";
|
|
|
|
|
|
// material component names
|
|
var STRING_COLOR = "color",
|
|
STRING_SLIDER = "slider",
|
|
STRING_MAP_ONLY = "mapOnly";
|
|
|
|
// custom flow data
|
|
// utilized in flow.js and dynamic data
|
|
var CUSTOM_FLOW_DATA = {
|
|
"leaf": {
|
|
"active": true,
|
|
"stiffness": 0.7,
|
|
"radius": 0.01,
|
|
"gravity": 0,
|
|
"damping": 0.85,
|
|
"inertia": 0.8,
|
|
"delta": 0.55
|
|
}
|
|
};
|
|
|
|
var CUSTOM_COLLISION_DATA = {
|
|
"HeadTop_End": {
|
|
"type": "sphere",
|
|
"radius": 0.12,
|
|
"offset": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"z": 0
|
|
}
|
|
}
|
|
};
|
|
|
|
var CONFIG = {
|
|
APP_NAME: APP_NAME,
|
|
|
|
// Variables shared by ui and javascript files
|
|
UPDATE_UI: APP_NAME + "_update_ui",
|
|
BUTTON_NAME: "Avatar 101",
|
|
EVENT_BRIDGE_OPEN_MESSAGE: "_eventBridgeOpen",
|
|
|
|
// UI to app events
|
|
EVENT_CHANGE_AVATAR_TO_AVI_AND_SAVE_AVATAR: "changeAvatarToAviAndSaveAvatar",
|
|
EVENT_RESTORE_SAVED_AVATAR: "restoreSavedAvatar",
|
|
EVENT_CHANGE_AVATAR_TO_AVI_WITHOUT_SAVING_AVATAR: "changeAvatarToAviWithoutSavingAvatar",
|
|
EVENT_UPDATE_MATERIAL: "updateMaterial",
|
|
EVENT_UPDATE_BLENDSHAPE: "updateBlendshape",
|
|
EVENT_UPDATE_FLOW: "updateFlow",
|
|
EVENT_UPDATE_ANIMATION: "updateAnimation",
|
|
EVENT_CHANGE_TAB: "changeTab",
|
|
EVENT_UPDATE_AVATAR: "updateAvatar",
|
|
|
|
STRING_BOOKMARK_NAME: "Avatar101 Saved By App",
|
|
|
|
STRING_MATERIAL: STRING_MATERIAL,
|
|
STRING_BLENDSHAPES: STRING_BLENDSHAPES,
|
|
STRING_ANIMATION: STRING_ANIMATION,
|
|
STRING_FLOW: STRING_FLOW,
|
|
STRING_INFO: STRING_INFO,
|
|
STRING_STATE: STRING_STATE,
|
|
|
|
STRING_COLOR: STRING_COLOR,
|
|
STRING_SLIDER: STRING_SLIDER,
|
|
STRING_MAP_ONLY: STRING_MAP_ONLY,
|
|
|
|
FLOW_EVENTS_SUBTYPE: {
|
|
STRING_DEBUG_TOGGLE: "debugToggle",
|
|
STRING_COLLISIONS_TOGGLE: "collisionsToggle",
|
|
STRING_HAIR: "hair",
|
|
STRING_JOINTS: "joints"
|
|
},
|
|
|
|
DATA_FOR_FLOW_APP: {
|
|
CUSTOM_FLOW_DATA: CUSTOM_FLOW_DATA,
|
|
CUSTOM_COLLISION_DATA: CUSTOM_COLLISION_DATA,
|
|
},
|
|
|
|
STATIC_DATA: {
|
|
TAB_LIST: [ STRING_INFO, STRING_MATERIAL, STRING_BLENDSHAPES, STRING_ANIMATION, STRING_FLOW],
|
|
TAB_DATA: {
|
|
INFO: {
|
|
TAB_NAME: STRING_INFO,
|
|
TITLE: STRING_INFO,
|
|
SUBTITLE: "Thank you for downloading the Avatar Customization 101 app.",
|
|
COMPONENT_NAME: "info-tab"
|
|
},
|
|
MATERIAL: {
|
|
TAB_NAME: STRING_MATERIAL, // key for dynamic data
|
|
TITLE: STRING_MATERIAL,
|
|
SUBTITLE: "Change avatars materials for each submesh.",
|
|
COMPONENT_NAME: "material-tab",
|
|
|
|
COMPONENT_DATA: {
|
|
PBR_LIST: [STRING_DEFAULT, STRING_GLASS, STRING_CHAINMAIL, STRING_DISCO],
|
|
SHADELESS_LIST: [STRING_RED, STRING_TEXTURE],
|
|
PROPERTIES_LISTS: {
|
|
shadeless: [
|
|
{
|
|
key: "albedo",
|
|
componentType: STRING_COLOR
|
|
}
|
|
],
|
|
pbr: [
|
|
// color
|
|
{
|
|
key: "albedo",
|
|
componentType: STRING_COLOR
|
|
},
|
|
{
|
|
key: "emissive",
|
|
componentType: STRING_COLOR
|
|
},
|
|
// slider
|
|
{
|
|
key: "roughness",
|
|
componentType: STRING_SLIDER
|
|
},
|
|
{
|
|
key: "metallic",
|
|
componentType: STRING_SLIDER
|
|
},
|
|
{
|
|
key: "scattering",
|
|
componentType: STRING_SLIDER
|
|
},
|
|
{
|
|
key: "opacity",
|
|
componentType: STRING_SLIDER
|
|
},
|
|
// map only
|
|
{
|
|
key: "normalMap",
|
|
componentType: STRING_MAP_ONLY
|
|
},
|
|
{
|
|
key: "occlusionMap",
|
|
componentType: STRING_MAP_ONLY
|
|
}
|
|
],
|
|
selectOne: []
|
|
}
|
|
}
|
|
},
|
|
BLENDSHAPES: {
|
|
TAB_NAME: STRING_BLENDSHAPES,
|
|
TITLE: STRING_BLENDSHAPES,
|
|
SUBTITLE: "Change avatar expressions.",
|
|
COMPONENT_NAME: "blendshapes-tab",
|
|
|
|
COMPONENT_DATA: {
|
|
LIST: ["awe", "default", "angry", "laugh"],
|
|
FACIAL_BLENDSHAPES_OPTIONS: [
|
|
{
|
|
name: "EyeBlink_L",
|
|
min: 0,
|
|
max: 1,
|
|
increment: 0.1
|
|
},
|
|
{
|
|
name: "EyeBlink_R",
|
|
min: 0,
|
|
max: 1,
|
|
increment: 0.1
|
|
},
|
|
{
|
|
name: "BrowsU_L",
|
|
min: 0,
|
|
max: 1,
|
|
increment: 0.1
|
|
},
|
|
{
|
|
name: "BrowsU_R",
|
|
min: 0,
|
|
max: 1,
|
|
increment: 0.1
|
|
},
|
|
{
|
|
name: "JawOpen",
|
|
min: 0,
|
|
max: 5,
|
|
increment: 0.1
|
|
},
|
|
{
|
|
name: "Sneer",
|
|
min: 0,
|
|
max: 1,
|
|
increment: 0.1
|
|
}
|
|
]
|
|
}
|
|
},
|
|
ANIMATION: {
|
|
TAB_NAME: STRING_ANIMATION,
|
|
TITLE: STRING_ANIMATION,
|
|
SUBTITLE: "Change avatars default animations.",
|
|
COMPONENT_NAME: "test2",
|
|
|
|
COMPONENT_DATA: {
|
|
|
|
}
|
|
},
|
|
FLOW: {
|
|
TAB_NAME: STRING_FLOW,
|
|
TITLE: STRING_FLOW,
|
|
SUBTITLE: "Modify flow joints for chain.",
|
|
COMPONENT_NAME: "flow-tab",
|
|
|
|
COMPONENT_DATA: {
|
|
HAIR_FLOW_OPTIONS: [ // "stiffness", "radius", "gravity", "damping"
|
|
{
|
|
name: "radius",
|
|
increment: 0.01,
|
|
min: 0.01,
|
|
max: 0.1
|
|
},
|
|
{
|
|
name: "stiffness",
|
|
increment: 0.05,
|
|
min: 0.0,
|
|
max: 1.0
|
|
},
|
|
{
|
|
name: "gravity",
|
|
increment: 0.0001,
|
|
min: -0.05,
|
|
max: 0.05
|
|
},
|
|
{
|
|
name: "damping",
|
|
increment: 0.05,
|
|
min: 0.0,
|
|
max: 1.0
|
|
},
|
|
// {
|
|
// name: "inertia",
|
|
// increment: 0.05,
|
|
// min: 0.0,
|
|
// max: 1.0
|
|
// },
|
|
// {
|
|
// name: "delta",
|
|
// increment: 0.05,
|
|
// min: 0.0,
|
|
// max: 1.0
|
|
// }
|
|
],
|
|
JOINT_FLOW_OPTIONS: [
|
|
{
|
|
name: "radius",
|
|
min: 0.01,
|
|
max: 0.5,
|
|
increment: 0.01
|
|
},
|
|
// {
|
|
// name: "offset",
|
|
// min: -0.3,
|
|
// max: 0.3,
|
|
// increment: 0.05
|
|
// }
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
INITIAL_DYNAMIC_DATA: {
|
|
state: {
|
|
isAviEnabled: true,
|
|
activeTabName: STRING_INFO
|
|
},
|
|
info: {},
|
|
material: {
|
|
typeSelected: "",
|
|
selectedMaterial: "",
|
|
updatedProperties: {},
|
|
shadeless: {
|
|
albedo: { value: "#FFFFFF", map: null },
|
|
emissive: { value: "#FFFFFF", map: null }
|
|
},
|
|
pbr: {
|
|
albedo: { value: "#FFFFFF", map: null },
|
|
emissive: { value: "#FFFFFF", map: null },
|
|
roughness: { value: 0.5, map: null },
|
|
metallic: { value: 0.5, map: null },
|
|
scattering: { value: 0.5, map: null },
|
|
opacity: { value: 0.5, map: null },
|
|
normalMap: { value: "", map: null },
|
|
occlusionMap: { value: "", map: null }
|
|
}
|
|
},
|
|
blendshapes: {
|
|
selected: "default",
|
|
updatedProperties: {}
|
|
},
|
|
animation: {
|
|
|
|
},
|
|
flow: {
|
|
showDebug: true,
|
|
enableCollisions: true,
|
|
hairFlowOptions: {
|
|
stiffness: CUSTOM_FLOW_DATA.leaf.stiffness,
|
|
radius: CUSTOM_FLOW_DATA.leaf.radius,
|
|
gravity: CUSTOM_FLOW_DATA.leaf.gravity,
|
|
damping: CUSTOM_FLOW_DATA.leaf.damping
|
|
},
|
|
jointFlowOptions: {
|
|
radius: CUSTOM_COLLISION_DATA.HeadTop_End.radius,
|
|
offset: CUSTOM_COLLISION_DATA.HeadTop_End.offset
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
if (module) {
|
|
module.exports = CONFIG;
|
|
} |