Giter VIP home page Giter VIP logo

hkrn / nanoem Goto Github PK

View Code? Open in Web Editor NEW
267.0 7.0 36.0 26.8 MB

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

CMake 1.20% C++ 42.27% C 50.85% Objective-C 0.27% Objective-C++ 2.29% HLSL 0.19% Rich Text Format 0.07% Rust 1.96% HTML 0.01% Shell 0.03% Dockerfile 0.01% Python 0.02% Batchfile 0.01% PureBasic 0.81% PowerShell 0.01%
mmd nanoem mikumikudance cpp

nanoem's Introduction

nanoem

Build Status Documentation Status License: MPL 2.0 License: MIT

nanoem is an MMD (MikuMikuDance) compatible implementation and its like application mainly built for macOS.

Screenshot

nanoem for macOS

Background and Design Concept

MikuMikuDance (a.k.a MMD) is created on Windows via DirectX9. As such, it's unavailable to run on non-Windows deployment unless you use a virtual machine or emulation layer such as Wine.

nanoem was originally created to address the issue of non-Windows compatibility as well as the possibility it may not work in the future due to Windows reason. It was originally designed for macOS but now it's now designed to run on non-macOS as well and supports ARM CPU such as Apple M1 and RaspberryPi, multiple graphics backends (DirectX11/Metal/OpenGL).

It also has model editing feature similar to PMXEditor's one which allows for some model editing. This was also implemented for the same reason mentioned above.

nanoem is designed to achieve both of the following goals.

  • Portability
  • Lightweight startup
  • Small size

How to build?

Prerequisites

  • cmake (>= 3.5)
  • C++14 compliant compiler
    • confirmed on Clang and Visual Studio 2017
  • git
  • ninja-build
    • Optional but recommend on macOS/Linux

Minimum build instruction

See also GitHub Action Workflow.

git submodule update --init --recursive

# needs setting NANOEM_TARGET_COMPILER explicitly when the compiler is clang (default is gcc on Linux)
export NANOEM_TARGET_COMPILER=clang
cmake -P scripts/build.cmake
mkdir out
cd out
cmake -G Ninja ..
cmake --build .

# OpenGL 3.3 Core Profile or higher is required to run on Linux
cd sapp && ./nanoem
Options Table of scripts/build.cmake
Name Description
NANOEM_TARGET_ARCHITECTURES Target architectures to build. The default value is x86_64 (non macOS) or ub (means Universal Binary, macOS).
NANOEM_TARGET_CONFIGURATIONS Target configurations for cmake. The default value is debug;release.
NANOEM_TARGET_MACOS_VERSION Target macOS version. Same as CMAKE_OSX_DEPLOYMENT_TARGET.
NANOEM_TARGET_GENERATOR Target generator for cmake. The option will pass as cmake -G ${NANOEM_TARGET_GENERATOR}
NANOEM_TARGET_COMPILER Target compiler for cmake.
NANOEM_TARGET_TOOLSET Target toolset for cmake. The option will pass as cmake -T {NANOEM_TARGET_TOOLSET}
NANOEM_MAKE_PROGRAM Make program to use for cmake. Same as CMAKE_MAKE_PROGRAM.
NANOEM_DISABLE_BUILD_NANOMSG Disable building nanomsg.
NANOEM_DISABLE_BUILD_TBB Disable building Threading Building Blocks.
NANOEM_ENABLE_BUILD_ICU4C Enable building ICU. You must run following command git clone https://github.com/unicode-org/icu/ dependencies/icu before enabling the option.
NANOEM_ENABLE_BUILD_MIMALLOC Enable building mimalloc.
NANOEM_ENABLE_BUILD_SPIRV_TOOLS Enable building SPIRV-Tools.
NANOEM_ENABLE_BUILD_SENTRY_NATIVE Enable building Sentry C/C++ SDK.
NANOEM_ENABLE_BUILD_LIBSOUNDIO Enable building libsoundio. You must run following command git clone https://github.com/andrewrk/libsoundio dependencies/libsoundio before enabling the option.
NANOEM_ENABLE_BUILD_GLFW Enable building GLTF. You must run following command git clone https://github.com/glfw/glfw dependencies/libsoundio before enabling the option.
NANOEM_ENABLE_BUILD_FFMPEG Enable building ffmpeg. You must run following command git clone https://github.com/ffmpeg/ffmpeg dependencies/ffmpeg before enabling the option.
NANOEM_ENABLE_BUILD_YAMLCPP Enable building yaml-cpp. You must run following command git clone https://github.com/jbeder/yaml-cpp dependencies/yaml-cpp before enabling the option.

Architecture

See Architecture Document (Japanese)

About License

Contributors

nanoem's People

Contributors

aisk avatar dependabot[bot] avatar hkrn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

nanoem's Issues

立体視 (Stereoscopic 3-D)機能

私いま、VR用な動画が作りたいです。本家のMMDは、立体視(Stereoscopic 3-D)で表示や動画出力ができます。そのため、NVIDIAのグラフィックカードと3D VISIONに対応のディスプレイは必要です。
nanoemは、今後この機能を実装するの可能性はありますか? もし実装できるなら、一般のグラフィックカードやディスプレイで動作可能かな?2カメで立体画像を生成できると思いますけど(˘ㅂ˘ )

[BUG] Cannot use plugin_ffmpeg on macOS

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

  1. Open nanoem.app
  2. Select "動画" menu via "ファイル→書き出し→動画"
  3. See available plugin list

Expected behavior

plugin_ffmpeg appears in plugin list at step 3.

Screenshots
スクリーンショット 2023-03-28 22 50 12

スクリーンショット 2023-03-28 22 45 49

Desktop (please complete the following information):

  • OS: macOS 13.0.1
  • Hardware: Macbook Air M1, 2020
  • Version: nanoem.app 34.8.1

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.

image

P.S. I report this on issue because I don't know much about dylibs and what is the proper fix. Sorry.

[BUG] Noting being able to move my model

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.

[BUG] Unable to load dependency files with UTF-8 characters in their name on Linux

Describe the bug
Dependency files with UTF-8 characters in their name cannot be loaded on Linux.

To Reproduce
Steps to reproduce the behavior:

  1. Click on Open Project (or anything else that needs to open a file)
  2. Select a file that has dependencies which have UTF-8 characters in their names.
  3. Error occurs with garbled file name, or if it's a model, loads with incomplete assets/garbled names.

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:
image

When loading a model:
image

Desktop:

  • OS: Arch Linux

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.

Build on Windows with VS 2019

Update:

  • build with 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:

  1. set up Prerequisites in readme.
  2. start "Visual Studio 2019 Developer Command Prompt (x64)"
  3. git clone git submodule update --init --recursive
    There is a typo, see #23
  4. Patch code 1, remove GnuWin32/patch dep, using 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)
  1. Patch code 2, force to compile with cpp mode
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
  1. Patch code 3, Do not clean up temp files.
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()

nanoem/scripts/build.cmake

Lines 598 to 605 in 9f75edf

function(cleanup_all_repositories)
set(all_repositories "bullet3;glslang;minizip;zlib")
foreach(item ${all_repositories})
string(STRIP "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/${item}" _path)
execute_process(COMMAND ${GIT_EXECUTABLE} checkout -- . WORKING_DIRECTORY ${_path})
execute_process(COMMAND ${GIT_EXECUTABLE} clean -df -e build WORKING_DIRECTORY ${_path})
endforeach()
endfunction()

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.

  1. Build with
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:

nanoem/emapp/CMakeLists.txt

Lines 272 to 279 in 9f75edf

function(nanoem_emapp_find_minizip)
nanoem_cmake_get_install_path("minizip" MINIZIP_BASE_PATH MINIZIP_INSTALL_PATH_DEBUG MINIZIP_INSTALL_PATH_RELEASE)
find_path(MINIZIP_INCLUDE_DIR NAMES mz.h PATH_SUFFIXES include PATHS ${MINIZIP_INSTALL_PATH_RELEASE} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(MINIZIP_LIBRARY_DEBUG NAMES minizip libminizip minizipd libminizipd PATH_SUFFIXES lib PATHS ${MINIZIP_INSTALL_PATH_DEBUG} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
find_library(MINIZIP_LIBRARY_RELEASE NAMES minizip libminizip PATH_SUFFIXES lib PATHS ${MINIZIP_INSTALL_PATH_RELEASE} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
mark_as_advanced(MINIZIP_INCLUDE_DIR MINIZIP_LIBRARY_DEBUG MINIZIP_LIBRARY_RELEASE)
message(STATUS "[emapp] minizip is located at ${MINIZIP_BASE_PATH}")
endfunction()

find_path only search MINIZIP_INSTALL_PATH_RELEASE.

  1. Run out\win32\nanoem.exe

image

Desktop:

  • OS: Windows 10 - 21H1
  • VS 2019 - 16.10.4
    • cmake version 3.20.21032501-MSVC_2
    • ninja 1.10.2
    • cl (msvc) 19.29.30040

Still need more explore, then I'll make a new pr and add new github CI for win build.

[BUG] Japanese language models don't load correctly on Linux

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:

  1. Download this model: https://www.deviantart.com/mmd-francis-co/art/Haruhi-Suzumiya-DL-562804437
  2. Load on Linux
  3. Load on Wine
  4. Compare both models, one has no textures and bone names are broken, on the other everything displays correctly.

Expected behavior
Titles load correctly on linux.

Screenshots
winemodel
linuxmodel

Desktop (please complete the following information):

  • OS: Arch Linux (Rolling Release)
  • Version: Master @ 509bb40

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'

Androidの移植で障害になっている実装コードはどこですか?

何が依存していて移植ができないのですか。
Android固有のライフサイクル対応ができてない?
jniでのネイティブ連携ができないって事ですか。
OpenGLESには対応していますか?
GLSLを直接叩いてないようですが使用ライブラリはAndroidに対応していますか?
vpvl2ではアライメントの対応が出来てなかったから対応したような気がする。
GLSL直接叩かないと条件分岐の除去とか完璧な最適化ができないと思うんですが使用ライブラリでもできるんですかね。

Build failed on Ubuntu 20.04

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

After importing ray.x in ray-mmd 1.5.2, the entire video became black.

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.
image

Desktop (please complete the following information):

  • OS macOS 13.0(arm64)
  • Version latest

Thanks for the impressive project, nanoem.

Raycast doesn't work with the program

I want to give this program a try but Raycast 1.5.2 doesn't seem to work with it, is there something i need to edit/modify? i don't know about coding tho, anyway, when i try to load ray.x this is what shows up
image
I hope im not making an annoying question 😥

Materials doesn't apply to models when using ikpolish_28 and others shaders

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?

ikpolishmainapplied

main.fx applied, any fx from Main folder works

ikpolishmodelmaterial

moving to the "Model" Tab to apply materials from the "Materials" folder of ikpolish (for skin, cloth, glass, metal ect...)

ikpolisherror1

when trying to load an effect, it will show this error...

ikpolisherror2

...or it will show this error

other shader such as pmotskin doesn't work at all.

MacbookAir M1

information

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

[BUG] Minor Model Texture Glitches

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?

Screenshots
Model Gitches Nanoem

For reference, this is the specs of the computer I use:
Laptop: Dell G7 7588 (2018)

  • OS: Windows 11
  • GPU: Nvidia GTX 1060 MaxQ

Middle click in model posing mode doesn't pan the camera

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.

Failed to build Sentry Native SDK

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

[BUG] Unable to open a model from the menu (only drag and drop works)

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.

  • OS: Linux

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.

First Impression: Control settings, some extra options pls?

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.

Original thing I wrote:

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.

  1. 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.

  2. 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!

[BUG] macOS - Settings doesn't show up

Describe the bug
Trying to go to Settings (Command-,) doesn't do anything.

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.4
  • Ver: 34.9.0

Additional context
Is there a Settings window or that just doesn't exist?

[BUG]Issue with Opening .nnm Files in nanoem on M1 MacBook Pro (macOS Ventura 13.6)

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.

I can't open Nanoem Settings

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

Suggestion: Add more depth to GUI

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.

[BUG] nanoem won't start

Hi nanoem just won't start at all after I click on it.
16693865840053087239794186131283
16693866774677166764402788294856
Anyway it's running but it doesn't show the application screen to it please make ideas to fix this.

Exactly same result everytime get rendered

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.

[BUG]

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

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):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

[BUG] Broken camera

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:

  1. Open nanoem.
  2. Click "Play"

Expected behavior
Camera stays in place

Screenshots
https://youtu.be/xOBcZN0MHCE

Desktop (please complete the following information):

  • OS: Linux Manjaro
  • Tested using latest release and main.

[BUG] Rendering doesn't work on Linux

Describe the bug
Rendering both video and image doesn't work on Linux.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Export > Image/Video'
  • Basically how you render things

Expected behavior
Render it just fine

Screenshots

Peek 2023-01-22 20-47

Desktop (please complete the following information):

  • OS: Artix Linux
  • Browser Ungoogled Chromium
  • Version 107 (Browser), latest (Artix)

Additional context
I tried both clang and gcc, no luck. I followed the workflow file too.

MMD Parity and a few bugs

Viewport

  • Nanoem has inverted controls of the viewport when compared to MMD (and most 3d software), this causes a massive discomfort when using it, the inverted controls are horizontal rotation (right click hold + mouse movement), scroll wheel zoom, horizontal movement (mouse middle button click + mouse movement), there could be a settings option to set them to default MMD behavior.
  • Can't load a background video.

Physics

  • No option to select all physics bones.
  • Can't pose physics bones manually.
  • Disabling physics on the bone window and registering the keyframe doesn't disable the physics on that bone.

Bone

  • No reset pose button on the bone window.
  • No Z (move), X (rotate), C (show/hide) buttons, those allows for moving the bones with the 3d Gizmo or hide the bones to have a clear view of the current pose (as well as any other MMD keybind).
  • When a 3d gizmo is on ex. Move, you lose the viewport rotation control as both the left and right click control the gizmo.
  • Bone position resets if you change settings like physics.
  • Seems to have problems rotating IK bones ex. MagiArmIK.
  • Unable to register keyframes of certain bones (MagiArmIK).
  • Moving viewport recalculates bones.
  • Bones are not affected by anti-aliasing setting.
  • No visual distinction between Move and IK bones.
  • Physics bones aren't displayed with physics off.

Morphs

  • Morphs resets if you click on the viewport bone controls or gizmos (that hard reset also seems to freeze nanoem for a split second).

Interpolation

  • Interpolation curve is hidden by default, which is unnecessary.
  • No option to control all axis at the same time.

Keyboard Shortcuts

  • Has no keyboard shortcuts, making work considerably slow.

pmx model scaling

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:

  • Use .x models: Does not support any of the .pmx model features: bones, morphs, physics, etc.
  • Use scale.fx effect: Incompatible with almost every effect without heavily modifying the effects
  • Edit the model and scale it to desired size: Size cannot be changed dynamically; Moving bones inside MMD becomes unusable for models of very big/small scales.

[BUG] Unable to build on Linux (The following variables are used in this project, but they are set to NOTFOUND)

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):

  • OS: Manjaro Linux
  • cmake: 3.23.3
  • ninja: 1.11.0

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.