Off Campus EH — build skeleton (yaw) 2026-07-01
Off Campus — skeleton mínimo no Effect House (validado)
Projeto EH em ~/Downloads/off-campus-eh/ (mac). Repo kodama1/off-campus-eh.
Estado: SKELETON FUNCIONA ✅
Script mínimo autocontido (Assets/NewScriptComponent.ts, classe NewScriptComponent)
lê o yaw da cabeça ao vivo e atualiza o texto. Preview mostragira a cabeca / A < > B / centro (N) onde N = yaw em graus. Confirma o pipeline:
script anexado + APJS.AlgorithmManager.getResult().getFaceBaseInfo(0).yaw + Text do próprio objeto.
- Sem
@serializeProperty: pega o Text viathis.getSceneObject().getComponent("Text"). - Sem Face Tracker separado — o yaw vem direto do AlgorithmManager.
DESCOBERTA CHAVE: anexar Script Component SEM drag/GUI
O menu Add Component NÃO tem "Script" (só Scene/2D/Post/3D/AR/Face/Pet/Animation/Utility/Audio/Physics/Graph).
"Graph → Empty Component" é para visual scripting, NÃO para Script TS. Não há primitivo de drag no MCP.
Solução determinística = editar os arquivos com o EH FECHADO:
Assets/main.scene— dentro docomponents:da Entity alvo, adicionar:- __class: DynamicComponent name: !<str> "" guid: {a: <uint64>, b: <uint64>} serializedProperty: __class: ScriptSerializedProperty name: !<str> "" guid: {a: <uint64>, b: <uint64>} properties: __class: Map # aqui vão os @serializeProperty (vazio se não houver) enabled: true className: !<str> <GUID-do-asset-do-script> # = guid.a do .ts.extraAssets/main.scene.extra— append um objeto:{"guid":{"a":"<uuid>","b":""}, "objGuid":"Guid(<a>, <b>)", // = guid do DynamicComponent acima "extraType":"UserComponentEditor","name":"<Classe>","rttiType":"<Classe>", "editable":true,"_lazyUpgrateVersion":"0.1.0", "extendedInfo":{"isVisibleInInspector":true,"expanded":true}, "resGuid":"<GUID-do-asset-do-script>"}
- GUID do asset do script = campo
guid.aemAssets/NewScriptComponent.ts.extra
(aqui:f10092f3-cfed-4696-dfb5-6d09661119ab). propertiesmapeia cada @serializeProperty: SceneObject →{localId: N}, Texture →{localId:1, path: <uuid>--<uuid>.png}, array de texturas → lista desses. (ver goalhead main.scene linhas ~769-828).
Operar o EH por terminal (importante)
open -a "Effect House"às vezes NÃO sobe (fica só oparfait_crash_handler).
Lançar destacado funciona:nohup "/Applications/Effect House.app/Contents/MacOS/Effect House" >/tmp/eh_launch.log 2>&1 &- Depois de
kill -9, limpar processos órfãos (pkill -9 -f "Effect House"; pkill -9 -f parfait) antes de relançar. - Log ativo:
~/Library/Application Support/EffectHouse/Logs/orion-*.log(nome tem data antiga mas é o corrente).
Erros "there is not binding ... in js" são benignos. - Cena só persiste via File → Save (menu), Cmd+S é interceptado. Editar arquivos SEMPRE com EH fechado.
- Reabrir projeto: Home → "Open project" → digitar
off-campus-ehno diálogo →effect.ehproj→ Open.
Próximos passos
- Testar virar a cabeça esq/dir + segurar 1s (precisa webcam ao vivo ou celular — presets Idle/Nodding não fazem yaw).
- Expandir do skeleton pro quiz completo (8 perguntas, 9 personagens, card + %):
off-campus-eh.tsjá portado no repo;
montar painéis (question/result) + wiring via o mesmo método de arquivo (properties Map com os localIds).
Relacionado: goalhead/effect-house-build-2026-06-28