대화 형 3D 타이포그래피 효과

Sep 15, 2025
어떻게
Interactive 3D typography

타이포그래피는 항상 메시지를 향상시키는 오른쪽 서체를 선택하고 전달되는 것에 대한 올바른 컨텍스트를 제시 할 때 모든 디자이너의 도구의 무기지에서 주요 부분을 재생합니다. 지난 8 년 동안 웹 디자이너는 가져올 수있는 능력이있었습니다. 사용자 정의 TypeFaces. 그와 같은 Kinetic 타이포그래피 그들의 디자인으로 인쇄 디자이너가 즐기는 사람들에게 비슷한 인쇄상의 통제권을 가지고 있습니다.

수상 경력에 빛나는 또는 하루의 사이트의 '사이트'라는 것으로 추천 한 많은 사이트를 살펴보고 곧 타이포그래피 사용이 디자인의 중심이되므로 경쟁에서 상승 할 수 있습니다. 이는 애니메이션 문자 양식, 사용자 상호 작용으로의 반응성 이동, 중심 단계를 섭취하는 형태의 유형의 사용 (타이포그래피 파일을 안전하게 유지) 할 수 있습니다. 클라우드 스토리지 짐마자

Zero Fuss가있는 주목받는 사이트를 만들고 싶다면 웹 사이트 빌더 너무. 귀하의 사이트의 성능이 맨 위로 최적화되어 있는지 확인하십시오. 웹 호스팅 ...에

  • 3D 글꼴 : 9 개의 톱 형 팁

이 튜토리얼에서는 유형 효과가 동적으로 소용돌이 방향으로 소용돌이 방향으로 이동하여 편지를 통해 이동하여 문자의 모양을 가면으로 마스크로 사용합니다. 이 아름다운 애니메이션이있을뿐만 아니라 이것이 렌더링 될 것입니다. HTML5 캔버스 요소는 화면 주위를 움직이면 마우스쪽으로 회전하는 3D로 3D로 변환됩니다. 이것은 사이트 헤더에 적합하거나 조치에 대한 통화에 대한 사용자의 관심을 끌어야 할 때 완벽합니다.

여기에서 자습서 파일을 다운로드하십시오

01. 프로세스를 시작하십시오

코드 IDE의 프로젝트 파일에서 '시작'폴더를 엽니 다. 프로젝트는 입자 객체 클래스를 생성하여 시작됩니다. 이것은 프로젝트의 텍스트 내에서 흐르는 이미지를 만드는 데 사용됩니다. 'sketch.js'파일을 열고 다음 변수를 추가하여 기본 입자를 만드는 것을 시작하십시오.

 기능 입자 () {
  이 = Createvector (무작위 (폭), 무작위 ((높이 - 100));
  이 = createvector (0, 0);
  이 .acc = createvector (0, 0);
  이 .maxspeed = maxspeed;
  this.prevpos = this.pos.copy (); 

Interactive 3D typography

생성되는 효과는 HTML5 캔버스 요소에 도면의 수의 헬퍼를 사용할 수있는 p5.js 라이브러리에 의해 광범위하게 도움이됩니다.

02. 입자를 업데이트하십시오

입자를 움직이려면 업데이트 기능이 각 프레임을 실행하여 입자의 속도와 속도의 가속도가 작동합니다. 속도는 결국 나중에 추가 될 전역 변수에 의해 제한 될 것입니다. 속도가 개별 입자의 위치에 첨가됩니다. 하나의 입자를 만들어서 한 번에 화면에 수천이 수천이됩니다.

 this.update = function () {
  이. vel.add (this.acc);
  this.vel.limit (this.maxspeed);
  this.pos.add (this.vel);
  이 .ac.mult (0);
  } 

03. 흐름과 함께 가십시오

입자를 유동하는 움직임을주기 위해 노이즈에 의해 생성 된 흐름 필드가 따라납니다. 여기에서 생성 된 함수는 흐름의 벡터가 전달 될 수 있으며, 따라서이 기능의 이름을 따를 수 있습니다. 벡터 방향의 힘이 입자에 적용됩니다.

 this.follow = 함수 (벡터) {
  var x = 바닥 (this.pos.x / scl);
  var y = 바닥 (this.pos.y / scl);
  var index = x + y * cols;
  VAR 힘 = 벡터 [색인];
  이 .ApplyForce (힘);
  } 

04. 너무 자세히 따르지 만 따르지 마십시오

이러한 종류의 움직임으로 쉽게 일어날 수있는 모든 입자가 함께 묶일 수있는 모든 입자가 함께 멈추기 위해 입자는 매우 적은 양의 무작위도가 첨가 될 것입니다. 이렇게하면 약간의 산란이 발생할 수 있습니다.

 this.scatter = 함수 (벡터) {
  이 .x + = 랜덤 (-0.9, 0.9);
  이 + + = 랜덤 (-0.9, 0.9);
  }
  이 .ApplyForce = 기능 (Force) {
  this.acc.add (힘);
  } 

Interactive 3D typography

기본 HTML5 레이아웃 및 CSS 설계는 사전에 생성되어 JavaScript의 텍스트 효과의 흐르는 줄의 통합에 집중할 수 있습니다.

05. 입자를 표시합니다

여기 쇼 기능은 입자를 표시합니다. 첫 번째 일은 밝은 회색 색상의 한 픽셀 스트로크를 추가하여 선을 만듭니다. 선은 현재 위치에서 이전 프레임의 마지막 위치로 그려집니다. 이전 위치는 다음 번에 루프를 통해 저장됩니다.

 show = function () {
  뇌졸중 (180);
  스트로크 체중 (1);
  LINE (this.pos.x, this.pos.y, this.prevpos.x, this.prevpos.y);
  this.updatePrev ();
  }
  this.updatePrev = 함수 () {
  this.prevpos.x = this.pos.x;
  this.prevpos.y = this.pos.y;
  } 

06. 포장 주변

입자가 화면 가장자리에 도달하면 에지 함수가 작동합니다. 그렇다면 반대쪽에 올라 가야합니다. 이 섹션은 X 위치를 처리하므로 화면의 너비보다 크면 왼쪽 가장자리로 전송하고 그 반대의 경우도 마찬가지입니다.

이 .Edges = function () {
  if (this.pos.x & gt; 너비) {
  this.pos.x = 0;
  this.updatePrev ();
  }
  if (this.pos.x & lt; 0) {
  this.pos.x = 너비;
  this.updatePrev ();
  } 

07. 래퍼의 즐거움

이 코드는 가장자리 감지의 나머지 부분이며 화면의 상단 및 하단의 Y 축의 입자를 감지합니다. 여기에 브래킷은 전체 입자 클래스를 랩핑합니다. 이것은이 클래스를 사용하여 많은 입자를 만들 수 있습니다.

IF (this.pos.y & gt; 높이) { 이 = 0; this.updatePrev (); } if (this.pos.y & lt; 0) { 이 = 높이; this.updatePrev (); } } }

08. 많은 입자를 만드십시오

이제 입자가 만들어지면 많은 입자를 만드는 것에 대해 생각할 시간입니다. 이를 위해 모든 코드는 입자 기능 클래스 이상으로 이동할 수 있습니다. 여기서 시스템이 실행될 수 있도록 여러 가지 전역 변수가 선언됩니다. 그들은 코드 중에 여러 번 호출 될 수 있으므로 탐구 할 수 있습니다.

 VARC = 0.1;
var scl = 100, zoff = 0;
var cols, 행, 움직임 = 0;
var 입자 = [];
var flowfield;
varmg;
var maxspeed;
var t, calcx = 0, calcy = 0, currx = 0, curry = 0, targetx = 0, targety = 0; 

09. 모든 것을 설정하십시오

여기에 선언 된 설정 기능은 화면이 처음을 보는 방법을 설정합니다. 수행되는 첫 번째 탐지는 화면의 너비가 무엇인지 확인하는 것입니다. 상대적으로 큰 경우 큰 이미지가로드되면 캔버스가 생성되고 CSS를 통해 디스플레이에 맞게 조정됩니다.

 기능 설정 () {
  if (windowwidth & gt; 1200) {
  img = loadImage ( "자산 / studio.png");
  var 캔버스 = createcanvas (1920, 630);
  maxspeed = 10.5;
  } 

Interactive 3D typography

일단 입자 객체 클래스가 생성되면, 수의 입자가 페이지에 추가됩니다. 흐르는 선은 텍스트 효과를 추가하지 않고 볼 수 있습니다.

10. 다른 화면

나머지 IF 문은 다른 화면 해상도를 확인하고 해당 화면 크기에 가장 적합한 이미지를로드합니다. 유사하게 다른 크기의 캔버스 요소가 생성됩니다. 이는 주로 모바일이있는 것보다 많은 픽셀을 다루는 것을 중지합니다.

 else if (windowwidth & gt; 900) {
  img = loadImage ( "자산 / 스튜디오 - tablet-wide.png");
  var 캔버스 = createcanvas (1200, 394);
  scl = 60;
  maxspeed = 7;
  } else {
  img = loadImage ( "자산 / 스튜디오 - tablet-tall.png");
  var 캔버스 = createcanvas (700, 230);
  scl = 40;
  maxspeed = 5;
  } 

11. 그리드를 만드십시오

화면 크기가 작동하면 캔버스가 index.html 페이지의 헤더 div 태그 내에 배치됩니다. 폭과 높이를 기반으로 여러 열과 행이 작동합니다. 보이지 않는 그리드와 같습니다. 마지막으로, 배열이 흐름 필드에 설정됩니다.

 canvas.parent ( '헤더');
cols = 바닥 (너비 / scl);
행 = 바닥 (높이 / scl);
FlowField = 새로운 어레이 (Cols); 

12. 입자를 만드십시오

화면의 너비에 따라 입자 수는 화면이 1920 픽셀의 넓이이면 2500 개의 입자가 생성되고 거기에서 아래쪽으로 이동합니다. A의 루프는 새로운 입자를 만듭니다. 화면의 배경색은 거의 전체 흰색으로 설정됩니다.

 var numparticles = math.floor ((2500 / 1920) * 너비);
  용 (var i = 0; i ≤ numparticles, i ++) {
  입자 [i] = 새로운 입자 ();
  }
  배경 (245);
} 

13. 화면을 그립니다

모든 계산의 결과는 그리기 기능의 프레임마다 화면에 그려집니다. 첫째, 매우 낮은 불투명도가있는 밝은 회색 사각형은 화면이 이전에 그려진 것을 퇴색하도록 채우려면 화면을 채 웁니다. 이 후에 그려진 후에는 입자가 채우지 않는 스트로크로 구성 될 때 채우기가 꺼집니다.

 기능 그리기 () {
  nosttroke ();
  채우기 (245, 10);
  RECT (0, 0, 너비, 높이);
  nofill ();
  var Yoff = 0; 

14. 흐름 효과를 만듭니다

흐름 효과를 얻으려면 행과 열을 통해 이동하여 노이즈 값을 업데이트하는 두 개의 '루프가 이동합니다. 그런 다음 화면의 각 위치에 대해 입자를 업데이트 할 준비가 된 노이즈 값에서 각도로 변경됩니다.

 (var y = 0; y & lt; y ++) {
  var xoff = 0;
  (var x = 0, x & lt; cols; x ++) {
  var index = (x + y * cols);
  var angle = 노이즈 (XOFF, YOFF, ZOFF) * 2_PI * 4;
  var v = p5.vector.Fromangle (각도); 

15. Array를 업데이트하십시오

흐름의 배열은 각도로 업데이트되고 값이 증가하여 각 위치의 오프셋이 올라가면 상승합니다. 이것은 복잡한 것처럼 보일 수 있지만 화면을 따라야 할 입자에 대한 무작위 모션을 실제로 만듭니다.

 V.SetMag (1);
  FlowField [색인] = V;
  XOFF + = Inc;
  }
  Yoff + = Inc;
  ZOFF + = 0.001;
  } 

Interactive 3D typography

이제 본문이 현재 존재하고 있으며 흐르는 선을 볼 수있어 디자인의 텍스트 내부에서 소용돌이 치는 것이 가능합니다.

16. 입자를 업데이트하십시오

이제 입자는 배열에서 모두 반복됩니다. 각 개별 입자는 플로우 필드를 따라 가기, 화면의 가장자리를 점검하고, 쇼 기능을 사용하여 화면에 약간 흩어지며 마지막으로 분산되어 마침내 그려지는 것을 알려줍니다. 파일을 저장하고 'index.html'을 테스트하여 움직이는 입자를 확인하십시오.

 (var i = 0; I & lt; 입자. 길이, i ++) {
  입자 [i] .follow (flowfield);
  입자 [i] .update ();
  입자 [i] .Edges ();
  입자 [i] .scatter ();
  입자 [i] .show ();
  }
} 

17. 텍스트를 추가하십시오

텍스트는 상단에 배치 된 마스크입니다. 이렇게하려면 올바른 이미지가 입자 상단에 배치됩니다. 드로우 기능의 폐쇄 중괄호 전에이 코드를 추가하십시오. 이제 텍스트로 작동하는 효과를 보려면 브라우저를 저장하고 확인하십시오.

 이미지 (IMG, 0, 0); 

Interactive 3D typography

디자인이 더 작은 크기의 화면에 적재되면 화면이 적을 때 입자 수가 줄어 듭니다.

18. 마우스 위치를 감지합니다

마우스 위치가 참조되고 X 및 Y 값이 이동할 수있는 정도 각도로 매핑됩니다. y 축에서 이것은 -25 ~ 25이며 x 축의 반대로 표시됩니다. 나머지 코드는 그리기 기능이 끝나기 전에 마지막 코드가 추가 된 후에 배치되어야합니다.

 targetyy = math.round (map (mopex, 0, width, -25, 25));
targetX = math.round (맵 (MOUSEY, 0, 높이, 25, -25)); 

19. 제자리에 쉽게 할 수 있습니다

목표 위치는 이제 약간의 완화가 주어 지므로 각도가 천천히 목표를 달성하십시오. 이는 대상에서 현재 위치를 벗고 낮은 숫자로 곱하는 고전적인 완화 알고리즘을 사용하여 작성됩니다.

 VAR VX = (TARGETX - CURRX) * 0.05;
VAR VY = (TARGETYY - CURRY) * 0.05;
calcx + = vx;
Calcy + = Vy; 

20. CSS를 씁니다

여기에서 'T'변수는 Rotatex 및 Rotatey의 변환 값을 사용하여 계산 된 값을 취하고 CSS 문자열에 배치합니다. 현재 위치는 캔버스가 현재 회전 된 위치에서 계산됩니다.

 T = 'RotateX ('+ Calcx + '°) Rotatey ('+ Calcy + '°)';
currx = calcx;
Curry = Calcy; 

Interactive 3D typography

코드의 마지막 섹션은 마우스 위치를 가져 와서 CSS 변환을 캔버스 요소에 적용합니다. 이것은 캔버스를 3D 공간에서 마우스쪽으로 회전시킵니다.

21. 마무리

이제 CSS 가이 코드의 캔버스 요소에 적용됩니다. 페이지를 저장하고 브라우저에서 미리 봅니다. 이제 마우스는 캔버스의 회전을 완전히 업데이트하여 마우스가 움직이게됩니다. 물론 해당 공간의 모든 입자는 화면에서 이동합니다.

 캔버스 .Style.WebKitTransform = T;
canvas.style.mstransform = t;
canvas.style.transform = t; 

이 기사는 원래 Creative Web Design Magazine Web Designer에 게시되었습니다. 구입 문제 271. 또는 구독 ...에

관련 기사:

  • 70 디자이너를위한 최고의 무료 글꼴
  • 완벽한 온라인 독서 경험을 6 단계로 간주합니다
  • 무료 온라인 도구가 귀하의 글꼴이 무엇을 할 수 있는지 보여줍니다.

어떻게 - 가장 인기있는 기사

늑대를 그리는 법

어떻게 Sep 15, 2025

당신이 마스터 한 경우 개를 그리는 법 , 늑대도 쉽게 그릴 수있을 것이라고 생각하는 것에 대해 용서받을..


까다로운 디자인을 해결하는 방법

어떻게 Sep 15, 2025

[이미지 : Jack Renwick Studio] 누군가가 까다로운 간단한 것을 처리하는 방법을 알고 있다면,..


Illustrator에서 자신의 붓글씨 브러시를 만듭니다

어떻게 Sep 15, 2025

Illustrator에 대한 최선의 사항 중 하나는 자신의 브러시를 만들 수있는 능력입니다. 온라인으로 놀..


Marmoset Toolbag을 사용하여 VR에서 모델을 입력하십시오

어떻게 Sep 15, 2025

Marmoset Toolbag는 NO이 아닙니다 3D 아트 산업. 수년간 밖에 있었고, 특히 게임 자산과 더 �..


4 가지 필수 이미지 최적화 팁

어떻게 Sep 15, 2025

몇 가지 행운의 개발자 와이 저자는 Tech Edit Osmani의 새로운 이미지 최적화 전자 책을 편집 할 수있..


수채화 물질의 마스터 네거티브 페인팅

어떻게 Sep 15, 2025

부정적인 그림은 그 그림을 그리는 것을 말합니다 [삼] 부정적인 공간 긍정적 인 모양을 정의합니다. 이것은 특히 전통적인 수채화 물�..


디지털 아트에서 화려한 느낌을 만듭니다

어떻게 Sep 15, 2025

디지털 페인팅은 역사적으로 너무 인공적으로 보이기 때문에 오늘날 광범위한 소프트웨어 범위�..


캐리커처의 해부학 : 15 탑 팁

어떻게 Sep 15, 2025

풀 타임 프리랜서로서, 나는 다양한 스타일을 가로 질러 일하는 데 익숙해 져야한다. 그림 �..


카테고리