[ๆฅๆฌ่ช]
Next2D PlayerใฏใWebGLใฎใใผใใฆใงใขใขใฏใปใฉใฌใผใทใงใณใงใฐใฉใใฃใใฏในๅฆ็่ฒ ่ทใ่ปฝๆธใใOffscreenCanvasใฎใใซใในใฌใใๅฆ็ใงๆ็ปใใใฉใผใใณในใๅไธใใใฆใใพใใ
ใใฏใฟใผๆ็ปใTweenใขใใกใผใทใงใณใใใญในใใ้ณๅฃฐใๅ็ปใชใฉใใใพใใพใช่ฆ็ด ใใตใใผใใใฆใใใฎใงใใฒใผใ ๅถไฝใใคใณใฟใฉใฏใใฃใใชใใผใฟใใธใฅใขใฉใคใผใผใทใงใณใใฏใชใจใคใใฃใใชใฆใงใใขใใชใฑใผใทใงใณใชใฉใ่ฑใใช่กจ็พใๅฟ
่ฆใจใใใใใญใธใงใฏใใงๆดป็จใๆๅพ
ใงใใพใใ
[English]
Next2D Player reduces graphics processing load with WebGL hardware acceleration and improves drawing performance with OffscreenCanvas multi-threaded processing.
With support for vector rendering, tween animation, text, audio, video, and many other elements, Next2D Player can be used for game production, interactive data visualization, creative web applications, and other projects that require rich expression. The software is expected to be used in game production, interactive data visualization, creative web applications and other projects requiring rich expression.
[็ฎไฝไธญๆ]
Next2D Player้่ฟWebGL็กฌไปถๅ ้้ไฝไบๅพๅฝขๅค็่ด่ฝฝ๏ผ้่ฟOffscreenCanvasๅค็บฟ็จๅค็ๆ้ซไบ็ปๅพๆง่ฝใ
็ฑไบๆฏๆ็ข้็ปๅพใTweenๅจ็ปใๆๆฌใ้ณ้ขใ่ง้ขๅ่ฎธๅคๅ
ถไปๅ
็ด ๏ผๅฎๅฏ็จไบๆธธๆๅถไฝใไบคไบๅผๆฐๆฎๅฏ่งๅใๅๆ็ฝ็ปๅบ็จๅๅ
ถไป้่ฆไธฐๅฏ่กจ่พพ็้กน็ฎใ ่ฏฅ่ฝฏไปถๅฏ็จไบ้่ฆไธฐๅฏ่กจ็ฐๅ็้กน็ฎไธญใ
[ๆฅๆฌ่ช]
ๆๆฐใใฅใผในใๆ่กๆ
ๅ ฑใฏใTwitterใฎ@Next2Dใๅ
ฌๅผใฎWebsiteใง็บไฟกใใฆใใใพใใฎใงใใใงใใฏใใฆใฟใฆใใ ใใใ
Next2Dใใๅฝนใซ็ซใคใใใงใใใใใใญใธใงใฏใใใๆฏๆดใใใ ใใใฐๅนธใใงใใ
[English]
Please check @Next2D on Twitter and the official website for the latest news and technical information.
If Next2D is useful to you, we hope you will support our project.
[็ฎไฝไธญๆ]
่ฏทๅจTwitterไธๆฅ็@Next2Dๅๅฎๆน็ฝ็ซ๏ผไบ่งฃๆๆฐ็ๆฐ้ปๅๆๆฏไฟกๆฏใ
ๅฆๆNext2Dๅฏนไฝ ๆ็จ๏ผๆไปฌๅธๆไฝ ่ฝๆฏๆๆไปฌ็้กน็ฎใ
next2d.load("Path to JSON output from Animation Tool");const { Loader } = next2d.display;
const { URLRequest } = next2d.net;
const { Event } = next2d.events;
// create root MovieClip
const start = async () =>
{
const request = new URLRequest("JSON path");
const loader = new Loader();
await loader.load(request);
const root = await next2d.createRootMovieClip();
root.addChild(loader.contentLoaderInfo.content);
};
start();import { Loader } from "@next2d/display";
import { URLRequest } from "@next2d/net";
import { Event } from "@next2d/events";
// create root MovieClip
const start = async (): Promise<void> =>
{
const request = new URLRequest("JSON path");
const loader = new Loader();
await loader.load(request);
const root = await next2d.createRootMovieClip();
root.addChild(loader.content);
};
start();[ๆฅๆฌ่ช]
| ใใญใใใฃๅ | ๅ | ใใใฉใซใๅค | ่ชฌๆ |
|---|---|---|---|
fullScreen |
boolean | false | Stageใฏใฉในใง่จญๅฎใใๅน ใจ้ซใใ่ถ ใใฆ็ป้ขๅ จไฝใซๆ็ปใใใพใใ |
tagId |
string | empty | IDใๆๅฎใใใจใๆๅฎใใIDใฎใจใฌใกใณใๅ ใงๆ็ปใ่กใใพใใ |
bgColor |
string | "transparent" | ่ๆฏ่ฒใ16้ฒๆฐใงๆๅฎใงใใพใใใใใฉใซใใฏ็ก่ฒ้ๆใงใใ |
[English]
| name | type | default | description |
|---|---|---|---|
fullScreen |
boolean | false | The entire screen is drawn beyond the width and height set in the Stage class. |
tagId |
string | empty | When an ID is specified, drawing is performed within the element of the specified ID. |
bgColor |
string | "transparent" | You can specify a background color in hexadecimal. The default is colorless. |
[็ฎไฝไธญๆ]
| ๅ็งฐ | ๅผ็ฑปๅ | ้ป่ฎคๅผ | ่ฏดๆ |
|---|---|---|---|
fullScreen |
boolean | false | ๆดไธชๅฑๅน็็ปๅถ่ถ ๅบไบStage็ฑปไธญ่ฎพ็ฝฎ็ๅฎฝๅบฆๅ้ซๅบฆใ |
tagId |
string | empty | ๅฝไธไธชID่ขซๆๅฎๆถ๏ผๅจๆๅฎID็ๅ ็ด ๅ ่ฟ่ก็ปๅพใ |
bgColor |
string | "transparent" | ไฝ ๅฏไปฅๆๅฎไธไธชๅๅ ญ่ฟๅถ็่ๆฏ้ข่ฒใ้ป่ฎคไธบๆ ่ฒใ |
flowchart TB
%% Main Drawing Flow Chart
subgraph MainFlow["๐จ Drawing Flow Chart - Main Rendering Pipeline"]
direction TB
subgraph Inputs["Display Objects"]
Shape["Shape<br/>(Bitmap/Vector)"]
TextField["TextField<br/>(canvas2d)"]
Video["Video Element"]
end
Shape --> MaskCheck
TextField --> MaskCheck
Video --> MaskCheck
MaskCheck{"mask<br/>rendering?"}
MaskCheck -->|YES| DirectRender["Direct Rendering"]
DirectRender -->|drawArrays| FinalRender
MaskCheck -->|NO| CacheCheck1{"cache<br/>exists?"}
CacheCheck1 -->|NO| TextureAtlas["๐ฆ Texture Atlas<br/>(Binary Tree Packing)"]
TextureAtlas --> Coordinates
CacheCheck1 -->|YES| Coordinates["๐ Coordinates DB<br/>(x, y, w, h)"]
Coordinates --> FilterBlendCheck{"filter or<br/>blend?"}
FilterBlendCheck -->|NO| MainArrays
FilterBlendCheck -->|YES| NeedCache{"cache<br/>exists?"}
NeedCache -->|NO| CacheRender["Render to Cache"]
CacheRender --> TextureCache
NeedCache -->|YES| TextureCache["๐พ Texture Cache"]
TextureCache -->|drawArrays| FinalRender
MainArrays["โก Instanced Arrays<br/>โโโโโโโโโโโโโโโ<br/>matrix<br/>colorTransform<br/>Coordinates<br/>โโโโโโโโโโโโโโโ<br/><b>Batch Rendering</b>"]
MainArrays -->|drawArraysInstanced<br/><b>Multiple objects in one call</b>| FinalRender["๐ฌ Final Rendering"]
FinalRender -->|60fps| MainFramebuffer["๐ฅ๏ธ Main Framebuffer<br/>(Display)"]
end
%% Branch Flow for Filter/Blend/Mask
subgraph BranchFlow["๐ญ Filter/Blend/Mask - Branch Processing"]
direction TB
subgraph FilterInputs["Display Objects"]
Shape2["Shape<br/>(Bitmap/Vector)"]
TextField2["TextField<br/>(canvas2d)"]
Video2["Video Element"]
end
Shape2 --> CacheCheck2
TextField2 --> CacheCheck2
Video2 --> CacheCheck2
CacheCheck2{"cache<br/>exists?"}
CacheCheck2 -->|NO| EffectRender["Effect Rendering"]
CacheCheck2 -->|YES| BranchArrays
EffectRender --> BranchArrays
BranchArrays["โก Instanced Arrays<br/>โโโโโโโโโโโโโโโ<br/>matrix<br/>colorTransform<br/>Coordinates<br/>โโโโโโโโโโโโโโโ<br/><b>Batch Rendering</b>"]
BranchArrays -->|drawArraysInstanced<br/><b>Multiple objects in one call</b>| BranchRender["Effect Result"]
BranchRender -->|filter/blend| TextureCache
end
%% Connections between flows
FilterBlendCheck -.->|"trigger<br/>branch flow"| BranchFlow
BranchArrays -.->|"rendering info<br/>(coordinates)"| MainArrays
%% Styling
style MainFlow fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style BranchFlow fill:#fff3e0,stroke:#f57c00,stroke-width:3px
style Inputs fill:#f5f5f5,stroke:#9e9e9e,stroke-width:1px
style FilterInputs fill:#f5f5f5,stroke:#9e9e9e,stroke-width:1px
style MainArrays fill:#c8e6c9,stroke:#388e3c,stroke-width:3px
style BranchArrays fill:#c8e6c9,stroke:#388e3c,stroke-width:3px
style FinalRender fill:#ffecb3,stroke:#f57f17,stroke-width:2px
style MainFramebuffer fill:#c5e1a5,stroke:#689f38,stroke-width:3px
style TextureCache fill:#e1bee7,stroke:#8e24aa,stroke-width:2px
style Coordinates fill:#b3e5fc,stroke:#0277bd,stroke-width:2px
style TextureAtlas fill:#fff9c4,stroke:#f9a825,stroke-width:2px
This project is licensed under the MIT License - see the LICENSE file for details.