Text Render

AI와 함께 읽기
전체 문서 한 파일로 (llms-full.txt)
AppTextRender #Generator #Node
Text Render

문자열 하나를 배경 투명 RenderTexture에 그려 냅니다. Generator 카테고리의 일반 노드로서, 노드 추가 메뉴에 그대로 나옵니다(이전에는 Apps SDK의 저레이어 노드로 취급되어 기본적으로는 숨겨져 있었지만, 현재는 ‘Show App SDK modules’ 설정과 관계없이 표시됩니다. 노드 id가 AppTextRender 그대로인 것은 그 흔적이며, 저장된 프로젝트는 그대로 열 수 있습니다).

출력 해상도는 생성 시에 고정되며, 기본값은 글로벌 해상도입니다. 노드 상단의 라벨에 Text 1920x1080처럼 현재의 해상도가 나옵니다. 렌더링은 파라미터가 바뀌었을 때만 1회 이루어지므로, 값이 움직이지 않으면 GPU 부하가 걸리지 않습니다.

본문과 폰트

  • 본문 — 노드의 텍스트 칸에 직접 적거나, Text 포트에 문자열을 흘려 넣습니다(Text Queue나 Lyric Sequence로부터). 포트를 연결하면 그 값이 본문이 됩니다. 행은 출력 폭으로 자동 줄바꿈되고, 정렬은 기본값이 중앙입니다(정렬을 바꾸는 포트나 UI는 없고, Apps SDK에서 alignment를 0=왼쪽 / 1=중앙 / 2=오른쪽으로 쓸 수 있습니다)
  • Font Size — 기본값 96(1 미만은 1로 취급됩니다). 노드의 칸과 포트는 같은 값입니다
  • Color — 글자 색. 기본값은 불투명한 흰색. 노드의 컬러 피커와 포트는 같은 값입니다
  • Font — 드롭다운에서 폰트를 고릅니다. 맨 앞의 Auto는 ‘일본어 등 CJK가 표시되는 폰트를 OS에서 자동으로 찾는’ 동작으로, Yu Gothic / Meiryo / BIZ UDGothic / Hiragino Kaku Gothic 등의 후보를 순서대로 시도합니다. 후보를 하나도 찾을 수 없는 환경에서는 TMP 표준인 LiberationSans로 떨어지며, CJK는 빈 네모(□)로 깨집니다
    • 드롭다운에는 PC에 설치된 폰트(Windows: Fonts 폴더와 사용자 단위의 폰트, Mac: /System/Library/Fonts・/Library/Fonts・~/Library/Fonts)가 알파벳 순으로 나열됩니다
    • Font 포트에 문자열을 흘리면, 드롭다운과 같은 이름으로 폰트를 전환할 수 있습니다(StringArray로 박자마다 서체를 바꾸는 등). 빈 문자는 Auto입니다
    • 고른 폰트는 번호가 아니라 이름으로 저장됩니다. 다른 머신에 그 폰트가 없는 경우나 해결할 수 없는 이름은 Auto로 떨어집니다
    • Refresh Fonts 버튼으로, 앱 실행 후에 설치한 폰트를 다시 주워 옵니다

글자의 스타일(테두리・그림자・굵기)

어느 것이나 포트에서 변조할 수 있습니다.

  • Bold(FaceDilate) — 글자의 굵기. -1~1로 클램프, 기본값 0. 양수면 굵게, 음수면 얇게
  • Outline Width / Outline Color / Outline Soft — 테두리의 폭(01)・색(기본값은 검정)・테두리의 흐림(01). 폭이 0이면 테두리 없음
  • Shadow Color / Shadow X / Shadow Y / Shadow Dilate / Shadow Soft — 그림자. Shadow Color의 알파가 0(기본값)이면 그려지지 않습니다. X / Y는 밀어내는 양이고, 1이 폰트 크기에 비례한 ‘번짐 폭 전체’에 해당합니다. Shadow Dilate는 그림자의 굵기(-11), Shadow Soft는 흐림(01)입니다. 밀어내기 0으로 흐림을 올리면 글로우가 됩니다

배치

폰트 크기를 바꾸지 않고, 글자 전체를 움직이기 위한 포트입니다. LFO로 흔들거나 비트로 확대・축소하는 용도에는 이쪽을 사용합니다.

  • Pos X / Pos Y — 정규화 좌표. 0이 중앙, ±1이 출력의 끝. 기본값 0
  • Rot — 회전(도). 기본값 0
  • Scale — 전체의 배율. 기본값 1(음수 값은 0으로 취급)
  • Scale X / Scale Y — 축별 배율. Scale에 곱해집니다. 기본값 1
  • Shear — 기울임. y에 비례해서 x를 밀어냅니다(기본값 0). 확대・축소 뒤・회전 앞에 걸리므로, 글자가 기울어진 다음에 전체가 돕니다

말풍선 박스

글자의 실제 크기에 패딩을 더한 둥근 사각형을, 글자 아래에 깔아 줍니다.

  • Box Color — 기본값은 투명이고, 알파가 0인 동안에는 그려지지 않습니다
  • Box Pad — 패딩(px, 기본값 16, 음수 값은 0)
  • Box Radius — 둥근 모서리의 반지름(px, 기본값 12, 음수 값은 0)

박스는 배치(위치・회전・확대축소・기울임)에 글자와 함께 따라옵니다. 본문이 비어 있을 때는 그려지지 않습니다.

Distance 출력(거리장)

Render Texture와 같은 해상도로, 글자의 거리장을 출력합니다. 값 0.5가 글자의 윤곽이고, 윤곽으로부터 ±64px의 범위가 0~1로 선형으로 들어가 있습니다(안쪽이 1에 가깝고, 바깥쪽이 0에 가깝습니다. RGB는 같은 값, 알파는 1, 글자가 없는 곳은 0). 색・테두리・그림자의 스타일은 거리장에 반영되지 않고, 배치만 적용됩니다.

임계값으로 자르면 팽창・테두리・등고선을, 2장을 섞으면 폰트 간의 모프를 만들 수 있습니다. 받는 쪽은 Distance Shape를 사용해 주세요.

Apps SDK에서는 종래대로 render.createText로 생성할 수 있고, fontSize / colorR / colorG / colorB / colorA / text / alignment / fontName을 쓸 수 있습니다.

입력 포트

Port ID타입
Textstring
ColorColor
FontSizefloat
Fontstring
FaceDilatefloat
OutlineWidthfloat
OutlineColorColor
OutlineSoftnessfloat
ShadowColorColor
ShadowOffsetXfloat
ShadowOffsetYfloat
ShadowDilatefloat
ShadowSoftnessfloat
PosXfloat
PosYfloat
Rotationfloat
Scalefloat
ScaleXfloat
ScaleYfloat
Shearfloat
BoxColorColor
BoxPaddingfloat
BoxRadiusfloat

출력 포트

Port ID타입
Render TextureRenderTexture
DistanceRenderTexture

스크립트에서 설정할 수 있는 멤버

경로타입
textInputstring
fontSizeInputfloat
fontInputstring
faceDilateInputfloat
outlineWidthInputfloat
outlineSoftnessInputfloat
shadowOffsetXInputfloat
shadowOffsetYInputfloat
shadowDilateInputfloat
shadowSoftnessInputfloat
posXInputfloat
posYInputfloat
rotationInputfloat
scaleInputfloat
scaleXInputfloat
scaleYInputfloat
shearInputfloat
boxPaddingInputfloat
boxRadiusInputfloat
fontSizefloat
colorRfloat
colorGfloat
colorBfloat
colorAfloat
textstring
alignmentint
fontNamestring

Synapse Apps (스크립팅)

await synapse.modules.create({ type: "AppTextRender" })

이 페이지로 연결된 페이지

같은 페이지를 참조하는 페이지