构建前需先安装 Java 并确保 java 命令可用;Node >=16 必须加 --legacy-peer-deps 安装依赖;网页部分需另行 cd source/page && npm install
npm install --legacy-peer-deps
npm run build
npm run start 硬件要求按 README 说明
README 未说明显存或 GPU 型号要求;编辑器有网页版,在 Firefox、Chrome、Edge 及移动浏览器上测试通过
基于 three.js 的开源 Web 3D/WebXR 游戏引擎,带可视化编辑器,可做网页 3D 体验
基于 Web 的跨平台 3D 与 WebXR 游戏引擎,在浏览器里就能搭建、编辑和运行三维场景与 VR/AR 游戏。
核心能力
- 可视化场景编辑器支持拖拽导入模型与资源
- 内置材质、纹理、粒子发射器等可视化编辑工具
- 用 JavaScript 或 Python 编写脚本扩展应用逻辑
- 支持 gltf、dae、obj、fbx、3ds 等多种模型格式
- 可导出为 NW.js 桌面应用或 Cordova 移动应用
容易踩的坑
内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README
- v0.9.6nunuStudio V0.9.6pre-release最新正式版2019-04-26 · 2019-04-26 11:06 UTC
- Support for extruded or planar Text Mesh.
- Fixed bug with tree overlaping other tabs.
- Select multiple tree objects using SHIFT.
- Export draco compressed geometries.
- Scene editor toolbar is now attached to the scene editor tab.
- Fixed postprocessing pipeline bugs.
- Adaptive luminance pass.
- Fixed window closing on file dialog cancel.
- Open nsp files with nunuStudio.
- v0.9.5-betanunuStudio V0.9.5 Betapre-release2018-12-09 · 2018-12-09 21:41 UTC
查看更新说明
Changelog
- Splitabble tabs in the UI
- Improved form GUI
- Support for mesh-cap materials
- Loading data screen
- Torus knot and ring geometries
- Post-processing refactored
- Resource management refactored
- Remove resources using the keyboard
- Refactored forms UI
- Fixed problems with convex hull generation
- Search bard for objects and resource
- Automatically focus objects on selection
- Using NWJS-builder now
- Fixed shader editor layout
- Support for Tizen key codes (TizenKeyboard)
- VideoStream object
- Mouse back and forward buttons support (Chrome and desktop only)
- v0.9.4-betanunuStudio V0.9.4 Betapre-release2018-05-15 · 2018-05-15 17:23 UTC
查看更新说明
- Multi object edit (position, rotation and scale)
- Support for SVG file loading
- Improved camera controls
- New UI elements (Slider, Checkbox)
- Dodecahedron geometry
- Resources are now selectable
- Resource preview on inspector
- New general settings tab
- Experimental android export support
- v0.8.9.22-alphanunuStudio V0.8.9.22 Alphapre-release2018-05-15 · 2018-05-15 17:19 UTC
查看更新说明
- Editor standalone version
- Support for File API loading
- Added reverse glyphs option to Font asset
- Improved font preview
- Added support for Textures as scene background
- Drag and drop CubeTextures
- Drag and drop tabs in editor
- Self-updated tabs
- v0.8.9.25-alphanunuStudio V0.8.9.25 Alphapre-release2018-05-15 · 2018-05-15 17:18 UTC
查看更新说明
- Improved UI elements
- Support for SpriteSheet animations
- Added CubeCameras
- Added Circle Geometry
- Gamepad support
- Snap to grid support
- Orbit camera controls
用户点评
登录用户的真实使用记录,可按版本和硬件筛选共 0 条
还没有人点评。第一个说出真实体验的人最有价值。
- nunuStudio is an open source game engine for the web it allows designers and web developers to easily develop 3D experiences for the web.
- Powered by three.js can run directly in the web or be exported as desktop application trough nwjs.io.
- Fully featured visual editor, supports a wide range of file formats, the tools are open source and completely free to use for both personal and commercial usage.
- Visual scene editor, code editor, visual tools to edit textures, materials, particle emitters and a powerful scripting API that allows the creation of complex applications using JavaScript or Python.
- Fully featured web version of the editor is available on the project page.
- The web version is tested with Firefox, Chrome and Microsoft Edge, mobile browsers are supported as well.
- API Documentation with full details about the inner working of every module are available. These can also be generated from the project source code by running
npm run docs. - Basic tutorials are available on the project page. The basic tutorials explain step-by-step how to use the editor.
- To build the project first install Node.js LTS and NPM:
- The building system generates minified builds for the runtime and for the editor
- Documentation generation uses YuiDocs
- Install dependencies from npm by running
npm install --legacy-peer-deps - Build editor, runtime and documentation, run
npm run build
- Webpage of the project is built using Angular and is hosted on GitHub Pages
Screenshots
Features
- Visual application editor
- Drag and drop files directly into the project (images, video, models, ...)
- Manage project resources.
- Edit material, textures, shaders, code, ...
- Built on three.js library w/ physics by cannon.js
- Real time lighting and shadow map support
- three.js libraries can be imported into the editor
- Wide range of file formats supported (gltf, dae, obj, fbx, 3ds, ...)
- NW.js and Cordova exports for desktop and mobile deployment
- Compatible with WebXR for Virtual Reality and Augmented Reality
Build
The project uses Webpack to build and bundle its code base.
- The building system generates minified builds for the runtime and for the editor
- JavaScript is optimized and minified using Uglify
- Documentation generation uses YuiDocs
Steps needed to build the project:
- To build the project first install Java, Node.js and NPM and ensure that java command is working properly.
- Install dependencies from npm by running
npm install.- If running on Node >=16 run
npm install --legacy-peer-depsinstead
- If running on Node >=16 run
- Install the dependencies for the project webpage running
cd source/page && npm install - Building/running
- Building: to build editor, runtime and documentation, run
npm run build - Running: To start the editor locally for development and testing run
npm run start
- Building: to build editor, runtime and documentation, run
Embedding Application
- Application developed with can be embedded into already existing web pages, and are compatible with frameworks like Angular or React.
- To embed applications in HTML pages the following code can be used, the application is bootstrapped using the
loadApp(file, id)method.
<html>
<head>
<script src="nunu.min.js"></script>
</head>
<body onload="Nunu.App.loadApp('pong.nsp', 'canvas')">
<canvas width="800" height="480" id="canvas"></canvas>
</body>
</html>
Vue.js with Nuxtjs
- Build
nunu.min.jsand place intostatic/jsfolder of your nuxt instance - Place canvas element into your
templatearea where you want it, for example:
<template>
<div>
<canvas
id="canvas"
width="800"
height="480"
/>
</div>
</template>
- Add the script to your head function of the page you want the 3D integration on (or place is into your global head)
head() {
return {
script: [
{
hid: 'Nunu',
src: 'assets/js/nunu.min.js',
defer: true,
callback: () => {
Nunu.App.loadApp('assets/file.nsp', 'canvas') //add file to load in here
},
},
],
},
}
- You are now able to address
Nunuas usual within the app.
License
- The project is distributed under a MIT license that allow for commercial usage of the platform without any cost.
- The license is available on the project GitHub page