hkrn / nanoem Goto Github PK
View Code? Open in Web Editor NEWnanoem is an MMD (MikuMikuDance) compatible implementation and its like cross-platform application mainly built for macOS.
Home Page: https://nanoem.rtfd.io
License: Other
nanoem is an MMD (MikuMikuDance) compatible implementation and its like cross-platform application mainly built for macOS.
Home Page: https://nanoem.rtfd.io
License: Other
I tried Xcode and Visual Studio, but it seemed that they're not working properly :(
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
Describe the bug
As the title said. I don't know whether this is a bug or this is a mistake in my importing process.
To Reproduce
Import Accessory->ray.x
Import model->ray_controller.pmx,skybox/time_of_day.pmx
However, in effect window, i can't choose envlightmap.
Expected behavior
Normal effect
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Thanks for the impressive project, nanoem.
Describe the bug
Models with japanese language text don't load correctly on Linux (texture paths load incorrectly, titles stop after first character, etc). The same models load correctly on Wine.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Titles load correctly on linux.
Desktop (please complete the following information):
Additional context
Checking with GDB, the model title string seems to start being incorrect at nanoemModelGetStringPMX, where after conversion string "H a r" becomes corrupt:
Thread 1 "nanoem" hit Breakpoint 1, nanoemModelGetStringPMX (model=0x555556fa23d0, buffer=0x555557028fb0, status=0x7fffffff2b0c)
at /home/kouta/nanoem/nanoem/nanoem.c:737
737 nanoem_free(src);
(gdb) p ((char*)dst)[0]
$3 = 72 'H'
(gdb) p ((char*)dst)[1]
$4 = 0 '\000'
(gdb) p ((char*)dst)[2]
$5 = 107 'k'
(gdb) p ((char*)dst)[3]
$6 = 3 '\003'
(gdb) p ((char*)dst)[4]
$7 = 80 'P'
(gdb) p ((char*)src)[0]
$8 = 72 'H'
(gdb) p ((char*)src)[1]
$9 = 0 '\000'
(gdb) p ((char*)src)[2]
$10 = 97 'a'
(gdb) p ((char*)src)[3]
$11 = 0 '\000'
(gdb) p ((char*)src)[4]
$12 = 114 'r'
Describe the bug
Rendering both video and image doesn't work on Linux.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Render it just fine
Screenshots
Desktop (please complete the following information):
Additional context
I tried both clang and gcc, no luck. I followed the workflow file too.
As we all know, we can't expect to have same result everytime a physics-enabled project is player/rendered in the original MMD. Sometimes it needsseveral times to get a video with least model glitchings, or tended to have specific glitchings.
Back to nanoem, I think it is necessaty to do some hackings on the randomizer in the physics engine, making it uses strict floating-point calculations to get rid of affection from different processors, and able to reset at runtime and use a seed regenerated and keeped in specific key frames. This make it possible to get the same result everytime the project is rendered/played, as everytime the key frame with a random seed is played, the randomizer is reset and uses the new seed inside the key frame, thus generates the same results from now on. Also, the seed could be regenerated several times until no model glitching happens.
Looking through the issues, it seems as though a bot has closed an issue that already mentioned it...
#323
Ah well, here I am, bringing attention to it again.
First thing that struck me, other than the UI changes, was how you control the viewport.
It's... Disorienting. One can get used to it, but two things defy how every other 3D program and MMD itself does things, as far as I know.
Horizontal rotation
Whoa, holding right click and moving the mouse left rotates the camera towards the "left"... And vice versa. It seems sensible on paper, but when you've modelled and navigated Roblox (Studio and in-game), MMD, Blender, Godot, not to say of 2D editing programs like Gimp, it really throws one off orientation. Inverting horizontal movement when rotating the viewport should fix this, in my no-coding theory. Some ancient knowledge in this brain realized it, and I adjusted quickly, but others may not.
Zooming in and out
I honestly find this one fun, thinking about it, but not something I would implement myself. Instead of going closer to the subject when scroll wheel go up/forwards, it "pushes" the camera away, and making the scroll wheel go back "drags" the camera closer to the subject. In a way, this makes natural sense, but it's not the behaviour built by many other programs, and it just feels strange now.
The last one is a minor issue that I suspect will be fixed when a lot more building blocks are in place, but pressing Enter to register bone keyframes (as MMD does) is just a massive accumulative timesaver as it allows me to do very quick adjustments.
Other than that and the lack of colouring in the UI as mentioned #352, this looks very promising, and if these are worked out, this could very well be a full-on replacement for MMD for some. Keep up the good work!
well.... when i scan the app in Virustotal... it says that is a virus, is it a false positive?
Describe the bug
Trying to open Settings using "command ," or in the menu bar going to Nanoem and clicking settings
To Reproduce
Steps to reproduce the behavior:
Open Settings in nanoem
Expected behavior
A settings/preferences window should show up.
Desktop (please complete the following information):
OS: macOS Ventura 13.5.1
Ver: 34.9.0
Additional context
Is there another way to open settings? Or is it just not working in this version?
Btw I use a MacBook Pro 13 inch M2 Chip
After asking you for help with the compilation (#197), I have some problems with the software and no information is available to help me diagnose the problem.
When I try to import the basic models that come with MikuMikuDance, the software crashes. The only line displayed when I launch it in a terminal is the following:
./nanoem
fish: Job 1, './nanoem' terminated by signal SIGSEGV
Another bug is the impossibility to open a project or to import a template through the menu.
The action "File > Open Project" does not display any window. Same for "Import > Model" or other "folder explorer window".
Will there be a way (through the build, or through a log file) to get more information about these problems so that they can be reported?
Thanks.
Running cmake -G Ninja ..
I got
-- [global] target architecture is x86_64 and compiler is clang
-- [nanoem] branch prediction is enabled
-- [nanoem] JSON extension is enabled
-- [nanoem] mutable API extension is enabled
-- [nanoem] NMD motion extension is enabled
-- [nanoem] PMM document extension is enabled
-- [global] glm is located at /home/dongdv/nanoem/dependencies/glm
-- [nanoem] bullet is located at /home/dongdv/nanoem/dependencies/bullet3
-- [nanoem] physics simulation using bullet extension is enabled
-- [nanoem] ICU unicode string conversion is enabled
-- [global] glm is located at /home/dongdv/nanoem/dependencies/glm
-- [global] zlib is located at /home/dongdv/nanoem/dependencies/zlib
-- [emapp] minizip is located at /home/dongdv/nanoem/dependencies/minizip
-- [emapp] nanomsg is located at /home/dongdv/nanoem/dependencies/nanomsg
-- [emapp/bundle] setup emapp bundle
-- [emapp] setup "sokol_noop" as installing plugin to plugins
-- [emapp/bundle] setup sokol noop backend renderer plugin
-- [emapp] setup "sokol_glcore33" as installing plugin to plugins
-- [emapp/bundle] setup sokol OpenGL 3.3 Core Profile backend renderer plugin
-- [emapp] setup "sokol_gles3" as installing plugin to plugins
-- [emapp/bundle] setup sokol OpenGL ES 3.0 backend renderer plugin
-- [emapp/resources] yaml-cpp is located at /home/dongdv/nanoem/dependencies/yaml-cpp
-- [emapp/resources] setup emarb font
-- [emapp/resources] setup emarb protobuf
-- [emapp/resources] setup emarb shaders
-- [emapp/resources] setup emarb toon
-- [emapp/resources] setup emarb translation
-- [emapp/resource] setup emarb credits
-- [emapp] tbb is located at /home/dongdv/nanoem/dependencies/tbb
-- [emapp] TBB is enabled
-- [emapp] setup "plugin_effect" as installing plugin to plugins
-- [emapp] setup "plugin_ffmpeg" as installing plugin to plugins
-- [emapp] setup "plugin_lsmash" as installing plugin to plugins
-- [emapp] setup "plugin_model" as installing plugin to plugins
-- [emapp] setup "plugin_motion" as installing plugin to plugins
CMake Warning (dev) at /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message):
Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
available. Run "cmake --help-policy CMP0072" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.
FindOpenGL found both a legacy GL library:
OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so
and GLVND libraries for OpenGL and GLX:
OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so
OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
emapp/CMakeLists.txt:102 (find_package)
sapp/CMakeLists.txt:11 (nanoem_emapp_link_executable)
This warning is for project developers. Use -Wno-dev to suppress it.
-- [emapp] setup linkage of "nanoem_sapp"
CMake Warning (dev) at /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message):
Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
available. Run "cmake --help-policy CMP0072" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.
FindOpenGL found both a legacy GL library:
OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so
and GLVND libraries for OpenGL and GLX:
OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so
OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
emapp/CMakeLists.txt:102 (find_package)
glfw/st/CMakeLists.txt:8 (nanoem_emapp_link_executable)
This warning is for project developers. Use -Wno-dev to suppress it.
-- [emapp] setup linkage of "nanoem_glfw_st"
CMake Warning (dev) at /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message):
Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
available. Run "cmake --help-policy CMP0072" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.
FindOpenGL found both a legacy GL library:
OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so
and GLVND libraries for OpenGL and GLX:
OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so
OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
emapp/CMakeLists.txt:102 (find_package)
CMakeLists.txt:316 (nanoem_emapp_link_executable)
CMakeLists.txt:373 (nanoem_build_test)
This warning is for project developers. Use -Wno-dev to suppress it.
-- [emapp] setup linkage of "nanoem_test"
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
/home/dongdv/nanoem/emapp/MINIZIP_INCLUDE_DIR
used as include directory in directory /home/dongdv/nanoem/emapp
/home/dongdv/nanoem/emapp/ZLIB_INCLUDE_DIR
used as include directory in directory /home/dongdv/nanoem/emapp
/home/dongdv/nanoem/nanoem/BULLET_INCLUDE_DIR
used as include directory in directory /home/dongdv/nanoem
used as include directory in directory /home/dongdv/nanoem/nanoem
used as include directory in directory /home/dongdv/nanoem/emapp
used as include directory in directory /home/dongdv/nanoem/emapp
used as include directory in directory /home/dongdv/nanoem/emapp
used as include directory in directory /home/dongdv/nanoem/emapp
used as include directory in directory /home/dongdv/nanoem/sapp
used as include directory in directory /home/dongdv/nanoem/glfw/st
MINIZIP_LIBRARY_DEBUG (ADVANCED)
linked by target "nanoem_test" in directory /home/dongdv/nanoem
linked by target "nanoem_sapp" in directory /home/dongdv/nanoem/sapp
linked by target "nanoem_glfw_st" in directory /home/dongdv/nanoem/glfw/st
MINIZIP_LIBRARY_RELEASE (ADVANCED)
linked by target "nanoem_test" in directory /home/dongdv/nanoem
linked by target "nanoem_sapp" in directory /home/dongdv/nanoem/sapp
linked by target "nanoem_glfw_st" in directory /home/dongdv/nanoem/glfw/st
-- Configuring incomplete, errors occurred!
See also "/home/dongdv/nanoem/out/core/CMakeFiles/CMakeOutput.log".
I did run git clone --recursive
to get all dependencies and followed both the minimum build instruction and Github Actions build command, they yield the same errror
It would be very cool if nanoem can work in the browser
Describe the bug
Dependency files with UTF-8 characters in their name cannot be loaded on Linux.
To Reproduce
Steps to reproduce the behavior:
Same thing happens when using drag and drop. Error seems to occur when the program tries to load the dependencies of a project/model/etc.
Expected behavior
The file should load normally and the file name should not be garbled.
Screenshots
When trying to open a project:
Desktop:
Additional context
Built with the following CMake invocation:
cmake -G Ninja .. -DNANOEM_ENABLE_IMGUI_FILE_DIALOG=ON
Without enabling NANOEM_ENABLE_IMGUI_FILE_DIALOG
, trying to open anything that needs to select a file does nothing.
Describe the bug
Cannot use plugin_ffmpeg
when exporting a video on macOS even whenplugin_ffmpeg.dylib
exists at nanoem.app/Contents/PlugIns
.
To Reproduce
Expected behavior
plugin_ffmpeg
appears in plugin list at step 3.
Desktop (please complete the following information):
Additional context
It seems that the reason is that some paths of the shared libraries which plugin_ffmpeg.dylib
depends on are incorrect:
$ cd /Applications/nanoem.app/Contents/PlugIns
$ otool -L ./plugin_ffmpeg.dylib
./plugin_ffmpeg.dylib (architecture x86_64):
@rpath/plugin_ffmpeg.dylib (compatibility version 0.0.0, current version 0.0.0)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/x86_64/install-root/lib/libavutil.56.dylib (compatibility version 56.0.0, current version 56.31.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/x86_64/install-root/lib/libavformat.58.dylib (compatibility version 58.0.0, current version 58.29.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/x86_64/install-root/lib/libavcodec.58.dylib (compatibility version 58.0.0, current version 58.54.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/x86_64/install-root/lib/libswresample.3.dylib (compatibility version 3.0.0, current version 3.5.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/x86_64/install-root/lib/libswscale.5.dylib (compatibility version 5.0.0, current version 5.5.100)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1953.255.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.36.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1953.255.0)
./plugin_ffmpeg.dylib (architecture arm64):
@rpath/plugin_ffmpeg.dylib (compatibility version 0.0.0, current version 0.0.0)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/arm64/install-root/lib/libavutil.56.dylib (compatibility version 56.0.0, current version 56.31.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/arm64/install-root/lib/libavformat.58.dylib (compatibility version 58.0.0, current version 58.29.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/arm64/install-root/lib/libavcodec.58.dylib (compatibility version 58.0.0, current version 58.54.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/arm64/install-root/lib/libswresample.3.dylib (compatibility version 3.0.0, current version 3.5.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/arm64/install-root/lib/libswscale.5.dylib (compatibility version 5.0.0, current version 5.5.100)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1953.255.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.36.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
Probably, for libavutil.56.dylib
, libavformat.58.dylib
, libavcodec.58.dylib
, libswresample.3.dylib
and libswscale.5.dylib
shared libraries, nanoem.app/Contents/Frameworks
directory should be their parent directory, but another directory is there.
Note that I tried a workaround that modifies these paths, and this successfully fixed this problem just for arm64:
#!/bin/bash
# Run this script at nanoem.app/Contents/PlugIns directory.
install_name_tool -change "/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/arm64/install-root/lib/libavutil.56.dylib" "@executable_path/../Frameworks/libavutil.56.dylib" ./plugin_ffmpeg.dylib
install_name_tool -change "/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/arm64/install-root/lib/libavformat.58.dylib" "@executable_path/../Frameworks/libavformat.58.dylib" ./plugin_ffmpeg.dylib
install_name_tool -change "/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/arm64/install-root/lib/libavcodec.58.dylib" "@executable_path/../Frameworks/libavcodec.58.dylib" ./plugin_ffmpeg.dylib
install_name_tool -change "/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/arm64/install-root/lib/libswresample.3.dylib" "@executable_path/../Frameworks/libswresample.3.dylib" ./plugin_ffmpeg.dylib
install_name_tool -change "/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/arm64/install-root/lib/libswscale.5.dylib" "@executable_path/../Frameworks/libswscale.5.dylib" ./plugin_ffmpeg.dylib
otool -L ./plugin_ffmpeg.dylib
result after running script:
./plugin_ffmpeg.dylib (architecture x86_64):
@rpath/plugin_ffmpeg.dylib (compatibility version 0.0.0, current version 0.0.0)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/x86_64/install-root/lib/libavutil.56.dylib (compatibility version 56.0.0, current version 56.31.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/x86_64/install-root/lib/libavformat.58.dylib (compatibility version 58.0.0, current version 58.29.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/x86_64/install-root/lib/libavcodec.58.dylib (compatibility version 58.0.0, current version 58.54.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/x86_64/install-root/lib/libswresample.3.dylib (compatibility version 3.0.0, current version 3.5.100)
/Users/hkrn/Library/Developer/build/nanoem/main/dependencies/ffmpeg/out/darwin/clang/ub/release/interm/x86_64/install-root/lib/libswscale.5.dylib (compatibility version 5.0.0, current version 5.5.100)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1953.255.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.36.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1953.255.0)
./plugin_ffmpeg.dylib (architecture arm64):
@rpath/plugin_ffmpeg.dylib (compatibility version 0.0.0, current version 0.0.0)
@executable_path/../Frameworks/libavutil.56.dylib (compatibility version 56.0.0, current version 56.31.100)
@executable_path/../Frameworks/libavformat.58.dylib (compatibility version 58.0.0, current version 58.29.100)
@executable_path/../Frameworks/libavcodec.58.dylib (compatibility version 58.0.0, current version 58.54.100)
@executable_path/../Frameworks/libswresample.3.dylib (compatibility version 3.0.0, current version 3.5.100)
@executable_path/../Frameworks/libswscale.5.dylib (compatibility version 5.0.0, current version 5.5.100)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1953.255.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.36.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
plugin_ffmpeg
appeared in plugin list and a video with transparent background is successfully exported.
P.S. I report this on issue because I don't know much about dylibs and what is the proper fix. Sorry.
Update:
RelWithDebInfo
, everything works fine. No imgui window.When I'am tring to build nanoem on win 10 follow instructions in readme#How to build?. I've got some errors.
After some attempts, I managed to build nanoem on Windows 10.
Describe the bug
readme#How to build? Not work.
To Reproduce
Steps to reproduce the behavior:
git submodule update --init --recursive
git apply
scripts/build.cmake | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/scripts/build.cmake b/scripts/build.cmake
index f2dc37e..b095f65 100644
--- a/scripts/build.cmake
+++ b/scripts/build.cmake
@@ -623,16 +623,20 @@ if(NOT OSX_TARGET)
endif()
set(CMAKE_FIND_LIBRARY_PREFIXES "lib;")
set(CMAKE_FIND_LIBRARY_SUFFIXES ".so;.a;.lib")
-find_program(PATCH_EXECUTABLE_PATH NAME patch PATHS "${CMAKE_CURRENT_SOURCE_DIR}" "C:/Program Files (x86)/GnuWin32/bin")
+
find_package(Git REQUIRED)
-if(PATCH_EXECUTABLE_PATH AND GIT_FOUND)
+if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} checkout -- .
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/bullet3
RESULT_VARIABLE result)
- execute_process(COMMAND ${PATCH_EXECUTABLE_PATH} -p1
- INPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/bullet-2.76.diff
+ # apply patch
+ execute_process(COMMAND ${GIT_EXECUTABLE} apply ${CMAKE_CURRENT_SOURCE_DIR}/cmake/bullet-2.76.diff
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/bullet3
RESULT_VARIABLE result)
+ if(result EQUAL "1")
+ message(FATAL_ERROR "Apply patch for bullet failed!")
+ endif()
+
execute_process(COMMAND ${GIT_EXECUTABLE} checkout -- .
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/glslang)
file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/glslang/glslang/Include/InfoSink.h input_info_sink_h NEWLINE_CONSUME)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6541f1b..2a08ba4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -180,6 +180,8 @@ if(SOUNDIO_HAVE_WASAPI)
)
endif()
+set_source_files_properties(${LIBSOUNDIO_SOURCES} PROPERTIES LANGUAGE CXX )
+
include_directories(
${libsoundio_SOURCE_DIR}
${libsoundio_BINARY_DIR}
@@ -241,7 +243,7 @@ if(BUILD_STATIC_LIBS)
set_target_properties(libsoundio_static PROPERTIES
OUTPUT_NAME ${SOUNDIO_STATIC_LIBNAME}
COMPILE_FLAGS ${LIB_CFLAGS}
- LINKER_LANGUAGE C
+ LINKER_LANGUAGE CXX
)
install(TARGETS libsoundio_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
MSVC dosn't have stdatomic.h
in std C mode.
xref: Visual Studio Feedback
// https://github.com/andrewrk/libsoundio/blob/dc4f84339039ac518b6cd1c0e7683e88e25be470/src/atomics.h#L14-L16
#ifdef __cplusplus
#include <atomic>
...
// https://github.com/andrewrk/libsoundio/blob/dc4f84339039ac518b6cd1c0e7683e88e25be470/src/atomics.h#L46-L48
#else
#include <stdatomic.h>
...
#endif
diff --git a/scripts/build.cmake b/scripts/build.cmake
index b095f65..5963f54 100644
--- a/scripts/build.cmake
+++ b/scripts/build.cmake
@@ -708,4 +708,4 @@ foreach(arch_item ${ARCH_LIST})
compile_all_repositories(${target_generator} ${target_toolset} ${target_compiler} ${arch_item} ${config_item})
endforeach()
endforeach()
-cleanup_all_repositories()
+# cleanup_all_repositories()
Lines 598 to 605 in 9f75edf
On my PC, the output dir is out
, so ${GIT_EXECUTABLE} clean -df -e build
will rm all output files.
So I commented out this function call.
cd nanoem
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -P scripts/build.cmake
mkdir out
cd out
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G Ninja ..
cmake --build . --config Release
Must build with flag -DCONFIG=release
, or cmake cannot find includes
for example:
Lines 272 to 279 in 9f75edf
find_path
only search MINIZIP_INSTALL_PATH_RELEASE
.
out\win32\nanoem.exe
Desktop:
Still need more explore, then I'll make a new pr and add new github CI for win build.
How to add a new language support ??
Describe the bug
Trying to go to Settings (Command-,) doesn't do anything.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A settings/preferences window should show up.
Desktop (please complete the following information):
Additional context
Is there a Settings window or that just doesn't exist?
The GUI isn't very legible due to there only being 2 shades of gray... would it be possible to make sections more defined or add color similar to mmd?
Whenever I try to use nanoem I generally take longer to do things because of how flat it looks.
hello hkrn, when I load ikpolish everything works thanks to your page about it. however when trying to apply materials from the "materials" folder of ikpolish_28 to the models, an error occur. it is not just this shaders, but any shaders with materials, the materials doesn't not work, but the main.fx generally does, is it possible nanoem doesn't support normal maps and such?
main.fx applied, any fx from Main folder works
moving to the "Model" Tab to apply materials from the "Materials" folder of ikpolish (for skin, cloth, glass, metal ect...)
when trying to load an effect, it will show this error...
...or it will show this error
other shader such as pmotskin doesn't work at all.
MacbookAir M1
I'm really puzzled by all this, please enlighten me, thank you for your hard work, hoping to see new updates of the software in the future
私いま、VR用な動画が作りたいです。本家のMMDは、立体視(Stereoscopic 3-D)で表示や動画出力ができます。そのため、NVIDIAのグラフィックカードと3D VISIONに対応のディスプレイは必要です。
nanoemは、今後この機能を実装するの可能性はありますか? もし実装できるなら、一般のグラフィックカードやディスプレイで動作可能かな?2カメで立体画像を生成できると思いますけど(˘ㅂ˘ )
Dear nanoem Development Team,
I am writing to report an issue I encountered with the nanoem application on my M1 MacBook Pro running macOS Ventura Version 13.6. After downloading and installing nanoem from BowlRoll, I attempted to create and save a new file in the application. However, I am facing a persistent issue where the saved .nnm files cannot be reopened in nanoem.
Every time I try to open these files, I receive the following error message: “nanoem cannot open files in the nanoem document format.”
Here are the steps I followed:
Installed nanoem from BowlRoll.
Launched nanoem and created a new, empty file.
Saved the file in the .nnm format.
Attempted to reopen the saved file in nanoem.
I have ensured that the application is up to date, and I have also tried reinstalling it, but the issue persists. This problem seems to be specific to the .nnm file format, as I am unable to open any .nnm files, whether they are newly created or previously existing.
I would greatly appreciate any assistance or guidance you can provide to resolve this issue. If there are any logs or additional information I can provide to help diagnose the problem, please let me know.
Thank you for your attention to this matter.
When I am in nanoem and I try to move my model it doesn't move even though I have it on move in the bone section, when I go to move the stage it works perfectly fine but not for model.
Describe the bug
When playing empty animation (without keyframes) the camera spins wildly. (Build with ICU and IMGUI Filesystem)
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Camera stays in place
Screenshots
https://youtu.be/xOBcZN0MHCE
Desktop (please complete the following information):
Maybe a false positive by VirusTotal: nanoem-v34.10.0-win64.zip
Just clone and build with cmake -P scripts/build.cmake
:
ninja: error: loading 'build.ninja': No such file or directory
CMake Error at scripts/build.cmake:41 (message):
Building failed with 1:
./dependencies/sentry-native/out/darwin/clang/ub/debug
Call Stack (most recent call first):
scripts/build.cmake:345 (execute_build)
scripts/build.cmake:575 (compile_sentry_native)
scripts/build.cmake:700 (compile_all_repositories)
*There will be no problems if manually build the Sentry Native SDK:
cd dependencies/sentry-native
cmake -B xcodebuild -GXcode -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
xcodebuild build -project xcodebuild/Sentry-Native.xcodeproj
Describe the bug
Unable to build on Linux: CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
To Reproduce
Compile on Manjaro
Expected behavior
Project was unable to build successfully.
Desktop (please complete the following information):
Additional context
Env variables:
env | grep -i nanoem
NANOEM_DISABLE_BUILD_SENTRY_NATIVE=1
NANOEM_DISABLE_BUILD_SPIRV_TOOLS=1
NANOEM_TARGET_COMPILER=clang
Detailed error log:
cmake -G Ninja ..
-- The C compiler identification is GNU 12.1.1
-- The CXX compiler identification is GNU 12.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- [global] target architecture is x86_64 and compiler is gcc
-- Performing Test NANOEM_ENABLE_BRANCH_PREDICTION
-- Performing Test NANOEM_ENABLE_BRANCH_PREDICTION - Success
-- [nanoem] branch prediction is enabled
-- [nanoem] JSON extension is enabled
-- [nanoem] mutable API extension is enabled
-- [nanoem] NMD motion extension is enabled
-- [nanoem] PMM document extension is enabled
-- [global] glm is located at /home/seigneurfuo/src/nanoem/dependencies/glm
-- [nanoem] bullet is located at /home/seigneurfuo/src/nanoem/dependencies/bullet3
-- [nanoem] physics simulation using bullet extension is enabled
-- [global] glm is located at /home/seigneurfuo/src/nanoem/dependencies/glm
-- [global] zlib is located at /home/seigneurfuo/src/nanoem/dependencies/zlib
-- [emapp] minizip is located at /home/seigneurfuo/src/nanoem/dependencies/minizip
-- [emapp] nanomsg is located at /home/seigneurfuo/src/nanoem/dependencies/nanomsg
-- [emapp] setup "sokol_noop" as installing plugin to plugins
-- [emapp/bundle] setup sokol noop backend renderer plugin
-- [emapp] setup "sokol_glcore33" as installing plugin to plugins
-- [emapp/bundle] setup sokol OpenGL 3.3 Core Profile backend renderer plugin
-- [emapp] setup "sokol_gles3" as installing plugin to plugins
-- [emapp/bundle] setup sokol OpenGL ES 3.0 backend renderer plugin
-- [emapp/resources] yaml-cpp is located at /home/seigneurfuo/src/nanoem/dependencies/yaml-cpp
-- [emapp/resources] setup emarb font
-- [emapp/resources] setup emarb protobuf
-- [emapp/resources] setup emarb shaders
-- [emapp/resources] setup emarb toon
-- [emapp/resources] setup emarb translation
-- [emapp/bundle] setup emapp bundle
-- [emapp] tbb is located at /home/seigneurfuo/src/nanoem/dependencies/tbb
-- [emapp] TBB is enabled
-- Performing Test Iconv_IS_BUILT_IN
-- Performing Test Iconv_IS_BUILT_IN - Success
-- Found Iconv: built in to C library
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
CMake Warning (dev) at /usr/share/cmake/Modules/FindOpenGL.cmake:315 (message):
Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
available. Run "cmake --help-policy CMP0072" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.
FindOpenGL found both a legacy GL library:
OPENGL_gl_LIBRARY: /usr/lib/libGL.so
and GLVND libraries for OpenGL and GLX:
OPENGL_opengl_LIBRARY: /usr/lib/libOpenGL.so
OPENGL_glx_LIBRARY: /usr/lib/libGLX.so
OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
emapp/CMakeLists.txt:102 (find_package)
sapp/CMakeLists.txt:13 (nanoem_emapp_link_executable)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Found OpenGL: /usr/lib/libOpenGL.so
-- [emapp] setup linkage of "nanoem_sapp"
-- Configuring done
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
/home/seigneurfuo/src/nanoem/emapp/MINIZIP_INCLUDE_DIR
used as include directory in directory /home/seigneurfuo/src/nanoem/emapp
/home/seigneurfuo/src/nanoem/emapp/NANOMSG_INCLUDE_DIR
used as include directory in directory /home/seigneurfuo/src/nanoem/emapp
/home/seigneurfuo/src/nanoem/emapp/TBB_INCLUDE_DIR
used as include directory in directory /home/seigneurfuo/src/nanoem/emapp
/home/seigneurfuo/src/nanoem/emapp/ZLIB_INCLUDE_DIR
used as include directory in directory /home/seigneurfuo/src/nanoem/emapp
/home/seigneurfuo/src/nanoem/nanoem/BULLET_INCLUDE_DIR
used as include directory in directory /home/seigneurfuo/src/nanoem/nanoem
used as include directory in directory /home/seigneurfuo/src/nanoem/emapp
used as include directory in directory /home/seigneurfuo/src/nanoem/emapp
used as include directory in directory /home/seigneurfuo/src/nanoem/sapp
/home/seigneurfuo/src/nanoem/sapp/TBB_INCLUDE_DIR
used as include directory in directory /home/seigneurfuo/src/nanoem/sapp
MINIZIP_LIBRARY_DEBUG (ADVANCED)
linked by target "nanoem_sapp" in directory /home/seigneurfuo/src/nanoem/sapp
MINIZIP_LIBRARY_RELEASE (ADVANCED)
linked by target "nanoem_sapp" in directory /home/seigneurfuo/src/nanoem/sapp
NANOMSG_LIBRARY_DEBUG (ADVANCED)
linked by target "nanoem_sapp" in directory /home/seigneurfuo/src/nanoem/sapp
NANOMSG_LIBRARY_RELEASE (ADVANCED)
linked by target "nanoem_sapp" in directory /home/seigneurfuo/src/nanoem/sapp
TBB_LIBRARY_DEBUG (ADVANCED)
linked by target "nanoem_sapp" in directory /home/seigneurfuo/src/nanoem/sapp
TBB_LIBRARY_RELEASE (ADVANCED)
linked by target "nanoem_sapp" in directory /home/seigneurfuo/src/nanoem/sapp
ZLIB_LIBRARY_DEBUG (ADVANCED)
linked by target "nanoem_sapp" in directory /home/seigneurfuo/src/nanoem/sapp
ZLIB_LIBRARY_RELEASE (ADVANCED)
linked by target "nanoem_sapp" in directory /home/seigneurfuo/src/nanoem/sapp
-- Generating done
CMake Generate step failed. Build files cannot be regenerated correctly.
Thanks.
何が依存していて移植ができないのですか。
Android固有のライフサイクル対応ができてない?
jniでのネイティブ連携ができないって事ですか。
OpenGLESには対応していますか?
GLSLを直接叩いてないようですが使用ライブラリはAndroidに対応していますか?
vpvl2ではアライメントの対応が出来てなかったから対応したような気がする。
GLSL直接叩かないと条件分岐の除去とか完璧な最適化ができないと思うんですが使用ライブラリでもできるんですかね。
When posing a model, the middle click on the mouse does not move the camera view as it does in camera/light mode. Instead, middle mouse click functions as a scene refresh, it also has the side effect of undoing any unregistered bones.
The behavior is not consistent as it is described in the manual.
Rana's 3D model has some minor texture glitches (on the scarf and the code under the eye). However, other MMD models have either major or minor texture glitches. (ex: Hakutory 1052C-Re Hatsune Miku has major texture glitches)
Will this be fixed in future releases of Nanoem?
For reference, this is the specs of the computer I use:
Laptop: Dell G7 7588 (2018)
MikuMikuMoving has this feature where .pmx models can be scaled freely like .x models. Is it possible to implement it in nanoem?
Without this it is almost impossible to change the scale of model in a satisfactory way:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.