Announcement

Collapse
No announcement yet.

VN Game engine for Studio/NEO/PlayHome/CharaStudio (upd 18-04-2019 - v12.0)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Utilities] VN Game engine for Studio/NEO/PlayHome/CharaStudio (upd 18-04-2019 - v12.0)

    A plugin for making... may be VN-like-games in Studio / Studio NEO / PlayHome Studio / CharaStudio (Koikatsu).
    (Also a lot of utilities to manipulate camera and scene)

    Why?
    Imagine that you have a number of scenes in Studio / NEO, with one storyline. Or multi story-lines with choices. Or just a scene with some cameras to move between them. Or scene you want manipulate by buttons.
    With this plugin you can made a small vn game, where you can navigate between scenes, or cameras, or changing a scene to tell your story.

    It's heavily based on HS Console (http://www.hongfire.com/forum/forum/...ed-19-mar-2017), so be careful, if you have it. (Also, great thanks to TheHologram for made it)

    Ready games and utils for VN Game Engine (separate thread)

    Very useful Scene Save State mod for VNGE

    Features

    All engines (Studio, NEO, CharaStudio from Koikatsu):
    For users:
    - Play games
    - Navigating using mouse or keyboard (Z,X,C,V,B keyboard buttons)
    - Autotranslating (using XUnity.AutoTranslator) for game texts to your own language (unstable and ugly, but it works)
    - Automaking list of all games for startup
    - Includes several games in distro:
    Spoiler

    - Simple demo - small school story for 3-5 minutes (for Studio/NEO/PlayHome/CharaStudio)
    - VNSceneScript / Demos / Simple demo - another small school story for 3-5 minutes (for NEO/PlayHome/CharaStudio)
    - Ruris dream - small intro about sleeping girl (for Old Studio)
    - Laboratory Girl - a laboratory girl story. 5-10 minutes (for CharaStudio)
    - VNSceneScript / Demos / Hot Story - 3-5 minutes story about girls on hot springs (for CharaStudio)
    - VNFrame Tutorial - interactive tutorial for making stories (for NEO/PlayHome/CharaStudio)
    - Techdemo - technical features demo - animated cameras, switching animations, etc. (for Studio/NEO/PlayHome/CharaStudio)
    - Game based on VNSceneScript files - how to make a game, basing on long linear VNSceneScript files (they are easy to make) - see "Easy way to make a kinetic Visual Novels..." section below.

    For scene creators
    - A set of utils for mass replace characters, move/rotate/scale using buttons, add a tree of items etc.
    - Utils for making set of animations (see VNFrame - it evaluate difference bitween scenes and interpolate from one to another)
    For developers
    - show text from different charactes, making choices using buttons, programming game logic using Python
    - loading scene
    - switching between in-scene cameras
    - animate between in-scene cameras
    - loading animation for characters
    - manipulating characters (varies from engine to engine)
    - Utils: setting timers, move to start screen using Ctrl+F3, hiding main text screen using Ctrl+F8, zoom_in, zoom_out animated functions
    - Fake lip sync (since 7.5)
    - Includes several frameworks to make a games and stories (needed for developers):
    Spoiler

    VN Scene Script
    Provides a way to script your story just inside scene editor (by naming the folders)
    Simple and target for beginners. Easily adapts to existed scenes, where story is telled by switching camera from 1 to 10.
    An examples included in core
    Documentation and so on
    Why do you need VNSceneScript? (is under spoiler)
    Spoiler

    If you try VN Game Engine, you understand, that usually you need these resources to make a game:
    - 1 or more scene files - to show graphics )
    - PY (Python script) to save texts, make choices, etc.
    If you want to share your creation, you, of course, need to pack PY, Scenes etc.

    It's a correct way, but it's too long - especially, if you need some simple game in 1 scene and with 1 button "Next >>" (so 1-lined stories also usually called "kinetic novels")

    So, VN Scene Script is a way for not saving texts and game actions in PY file - but, instead of, save it in NAMES of folders in Scene Editor.
    As a result of using VN Scene Script, you don't need PY file - only scene PNG file, that you can share in usual way (or use it in game itself like completed story element - like introduction, one of finales etc. - because we have game functions to show entire VN Scene Script file)

    Of course, saved elements need an interpreter to show the story - and this interpreter is already included in engine. It runs by F7 button (full mode) and F8 (just view).

    So about this approach,
    Pros:
    - compact saving - only PNG file needed. No name handling etc.
    - simple edit just in scene editor. No need for Python knowledge (instead, you must learn several commands of VN Script language)
    - classic Python script has a problem with non-latin chars in PlayHome and CharaStudio. If you work inside editor in VN Scene Script approach, you can show any text, because it loads from folder names, not from PY files.
    - simple working for in-game resources (show/hide elements)
    - you can construct game even in visual mode in touch with VNFrame - see this post: http://www.hongfire.com/forum/forum/...42#post6224742 for start tutorials

    Cons:
    - one scene - one logic. For several scenes you must use PY file.
    - almost impossible to construct complex logic (several choices etc.)
    - restricted set of scene actions (can be solved by VN Scene Script extensions)

    So, if you want to start making text captions to your scene - it's a good choice. If you want to do more, you can always combine this approach to classic PY code.


    VNActor-VNProp (from countd360)
    Classes that provide functions to manipulate characters and items/folders in NEO-based engines (NEO/PlayHome/CharaStudio)
    You must just mark one or several objects or chars on scene to manipulate it in code.
    Suits, if you want to make one or several changes to concrete character or object.
    (Exampls will be provided in future, now see Laboratory Girl example and core functions scenef_register_actorsprops (for registering actors and properties)
    scenef_get_all_props, scenef_get_all_actors, scenef_get_prop, scenef_get_actor functions)


    VNFrame (from countd360)
    High-quality framework to make an anime-styled movies or kinetic visual novels (for NEO/PlayHome/CharaStudio, but mostly for CharaStudio)
    Provides an utility called "script_helper" to calculate the difference between to scene states and packed it to code (to smoothly animate between them)
    Use it if you want to made a lot of animation inside scene
    There are high-quality demo Laboratory Girl and tutorial for using framework (included in 8.5)
    (this framework is supported by countd360, so all questions is up to him)

    Ruris dream (from @Kningets)
    Framework for Studio (classic).
    Provide the original idea to VNFrame framework.
    Examples include in core.
    Doesn't contain script_helper, so you must calculate the changes in scene manually. Also used in Ruri's Adventure (see in Games section)
    Use it if you want a lot of animation using Studio classic
    Keyboard shorcuts (editable in INI file):
    Spoiler
    - Ctrl+F8 - show/hide main window
    - Ctrl+F3 - return to title screen
    - Ctrl+F4 - dump camera state (saved in dumppython.txt)
    - Ctrl+F5 - dump scene state (saved in dumppython.txt)
    - Ctrl+F6 - print list of scene characters in console



    How to install and use?

    You'll need IPA for Studio/NEO/PlayHome, or Bepis for CharaStudio.

    - download and unzip
    - run Studio / NEO and see throw demos

    Screenshot of correct installation:
    Spoiler
    Click image for larger version  Name:	scr_inst_corr.jpg Views:	3 Size:	140.5 KB ID:	6191980





















    Troubleshooting during installation
    Spoiler

    CharaStudio: console loads and just disappeared
    Spoiler

    Reason: some plugin blocked HS Console
    Solution: find conflicting plugin.
    I have a report, that configurationmanager.dll from some versions conflicts with HS Console, so try disable it.


    CharaStudio: no window appears
    Spoiler

    Try toggle Python Console:
    set up ShowAtStartup=1 in Console.ini (located in Plugin/Console or BepInEx/Console)

    Due to unknown reason, it helps on some installations.



    (For NEO users I also highly recommends HSUS plugin, it efficiently decrease startup time, from 60-90 to 4-5 seconds on my machine ( http://www.hongfire.com/forum/forum/...06-08-2018-206 )


    - demos can be find in Plugins/Console/Lib - all commented and detailed described
    -- maingamedemo.py - for main demo (example VN game)
    -- simplegamedemoadv.py - for simple demo, where we get only one button (Next >) and only loading scenes (example VN game)
    -- techdemo.py - for technical features demo

    - scenes for Studio located in UserData/Studio/game_subfolder (for NEO - in UserData/studioneo/scene/game_subfolder)

    (old description for version under 5.0 - how to add your buttons to game under spoiler)
    Spoiler

    -change Plugins/Console/Console.ini startup script at end.
    for example, if your game is in file mycoolgame.py, so print:
    >>import mycoolgame
    >>vngameengine.vngame_window_studio(["Start My Cool Game >"], [mycoolgame.start])
    or for NEO:
    >>vngameengine.vngame_window_neo(["Start My Cool Game >"], [mycoolgame.start])

    - game engine located in vngameengine.py, but you don't need it normally

    Sharing your works

    If you want, you can share your results in this theme: http://www.hongfire.com/forum/forum/...ames-and-utils
    Please, provide in ZIP
    - your game.py in Plugins/Console/Lib (no need for additional scripts)
    - necessary scenes in UserData/Studio/game_subfolder

    (During game made, please, try to use usual (non-moded) clothes and objects - so, if you want to distribute it, other players will have all needed files.)

    Good luck, have fun

    Download

    v12.0 for Honey Select Studio/NEO
    Link: https://mega.nz/#!MmQRCApQ!gaNadpbpP...b64CJf9cOxhz5g

    v12.0 for Koikatsu CharaStudio:
    Link: https://mega.nz/#!suAhDaYS!M0s9GkS7n...6mExAWAAuJ0cbE

    v11.8 for PlayHome Studio:
    Link: https://mega.nz/#!FmpQySyL!6RnIAfgIr...uGWEETJ7QF4LIA

    If you see text after installation: Warning! You have a problems with UTF-8 libs!
    Spoiler


    For CharaStudio users:
    Spoiler
    (Warning: installing HF Patch remove UTF-8 dll libraries from CharaStudio_Data/Managed.
    If you experience problems (some games don't run) - please, reinstall VNGE after HF Patch. Or just copy DLL files from installation to CharaStudio_Data/Managed)


    For NEO users:
    Spoiler

    Most frequently reason:
    You use HSResolveMoreSlotID 0.9
    (The UTF-8 Libs ERROR Caused by UtinyRipperCore.dll(Mod name:HSResolveMoreSlotID 0.9))

    What to do:
    Upgrade to HSResolveMoreSlotID V1.0b and higher (about)

    Old solution:
    Spoiler
    You can try:
    - Unpack this DLLs: https://mega.nz/#!tz5gXKia!O6vj3pGxz...-72-auhbPagcOQ to StudioNEO_64_Data\Managed
    - try to back to previous version of VNGE.
    - try to reinstall HoneySelect (it's no good, but we can't say anything good about it)

    What happens in details?
    Python programs use special info to handle UTF-8 files. Like this: # -*- coding: UTF-8 -*-
    Due to some reason your installation doesn't proceed this type of files.

    Most libraries and games can work in this case; but someone can't.
    So, run everyone at your own risk - but it's better try to fix this.
    If you see some kind of error like:
    "An exception was thrown by the type initializer for CodecsInfo"
    - so you have this problem.



    (for Koikatsu CharaStudio users - how to update to latest minor version)
    Spoiler

    Sorry, have no time to support several releases. So, CharaStudio users will have only MAJOR releases, minor you must made by yourself

    How to update to latest minor version:
    1. Download latest major release for Koikatsu and install it:
    2. Download latest minor release for Studio/NEO from this thread and NOT install it
    3. Copy the latest version of files in Lib to BepInEx/Console/Lib, replacing old one

    (description for VN Game engine for CharaStudio here: http://www.hongfire.com/forum/forum/hentai-lair/hf-modding-translation/5990340-illusion-koikatu-koikatsu-コイカツ!-mods-no-discussion-allowed?p=6034645#post6034645)

    (for PlayHome Studio users - how to update to latest minor version)
    Spoiler

    Sorry, have no time to support several releases. So, PlayHome users will have only MAJOR releases, minor you must made by yourself

    How to update to latest minor version:
    1. Download latest major release for PlayHome and install it:
    2. Download latest minor release for Studio/NEO from this thread and NOT install it
    3. Copy the latest version of files in Lib to Plugins/Console/Lib, replacing old one

    PS: Sorry, PlayHome is not in my main interest. So, PlayHome version can contain bugs and updates non-frequently.

    Short changelog (only main versions)
    Spoiler

    1.0 - supports Studio
    2.0 - supports NEO
    3.0 - supports CharaStudio
    4.0 - animated cameras
    5.0 - full supports NEO+CharaStudio, automaking game list, params in INI file
    6.0 - VNSceneScript appears
    7.0 - supports PlayHome Studio
    8.0 - VNSceneScript 2.0 (simplified playing), first VNFrame support (handling state changes) for all engines
    8.5 - full VNFrame release and help (full scene state handling for NEO-engines)
    9.0 - skin support, SimpleNovelManager added
    10.0 - full UTF-8 support on all engines
    11.0 - VNFrame 3.0 and VNAnime 1.0 - now you can make animation clips with Bezier curves


    Old versions and full changelog
    Spoiler

    Old versions
    v1.0: - only for Studio
    Link: https://mega.nz/#!Y7pSjZwA
    Key: !TDq-6WxzHBcN66wNc_ng865uKVzAS3kUUgWD3paFx5U
    v2.0: - support Studio and NEO, keyboard navigation and camera changes
    Link: https://mega.nz/#!A7hiBAZQ
    Key: !sB9aaJ-8_3NQUxY0Kh3oGSHqipZWLdyHAUkMSMuX4-I
    v2.1: - support animation in-scene changes in Studio
    Link: https://mega.nz/#!17IX0T7K
    Key: !U51hmxkAXdukZBaV7IJkCDf-rOYn66geV0nQK-i2X5k
    v3.1:
    Link: https://mega.nz/#!VuBAHK5Q
    Key: !bmvmQv9egkfgbxTiHMz-moRnpnMXKWbJAbUVrozgkeo
    v4.0:
    Link: https://mega.nz/#!JyRBlaDI
    Key: !DKRXEfTm4e8hE9JhN5oURfm6SsIyPd7WIDlJfP_0uY8
    v5.0:
    Link: https://mega.nz/#!FrpwDC7T
    Key: !Cn48GHEjh5jMdkOV9YkpJMZtiHDErg8xWetGLJQZ6Xc

    v6.0 for Studio/NEO
    Link: https://mega.nz/#!N75REYxS
    Key: !gP9f0bRtYQ5nupVEg0zHkHCaKhhkaj8WIv9vEZJPqdc

    Folder with other versions (since 6.0):
    Link: https://mega.nz/#F!t25CDITL
    Key: !Nwi9e3CA9YabdUm5U5ll5g

    Changelog:
    2.0
    - added NEO support, some refactor
    2.1
    - for Studio - added change_female_num_animation and change_male_num_animation
    3.0
    - added CharaStudio support (Koikatsu game)
    - added updFunc param for call on latest update
    - due to updFunc feature also added "Loading scene..." feature during scene loading for all engines. See "load_scene" function for example
    3.1
    - Studio: self.isDevDumpButtons removed, for dump camera use Ctrl+F4, dump scene - Ctrl + F5
    - All engines: set_timer function available. Example in maingameunstablefeatures
    - All: functions anim_sim_zoom_in and anim_sim_zoom_out available. Example in maingamedemo
    - All: return to main screen using Ctrl+F2
    - Studio: anim_to_camera_num and anim_to_camera funcs available. They are for animation move between cameras.
    Latest param is animation style - linear,slow-fast,fast-slow,slow-fast3,fast-slow3,slow-fast4,fast-slow4
    - Studio: added high quality demo for manipulating chars - Ruris Dream by Kningets
    4.0
    - NEO,CharaStudio: dump camera using Ctrl+F4, move_camera func available
    - NEO,CharaStudio: anim_to_camera, anim_to_camera_num funcs available
    - NEO,CharaStudio: changed to_camera function to more correct code
    - NEO,CharaStudio: internal changes - common code moved to VNNeoController
    - All: game.isHideWindowDuringCameraAnimation option for hide game window during camera animation
    - All: function on end camera movement can be defined
    - All: funcs show_blocking_message, show_blocking_message_time, hide_blocking_message available. Used during dump camera or scene
    - All: return to main screen switched to Ctrl+F3
    - All: params can be passed in Buttons actions - if it is tuple.
    Example: game.set_buttons(["Simple examples", "Advanced examples"], [simple_tests, (adv_tests, "Advanced examples as param")])
    def adv_tests(game, param):
    - Studio: specific code moved to vngameenginestudio.py
    - NEO,CharaStudio: manipulating characters functions + dumping scene (Ctrl+F5):
    -- save position, rotation, scale for chars
    -- save animation state for chars
    - NEO,CharaStudio: new advanced cool camera moves:
    -- try game.anim_to_camera_num(3, param, {'style':"linear",'zooming_in_target_camera':6}) # cool camera move with zoom-out - zoom-in
    -- try game.anim_to_camera_num(5, 0, {'style':"linear",'add_distance_target_camera':-0.2}) # this is example of slow zoom out - 5 seconds, -0.2 camera distance from 0 - current camera
    - All: menus features - see examples in techdemo
    - All: use Ctrl+F6 to print list of scene chars in Console
    5.0
    - NEO,CharaStudio: buttons works with mouse clicking
    - All: function to set background to arbitrary PNG-file - use game.scene_set_bg_png(filepng) (filepng must be in all scenes game folder)
    - All: unified code for camera animation and targeting
    - All: techdemo - new cool options and demos for camera movement
    - All: set_buttons_alt function - example:
    game.set_buttons_alt([ # set_buttons_alt receive 1 array intermediately placed Text and Functions
    "Text test", toText,
    "Timer test(15 seconds)", toTimer,
    "System message", toSysMsg
    ])
    - All: game autoprocess large number of buttons, splitting it by pages by game.maxBtnsBeforeSeparator items.
    By default game.maxBtnsBeforeSeparator = 5, so max 5 buttons on page.
    See example in techdemo / Simple examples - how 10 buttons in a row processed.
    So, you don't need to manually split buttons/actions by pages - game do it by itself
    - All: automaking list of available games
    first line of your game must be
    #vngame;<engine_name>;<game_name>
    Engine names are: studio, neo, charastudio (also "all" in case of your game is engine-independent - like in examples)
    As an example:
    #vngame;studio;Ruri Adventure
    - All: autoreloading game during the next run (after Ctrl+F3) - so, you can change it and reload without reloading Studio
    - All: autochoose the correct engine (no switch between Studio/NEO/Chara) using vngame_window_autogames_uni() call in Console.ini
    Also, no annoying windows in games itself
    - All: support for AutoTranslation of game texts using XUnity.AutoTranslator. So, you can see the game texts on your own language!
    Detailed desc in AutoTranslation_desc.txt
    - All: some options - keys for buttons, show/hide, reset and auto-translations are located in vngameengine.ini file. Edit it carefully!
    6.0
    - All: INI can be configured to run games by hotkeys
    Hint for developers: game code will be reloaded by hotkey run, so it extremely useful for debugging
    - All: INI key shortcut for hot reload of full vngameengine.py
    - All: INI option for start at hidden mode
    - All: Developer console instead of direct dump calls. Enabled by Ctrl+F4 (config in INI)
    - Chara: known BUG: temporary return to_camera function to simulating key presses.
    Due to unknown reason we are not always setting camera at correct position by num by classic code.
    - All: INI option to disable keyboard shortcuts for buttons
    - NEO, CharaStudio: VNSceneScript engine released!!!
    VN Scene Script is a framework/script for running stories, written in folder names just in scene files.
    So, in simplest cases you don't need PY scripts at all - just scene.png file
    - NEO, Chara: added functions to run VNSceneScript scenes as intro with returning to main game
    function: vnscenescript_run_filescene(file,onEnd)
    see example in techdemo
    - CharaStudio: functions to get and set frames for scene
    scene_set_framefile and scene_get_framefile (see in techdemo)
    - All: optimization: autogames feature scan only .py files
    6.5
    - Neo,Char: fixed bug in HSNeoOCIChar.animate function
    - Neo,Chara: HSNeoOCI has property visible_treenode to manipulate treenode
    - also set_parent function
    - All: set_timer allows you to pass tuple as onTimerEnd function
    - Neo,Chara: HSNeoOCIFolder class available, added to techdemo
    - Neo,Chara: lots of properties for HSNeoOCIChar - look eyes etc.
    - All: set_buttons(_,_,"compact") for place buttons compact (up to 8) on screen
    - Neo,Chara: HSNeoOCIFolder has static functions add, find_all, find_single, find_all_startswith, find_single_startswith
    - Neo,Chara: Added dummyneoclasses.py file to get dummy classes for Studio internals.
    - Neo,Chara: HSNeoOCIChar contains much new functions
    - VNSceneScript updated to 1.1:
    -- Added Developer utils - button to add typical header
    -- Devutil: save action with current camera in debug mode
    -- Devutil: can add dummy texts on default cameras
    -- Devutil: sync with file vnscene_sync.txt (you can load commands from external text file, not write it in Studio!)
    7.0
    !! ready for PlayHome - engine, demos etc.
    !! (Main was tagged set of NEO-engines - NEO, PlayHomeStudio, CharaStudio)
    - All: error handling for incorrect menu calls
    - Main: functions for manipualate backgrounds - see techdemo
    - All: param game.isHideGameButtons - for temporarily hiding the buttons
    - All: adapted set_timer and clear_timer functions (thanks countd360)
    - All: auto stop camera animation during set new camera animation (thanks countd360)
    - All: added game.onSetTextCallback param - if you want to made some auto-actions during set_text call (needed for framework authors)
    - Studio: fixed a bug with camera animation and reset
    - Main: game.onDumpSceneOverride param - set it for your own dump scene script
    - VNSceneScript 1.2
    -- Cleanup after finishing game (for fast garbage collection and increased performance)
    -- Dutil: added function dutil_syncwithfile_full
    7.5
    - Main: HSNeoOCIItem added to manipulate items
    - Main: functions scene_get_all_items, scene_get_all_folders
    - Main: functions HSNeoOCIChar.add_female(path), HSNeoOCIItem.add_item(no)
    - Main: functions HSNeoOCIFolder - rot, pos set/get
    - Main: global functions dump_selected_item_tree() and load_item_tree(obj,parentItemTreeObj) for saving item tree and load it
    - Main: dev console - ability to dump selected item tree
    - All: define your own custom buttons interface when you need - colorize, labels, etc - all Unity abilities
    use game.set_buttons_alt([],("function", custFunctionGUI)) for this - example in techdemo
    - Main: HSNeoOCIChar.as_actor property - return Actor from countd360 framework
    - Main: include vnactor.py - Actor class from countd360 (thanks!)
    Actor allows to manipulate chara in different ways. It was developed for CharaStudio, but usable in NEO too.
    - All: try to clearing game data after returning to main screen
    (Please, save your game information in game.gdata property - it will be cleared automatically)
    - Main: integrated Actor and Props framework. New functions available:
    scenef_register_actorsprops (for registering actors and properties)
    scenef_get_all_props, scenef_get_all_actors, scenef_get_prop, scenef_get_actor
    - Main: integrated fake lip sync (thanks countd360). Example can be found in all demos - it's modified Simple game demo
    v7.6
    - All: call_game_func achieved calls like [func] and ([func] param). This calls don't pass game params to func
    - All: key shortcut for restart current game - F10 (INI)
    - All: key shortcut for run VNFrame developer console - Ctrl+F5 (INI)
    - Main: dump camera bug fixed
    - Main: dump scene bug fixed (on non-latin chars) (i hope)
    - Main: lip sync moved to vngelipsync,
    - Main: lip sync - you can define engine for lip sync! set self.fAutoLipSyncVer = "v10" or self.fAutoLipSyncVer = "v11"
    - Main: VNActor updated to 1.1
    7.7
    - All: get_engine_id() function return name of engine
    - VNActor and VNFrame v1.2.1 - more powerful functions, more simple code, script_helper to made an animations
    (script_helper mostly support only CharaStudio at now) (great thanks to @countd360)
    - VNSceneScript 1.5:
    -- Dev: some useful buttons
    -- A action: return no more than 3 params. Third param can contain : symbols (needed for vnframe ext)
    - VNSceneScript: vnframe10 extension. This extension provide a way to use VNFrame functions inside VNSceneScript!
    -- So, you can change almost whatever from VNSceneScript - blush, movement, cloth, juice etc. and also animate some props!
    8.0
    (sorry, no tutorials for new features, please, wait for next versions)
    - Main: dev console button "VNFrame scene dump"
    - Main: functions scenef_clean_actorsprops, scenef_get_propf (return Prop)
    - All: event system - allows your code "listen" to some events in system
    -- functions event_dispatch, event_reg_listener, event_unreg_listener
    -- example is in techdemo
    -- available system events:
    set_text - on set_text call
    update - on every update (please, use it wisely, it calls frequently)
    before_scene_load (calls only during system load_scene call)
    before_scene_unload (calls only during system load_scene or reset calls)
    - listeners auto-clean during return to main screen (end game and cleaning functions)
    - All: game.scenedata var
    Please, use this var for save scene-specific data - links for objects etc.
    game.scenedata autocleans during scene unload
    - VNFrame and VNActor updated to 1.2.3 - support for NEO and PlayHome, but on limited properties
    limitations for NEO, PlayHome: no FK/IK support, no cloth/accessory changes, no juice handling.
    almost all other supported (pos, rotate, scale, visible, face and neck states)
    aditional limitation for PlayHome: not all face states
    VNFrame contains hack for run VNSceneScript_helper
    - VNSceneScript 2.0
    !! acode construction
    - dev utils for new version
    - version is saved in game.scenedata.scVer
    - internal vars moved to game.scenedata to correct cleaning
    !! "nul" action - do nothing
    - in text actions - "\n" replaces to \n
    !! "txtf" action - show text as third param, can contain ":" symbols;
    example :a:1:txtf:s::Some text with : symbol
    - flipsync10 extension to start engine fake lip sync
    -- VNSceneScript_helper for VNFrame (file vnframe_vnscenescripthelper)
    - provides a fast way for making states in Studio interface
    - support NEO, PlayHome, CharaStudio
    8.1
    - VNActor and VNFrame v2.0 - full support for NEO and PlayHome (thanks to @countd360)
    (and also a lot of other features in them, waiting for tutorials)
    - Mains: changed scenef_register_actorsprops, scenef_get_propf for correct work with Actor 2.0
    - HSNeoOCIChar: changed as_actor for correct work with Actor2.0
    8.2
    - NEO: removed unused reference clr.AddReference('UnityEngine.UI.Translation') from console.ini
    - VNFrame docs added (see folder VNFrame docs)
    - VNFrame_VNSceneScript: added option "EXCLUDE FK&IK&Voice". Option allow remove this options from full/diff dump (if you want minify it).
    - techdemo: added example for using VNActor
    - VNFrame and VNActor updated to 2.1
    - VNSceneScript 2.1
    -- Devutil: sync with files acode, sync
    -- Devutil: template for v20
    -- Devutil: colorizing buttons
    8.5
    - Main: added VNFrame Tutorial for all engines! (thanks @countd360)
    - All: INI - up to 10 games run using keyboard shortcuts
    - Main: sync_h function for syncronizing female and male animation
    - VNSceneScript updated to 2.2
    -- Devutil: added extension vnframe11
    -- Devutil: added extension gagency01
    - Main: VNFrame and VNActor updated to 2.2
    - Chara: finally included Laboratory Girl high-quality demo (thanks @countd360)
    8.6
    - All: gpersdata set of functions. Allows you to auto save/load game data.
    gpersdata_load(), gpersdata_save(), gpersdata_set(param,val), gpersdata_get(param)
    Examples are in techdemo / Simple Examples
    - All: checkpoints set of functions. Allows you to make galleries, game checkpoints etc.
    Examples in All Demos / Main Demo with checkpoints
    - VNActor and VNFrame updated to 2.3
    - Mains: fixed small bug in scenef_register_actorsprops()
    8.7
    - VNActor and VNFrame updated to 2.3.2
    # - allow call "game_func" to run game functions
    # example: {'game_func': [(sup_print, "1"), (sup_print, "2")]} or {'game_func': (sup_print, "test1")}
    - dump_camera - added , to vnframe code
    - folders in prepare_auto_games() list (thanks to @Kningets)
    Examples: #vngame;neoemos/Subdemos/Demo game 1, #vngame;neoemos/Demo2
    Also rules: please, use from now folder Demos for demos, Utilities for utilities.
    - rule for lip sync - if text started with "!", no fake lip sync starts (see simplegamedemoadv2 for examples)
    - vnlibfaceexpressions.py - face expressions lib. Allows you to change face in standart script.
    example of use: game.texts_next([
    ["me//angry_whatyousay", "What are YOU say??"],
    ]...)
    examples in simplegamedemoadv2 (for NEO - simple game demo - lip sync in All demos)
    8.9 (9.0 beta)
    - All: skin system!!
    -- there are three skin in package: skin_default, skin_renpy, skin_customwindow
    -- for VN skin_renpy is best (see Simple game demo)
    -- for utils like ScriptHelper you can use skin_customwindow
    -- you can dev your own skins, see skin_renpy or skin_customwindow as reference
    - Main: VNActor and VNFrame 2.3.5 - updated for FK items and skin system (thanks to @countd360)
    - Main: Dev console has VNActor select dump allows you to dump state of selected chara in tree (even without id)
    - Main: libfaceexpressions 1.1 - added lot of NEO male faces (thanks to @cochese42)
    - All: markupreplacer lib - some text processing if you want (thanks to @cochese42)
    - Main: vnscenescript - you can set default skin for your VNSceneScript (INI)
    8.10 (9.0 beta 2)
    - Main: HSNeoOCIProp class. This allows you to convert object to correct Prop class from VNActor.
    - Main: global params HSNeoOCIChar.globalActorClass and HSNeoOCIProp.globalPropClass
    this uses for overriding actor and prop classes due to concrete using
    (for example, if you detect a plugin and want to share additional properties)
    it's not good to use them, but it's necessary for some cases
    - VNFrame 2.3.8 - allows you to pass object as 'act' function params.
    9.0
    - All: show version, start text adjust to it
    - All: Console window hidden at startup, to see it change showAtStartup=1 in Console.ini
    - Mains: integrated Simple Novel Manager 1.1 - now available from main screen
    - VNActor 2.3.9
    -- contains import_status for Prop and Actor
    - skin_renpy 1.1 - reduced window height, set up max buttons
    - All: skin system allows you set max number of buttons in params
    - All: simplegamedemo uses skin_renpy by default
    9.1
    - Mains: Added HSNeoOCILight, HSNeoOCI now supports OCILight (thanks to @chickenman)
    - VNFrame 2.3.10 - chickenman, Keitaro (thanks to @chickenman)
    # - added support for OCILight as Prop
    # - import_status_optimized_diff for Actor
    - VNFrame (register_autoprops) supports -propchild: property (needed for Light handling)
    - extplugins.py 1.1 added - for extended plugins handling (thanks to @chickenman)
    9.1.1
    - All: fixed bug in CustomGUI calls in skins: default and renpy. Now "game" param is sent as first param.
    10.0
    - CharaStudio, PlayHome: UTF-8 support! (some libraries added to X_Data/Managed)
    - All: functions file_get_firstline_utf8, file_get_content_utf8
    - Main: VNFrame 2.4 - (thanks to @countd360)
    # vnactor:
    # - support IK&FK mode, need extplugins.py.
    # to use IK&FK, need HSStudioNEOAddon.dll for NEO, PHSAddon.dll for Playhome.
    # - Support for light extends to Playhome and KoiKatsu.
    # Though the light support is not good in playhome and koikatsu, these function still work.
    # (To add a light in playhome you need PHIBL.dll. And light in koikatsu can not effect character.)
    # vnframe:
    # - support UTF-8!
    # - [Create TAG] button in ScriptHelper can create -propchild: tag for lights now.
    - PlayHome: extplugins support PHSAddon.dll (thanks to @countd360)
    - Main: Simple Novel Manager v1.2
    # - UTF-8 support in config and text files
    # - support "skin" param in config. Example: "skin": "skin_renpy"
    - Main: VN Scene Script v2.3 - UTF-8 support during sync with text files
    - All: added libjsoncoder lib (thanks to @chickenman)
    - HSNeoOCILight: fixed bug with pos and rot properties
    11.0
    - All: Ctrl+F3 doesn't reset current scene - so, back to menu freely )
    - extplugins:
    -- NEO: support HSStudioNEOExtSave,
    -- CharaStudio: pre-support KKPE
    - Main: VNFrame 3.0 (3.1.3)! (by @countd360)
    vnactor 3.0:
    - import_status_diff_optimized() function for Prop
    vnframe 3.0:
    - A new feature: "key frame clips" added!
    - Create and manage key frame based animation clips in Script Helper!
    - A clip can animate tagged actors and props, camera and system, and sync which another clip.
    - Several clips can be run in the same time. So you can create one clip for one actor, or
    even several clips for one actor, and then run them at same time to make an animation.
    - Clip can be controlled in act script like a game build-in anime.
    Clip status can be dumped by script helper.
    - In script builder can choose which actor/prop/clip you want to dump now.
    - Auto script template update:
    - Support key frame clips
    - Support skin selection
    - Choice to show a "restart" button the end of game
    - Choice to use quick reload, which restart game without reload the scene file.
    - (act function) call import_status_diff_optimized for Prop and Actor instead of direct processing.
    - [Create Tag] button in scene helper will register the new tagged object to actor/prop automatically.
    vnanime 1.0:
    - The new key frame animation clip engine.
    Also:
    - vnframe 3.1.3 - add IK&FK mode for KK
    -- NEO, PH, CharaStudio: VN Frame Tutorial 2 (in Demos section) to understand new features!
    11.5
    - vngame_window_autogames_uni_1init(), studio_wait_for_load() - for solve problem with loading timeout on start
    - changed Console.ini to adequate load on start
    # extplugins 2.2 by @countd360
    # - NEO: HSStudioNEOAddon - Add some function to support play MMD
    # - KK: KKVMDPlayPlugin - a plugin to support play MMD
    # vnactor v3.2 (beta) (Keitaro)
    # - Support for add data from external plugins to export_full using options from vnactor.ini
    # - NEO: support save/load HSNeoExtSave (HSStudioNEOAddon.dll) plugin data in "sys"
    # vnactor v3.2.1 (Keitaro)
    # - Error wrapping in face_to_full call
    11.6
    - warning if you have problems with UTF-8
    - added testutf8.py file
    - small changes in vnframe v3.2.1 - removed UTF-8 header to increase compatibility
    11.7
    - fix some bugs in startup - removed incorrect CameraControl import, added debug info in vngame_window_autogames_uni
    - vnanime 1.1.3 - removed utf-8 dependence
    - extplugins 2.3 - HSPENeo plugin support
    - vnactor 3.3 - HSPENeo plugin support
    (to save actor's HSPE data during making VN or using SSS set ExportChara_HSPENeo=1 in vnactor.ini)
    11.7.1
    - CharaStudio, PH: fixed bug with loading - set console ShowAtStartup=1
    11.8
    - new demo - demovnscenescriptbased.py - how to make a game based on VNSceneScript files
    !! vnframe v3.2.2 (Keitaro) - fix for correct work with VNSceneScript
    # - fix for using act function without game.gdata.kfaManagedClips
    - pre-support of KKPE (works on internal version, don't use it for now):
    extplugins 2.4, vnactor 3.4
    12.0
    - VNActor v3.5 (Keitaro)
    # - support functions - bytearray_to_str64 and str64_to_bytearray
    # - CharaStudio: save neck params when position Fixed - 'face_to_full2' param (optimized version to use str64)
    # - NEO: save neck params to str when position Fixed - 'face_to_full2' param (optimized version to use str64)
    # - CharaStudio: ready for KKPE 1.2.0+, use ExportChara_KKPE=1 in vnactor.ini
    # - CharaStudio: error handling for FK set
    # - CharaStudio, NEO: export cur clothes, use ExportChara_CurClothesCoord=1 in vnactor.ini (for NEO may be buggy)
    - extplugins 2.5
    # - CharaStudio: Screencap plugin support


    If you get error (during some program run etc) and want to send info about it...
    Spoiler

    1. Toggle Python Console:
    set up ShowAtStartup=1 in Console.ini (located in Plugin/Console or BepInEx/Console)
    2. After run Studio you will see Console window. Please, don't close it - just switch back to Studio (like Alt+Tab)
    3. Reproduce error. Then, switch back to Console and see error log. Please, send this information with error description.


    FAQ for setup environment
    Spoiler

    I want to change keyboard shortcuts, how to do that?
    Edit vngameengine.ini (Plugins/Console/Lib), section Shortcuts

    I want to run my game/util by some shortcut
    See vngameengine.ini (Plugins/Console/Lib)
    - in Options section set GameX(Game1, Game2 etc.) to filename of your util/game. Example: Game2 = scenesavestate
    - in Shortcuts section set GameX(Game1, Game2 etc.) to choosen shortcut. Example Game2 = F4

    I don't want to see VN Game Engine window immediately after startup
    See vngameengine.ini (Plugins/Console/Lib)
    - in Options section set StartHidden=1

    I want some game texts be autotranslated...
    (this can be difficult)
    See AutoTranslation_desc.txt in Plugins/Console/Lib folder and follow the instructions.


    FAQ for VN developers
    Spoiler

    How to make my first game?
    1. See Simple game demo - this is the simplest example.
    2. See simplegamedemoadv.py - code for this game
    3. Try to change something to understand it.
    4. Make a copy of this code and some scenes for your own - and this will be your first game!

    or, if you afraid of code in Python, and want make only simple kinetic visual novels from start
    - check Simple Novel Manager here: http://www.hongfire.com/forum/forum/...28#post6568928
    - or see section Easy way to make Kinetic Visual Novels (VN with no choices) without writing a code below

    How to place my game in game list?
    just set first line for your .py file as
    #vngame;<engine_name>;<game_name>

    Examples:
    for Studio -
    #vngame;studio;My Cool Game
    for NEO -
    #vngame;neo;My Cool Game
    for CharaStudio -
    #vngame;charastudio;My Cool Game
    for PlayHome Studio -
    #vngame;phstudio;My Cool Game

    How to make in-game choices?
    See maingamedemo.py examples

    How to animate between cameras?
    See Simple game demo - there are one simple animation.
    For advanced examples see - Tech demo / Advanced examples / Animated camera movements section

    Can I move camera to arbitrary position, not-saved in scene?
    Yes, using dumping a camera. Press Ctrl+F4 and read dumpython.txt for code.
    Also, see examples in Tech demo / Advanced examples / Animated camera movements section

    I want to manipulate characters state - change clothes, animations. How can I do that?
    We have advanced technics to make games for NEO-based engines (not Old Studio).

    So, please, pass these tutorials (you can see one or all of them):
    - pass VNFrame Tutorial and Tutorial 2 (included as game in VNGE installation package)
    - see VNFrame docs (located under Lib/VNFrame docs)
    - see Express Tutorial for animators by @KoramaAnte from Discord (thanks)
    - install and see video for Scene Save State mod (it provide easy way to switch between scene states)
    - see VNSceneScript fast tutorial

    (if you work in Old Studio, see Ruris Dream demo by Kningets (not recommended, it's pretty old))

    My game doesn't work with non-Latin chars! What to do?
    Add the following line into your python file.
    Code:
    Code:
    # -*- coding: UTF-8 -*-
    Insert it at the second line of you python, save your file in UTF8 encoding. And you should able to use UTF8 in texts. Refer to vnftemplate.py for example.

    NEO: When I call load_scene, my Advanced IK information doesn't load (plugin HSStudioNEOAddon.dll)! What to do?
    Solution here: http://www.hongfire.com/forum/forum/...68#post6538368

    What if I want save and load state of character/folder/item?
    See code snippet here: http://www.hongfire.com/forum/forum/...50#post6564750

    When I use VNFrame/SceneSaveState, can I save some extended data like Advanced IK, HSPE, KKPE etc.?
    In case if plugin supported.
    You can toggle save additional info in vnactor.ini, when you need it. (Loading will be processed automatically, besides of these options)
    Warning: all of these options significantly increase dump size! Also, all of them may be buggy!

    [neo]
    ExportSys_NeoExtSave=0 - this will save Advanced IK info
    ExportChara_HSPENeo=0 - this will save HSPE
    ExportChara_CurClothesCoord=0 - will save current clothes info

    [phstudio]

    [charastudio]
    ExportChara_KKPE=0 - will save KKPE
    ExportChara_CurClothesCoord=0 - will save current clothes info

    <another question>
    - please, read start of vngameengine.py file, and also try all techdemo.py demos
    - ask on this theme


    Easy way to make Kinetic Visual Novels (VN with no choices) without writing a code
    Spoiler

    Actually, there is a TWO ways to do this.

    1. You can use ScriptHelper by countd360 - (it's a little bit complicated, but you can make animations etc.)
    How:
    - please, see Demos / VNFrame Tutorial game demo
    - also, please, read PDF-s in Lib/VNFrame docs

    2. You can use Scene Save State and Simple Novel Manager together - (as for me, it's easier. Also, you will get editable scenes in future)
    How :
    See video here: https://mega.nz/#!86pkAAiS!KUCIs19c6...ZxUSixVsu78_8U
    (warning! you need at least v11.8 to do this!)

    or read text below:

    1. Download and run Scene Save State mod for VNGE. This mod allows you to save multiple scene states and cameras.
    2. Use it to make scene states and cams you need. When you need VN text, please, set checkbox "Use cam in Visual Novel". (Not checked cams will not be exported; but all states will be)
    3. When you'll be ok, goto tab Load/Save and press button "Export to VNSceneScript". This will add some folders make a scene playable by another engine - VNSceneScript (it's a simple player for novels, located inside folders)

    4. Save and test your scene. Close Scene Save State and press F8 - this will run VNSceneScript player. Hope all is ok. If you will not satisfied, you can edit it once more time, and export too.

    5. If you are satisfied you are able to:
    - send everyone this scene as VNSceneScript file (and novel inside it)
    or
    - make a VN with a number of such scenes (see step 6)

    6. (Bonus). Collect all VNSceneScript scenes you need in your novel.
    Open folder in your scene folder and find "simple_novels". There are novels for Simple Novel Manager (second button on main screen).
    Copy demo folder and:
    - change something in _sn_config.txt to name your novel.
    - just add your prepared VNSceneScript scenes to folder. DON'T make text files for them!!

    Return back and run your Simple Novel. Your scenes will be played one-by-one.
    ​​​​​


    Screenshots is in attachements.
    Video demos and tutorials: https://mega.nz/#F!B6gywAoJ!Yis0wDeuTprEop0XDs2qpw


    ---

    Feel free to redistribute it on other sites, or steal some parts of it.

    Want to support? Share here your scene, game, or at least say "thank you" in comments.
    Attached Files
    Last edited by keitaro1978; Yesterday, 01:10 AM. Reason: v12.0 released

  • Important info for NEO users:

    ARKTIC on Discord server says that:
    The UTF-8 Libs ERROR Caused by UtinyRipperCore.dll(Mod name:HSResolveMoreSlotID 0.9)

    (I not tested this)

    Comment


    • keitaro1978 The issue with rotations in animations (where the rotation goes aaall the way around instead of a little movement when the rotation is from i.e 350 to 10 or 10 to 350) is killing me.
      I looked quickly at the code, wouldn't doing the lerp on a quarternion instead of a vector solve the issue (maybe I'm totally wrong on this though, as I said I only took a quick look at the code)?

      Comment


      • cochese42
        cochese42 commented
        Editing a comment
        It's possible the devs aren't familiar with the implenetation, could you perhaps look at the code and suggest and approach?

    • Originally posted by keitaro1978 View Post
      Important info for NEO users:

      ARKTIC on Discord server says that:
      The UTF-8 Libs ERROR Caused by UtinyRipperCore.dll(Mod name:HSResolveMoreSlotID 0.9)

      (I not tested this)
      Not sure why he thought that since UtinyRipperCore isn't even used in the plugin, but the issue is fixed in the V1.0b. It was because of a codepage 437 patch I did for SharpCompress with harmony but forgot to ref the result. This was ok for SharpCompress but guess VN Engine didn't like that...

      Comment


    • countd360 With the clip manager, is there a way to create a loop of a clip and then play another animation after that loop has finished?
      e.g. I create a clip with 30 frames, then loop it twice, so it becomes 60 frames. I set a clip to play at 60 frames, but this doesn't work.

      Comment


      • countd360
        countd360 commented
        Editing a comment
        Sorry, no such solution.
        May be you can try to create a 'manager clip', which only start/stop other clips.

      • countd360
        countd360 commented
        Editing a comment
        cochese42 Sorry, no such solution.
        May be you can try to create a 'manager clip', which only start/stop other clips.

      • cochese42
        cochese42 commented
        Editing a comment
        Ah, ok, thanks. I thought I saw some question/answer from you about this before, but I couldn't find it in the thread.

        Hmm, I'll have a think about it, but I guess it would be a plug in to your plugin? I'm not sure how to do that. If you have any advice, I will consider it.

        The new clip manager is so good, btw, it really makes things much, much easier. Thanks again.

    • Hi guys, I might need some help. I updated the vn game engine on play home from version 9.0 to 11.5 and now it doesn't load anymore. Shoud i reroll to a previous version or is the issue something else?

      Comment


      • cochese42
        cochese42 commented
        Editing a comment
        Hey Omarcxc, To help, can you please provide as much detail about the problem as possible. Do you see any errors? Deos the console load? Does it appear then disappear? etc.
        Some of the defaults changed, so you might just not be seeing it, since it's hidden by default now, I think. Try using CTRL+F8 to open it, or checking your console.ini file for the startup behaviour.

      • OMARXC
        OMARXC commented
        Editing a comment
        It's fixed! The console wasn't loading so I went to console.ini and changed the "show the console at startup" value to 1. Thank you so much.

      • cochese42
        cochese42 commented
        Editing a comment
        OMARXC nice. Always good when it's simple

    • I'm having an issue with the Scene Save State mod. When switching between scenes, the plugin will fail and produce the output shown in the attached file. I have tried uninstalling multiple mods and plugins and i can't seem to find the culprit. Could you provide any insight on this?
      Attached Files

      Comment


      • keitaro1978
        keitaro1978 commented
        Editing a comment
        Hm. Seems you have problems during set up FK items on some char. So, try to find something related with FK handling.

      • gerdeman
        gerdeman commented
        Editing a comment
        Yeah i posted it there but I was told to move it here XD. I already deleted my other post. I'll move it again if you want. I got rid of all plugins which affect FK but the problem still persists. I'll continue troubleshooting and post the fix if I find one.

      • gerdeman
        gerdeman commented
        Editing a comment
        So after plenty of testing I determined that it was these two mods: [yamadamod]acchairB rev21, [yamadamod]acchairS rev6.
        Kinda sucks because I use this mod for all of my characters hair but i can work around it for the scene. After removing the hair accessories and using the vanilla hair system I no longer run into the issue. Thanks for the help everyone.

    • Thank you for the wonderful MOD.
      But, "def animate(self,group,category,no,animePattern,animeS peed):" function is very difficult.
      Because I do not know which animation will be which parameter.
      I tested it with various parameters, but I felt that there was no regularity.
      Is there a way to check the animation parameters?

      Comment


      • Ctrl + F4 OK.
        I could check the animation parameters.
        I will try a snippet as well.
        Thank you so much.

        Comment


        • keitaro1978 Hello, I did a quick and dirty fix for the issue with rotations if you are interested. Decided not tu use quaternions as I was lazy and my knowledge of python is pretty much non existent.
          In the paramInterpolater function, assuming that if anything has a difference of over 180 it's a rotation (dirty, as I said):
          # try to interpolate as float
          isRotation = False
          if float(paramTo) - float(paramFrom) > 180 :
          isRotation = True
          paramFrom = float(paramFrom) + 360
          elif float(paramFrom) - float(paramTo) > 180 :
          isRotation = True
          paramTo = float(paramTo) + 360

          updParam = float(progress) * (float(paramTo) - float(paramFrom)) + float(paramFrom)
          if isRotation :
          updParam %= 360
          return updParam

          Same thing can be done over x,y,z for a Vector3.

          Comment


          • Where do I find the older versions for download? I upgraded from 9.0 to 11.5 and now for some reason the console does not show up any more when I start Koikatu's CharaStudio. I would like to try a version prior to 11.5 ...


            EDIT: Okay, I did the same thing as the guy who had this problem above, I set "show console at startup" as 1 in console.ini.

            Now the console appears in the charastudio, however, in addition to opening the charastudio, it opens another executable with a command console. I will ignore this other executable and continue using it anyway.
            Last edited by tkcorp8000; 02-26-2019, 07:10 AM.

            Comment


            • Hi guys, how do you set the FK mode of an object that isn't set to FK enabled in the scene PNG file?

              I haven't been able to figure it out. My scene starts with an item with FK off, but then I start an anim where it needs to be enabled, but it just ignores the setting in an ACT or in ANIM.
              I've tried getting the prop with scenefgetpropf then calling setkinematic (mode to 1). But this fails with PropHSNeo object has no attribute setkinematic.

              I don't see how it's being set in the source code, either, the closest thing I can find is self.objctrl.isFK but that is read-only, I think. I'm sure it must be set somewhere, so I would appreciate it if anyone has a pointer...

              NOTE: I had to change the code to get it to submit properly.

              Update: I see it applies to some items and not others. With SOS Cock (Soft), I need to enable FK in the UI and save it as part of the scene in order for FK to work, but this isn't true for other items.

              Update: Holy shit! HF threw errors 6 times when I tried to post this and today I see that all 6 were submitted! Sorry for spam, I've removed them now.

              countd360 Also, there's a tiny bug in vnframe.py: line 2045 has 'aelf instead of 'self'.
              Last edited by cochese42; 03-07-2019, 09:44 AM.

              Comment


              • Just installed VN Game Engine first time, installed 11.6.
                If I select "Demo: simple game" it seems to work OK.
                But if I select "VNFrame Tutorial for Neo" (or Tutorial 2) it will load a girl waving then just sits at "Loading scene..." forever. Most other selections in the menus do the same thing.

                Comment


              • countd360 Hi, every nnow and then, I get this weird problem where the FK+IK just doesn't get applied on a character during an anim. It will run fine if I manually enable it (note: it already appears to be enabled in the UI - both lights are green) and then use clip manager to play the anim, but if I'm running a scene and the act calls and anim, the FK+IK is only set to IK (rather than both, which is what I almost always use). Obviously this breaks the anim, but I cannot find why it's doing it, I've re-created the anim several times now from that original anim keyframes and each time it has this behaviour... it's so wierd. I have compared the original to the new ones and I actually can see no difference... I wonder if the FK/IK set is corrupted somewhere and FK isn't being enabled because of a silent error? Nothing appears in console.

                Similarly to the Irem FK issue I posted previously, I've tried enabling FKIK with the setCharKinematic function, but that doesn't seem to have any effect, as if it is already aware it is enabled (which it seems to be according to the UI).

                One thing that is consistent, when it isn't working and I turn on the 'handles' to see the nodes, both the FK and the IK nodes are visiblein the body, which isn't normal (in my experience). When FK+IK is enabled, only the IK joints are normally visible (e.g. shoulders, wrists, neck etc. But when this problem occurs, it seems I can edit both the IK AND FK nodes, though it doesn't save them properly, ,obviously and changing them, disabling/enabling resetting them etc. doesn't make it work.

                It's just occured to me that it's possible this FK/IK overlap might be the actual cause of the problem. Perhaps it happened during some change then VNGE didn't handle the extra data or something, but that's the kind of thing I was trying to find by comparing the data and I found nothing different across keyframes.

                FYI: I've run into this several times before with different scenes and it usually means I havee to give up and start again, nothing I do seems to make it work from this point and anything I change afterwards ends up in the wrong position. Especially with items being children of chars.
                Last edited by cochese42; 03-09-2019, 08:03 PM.

                Comment


                • countd360
                  countd360 commented
                  Editing a comment
                  Oh, sorry for that inconvenient. And my game PC was broken these days, I cannot test it for now...
                  As you know the FK&IK mode is enabled by a plugin, so it can be very different for HoneySelect, Playhome and KoiKatsu. Please tell me the engine you are using and the version of plugin if possible.

                • cochese42
                  cochese42 commented
                  Editing a comment
                  countd360 No problem, dude, it's not your fault, i'm just bringing it to your attention as I think you know best about this Sorry to hear about your gaming PC, that sucks! Maybe start a patreon and get some funding!

                  I'm using HS always, I don't use the others. The plugin is the latest version VNGE 11.6. I also have HSUS and HSPE installed, but am not using HSPE with anims (this doesn't work and is being fixed at the moment by Keitaro, I believe). the HSStudioNeoAddon.dll is version 0.9.2. If that helps.

                  One thing to make clear, this doesn't always stop me working on a scene, but I've never found a way to 'fix' the anim once this happens, so I just leave it and do something else.

                • cochese42
                  cochese42 commented
                  Editing a comment
                  countd360 I've figured out a 'fix' for this, but it's a bit of a hack. After a alot of trial and error, I found that putting an element that sets the FK_actve state before the anim runs allows the animation to run normally. For example:

                  Code:
                  ["wf", "Testing FKIK issue", act, {
                     'wf': {'fk_active': (0, 1, 0, 1, 0, 0, 0)},
                    'anim1': {'frame': 0, 'loop': -1, 'play': 1, 'speed': 1},
                  }],
                  The animation itself has *exactly* the same fk_active setting in the first frame, so I don't understand why this is necessary.

                  Code:
                  0 : {'curve': [0.200, 0.800, 0.200, 0.800], 'status': {'acc_all': (1, 1, 0, 0, 0, 1, 1, 1, 1, 1), 'anim': (0, 0, 0), 'anim_lp': 1, 'anim_ptn': 0.000, 'anim_spd': 0.000, 'cloth_all': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0), 'cloth_type': 0, 'eyes': 11, 'eyes_blink': 1, 'eyes_open': 1.000, 'face_red': 0.000, 'face_to': 4, 'face_to_full': (4, 0, 0, 0, 2, 0, 0, 0, 252, 255, 255, 49, 188, 77, 205, 61, 252, 255, 127, 178, 225, 181, 126, 63, 215, 247, 161, 189, 6, 81, 174, 62, 34, 137, 235, 60, 126, 189, 111, 63), 'fk_active': (0, 1, 0, 1, 0, 0, 0), 'fk_set': {1: (-19.031, 15.347, -5.011), 2: (12.287, 11.848, 3.040), 9: (0.520, -4.763, -0.440), 13: (-0.015, 6.934, -1.868), 112: (-0.436, 0.000, 0.000), 113: (-0.436, 0.000, 0.000), 114: (0.000, 0.000, 0.000), 115: (0.000, 0.000, 0.000), 116: (-6.869, -0.363, 3.037), 117: (0.000, 0.000, 0.000), 118: (0.000, 0.000, 0.000), 119: (0.000, 0.000, 0.000), 120: (2.579, 0.000, 0.000), 121: (2.579, 0.000, 0.000), 122: (0.000, 0.000, 0.000), 123: (26.088, 0.000, 0.000), 124: (0.000, 0.000, 0.000), 125: (0.000, 0.000, 0.000), 126: (0.000, 0.000, 0.000), 127: (0.000, 0.000, 0.000), 128: (0.000, 0.000, 0.000), 129: (0.000, 0.000, 0.000), 130: (0.000, 0.000, 5.673), 131: (0.000, 0.000, 0.000), 132: (0.000, 0.000, 0.000), 133: (0.000, 0.000, 0.000), 134: (0.000, 0.000, 0.000), 135: (0.000, 0.000, -5.673), 136: (-3.722, 2.376, 3.363), 137: (-6.256, 2.338, 4.779), 138: (-3.722, -2.376, -3.363), 139: (-6.256, 1.662, -4.779), 140: (0.000, 2.216, -1.862), 141: (9.922, 9.922, 0.000), 142: (0.000, 0.000, 0.000), 143: (0.000, -2.216, 1.862), 144: (9.922, -9.922, 0.000), 145: (0.000, 0.000, 0.000), 146: (0.000, 0.000, 0.000), 147: (0.000, 0.000, 0.000), 148: (5.520, 0.000, 0.000), 149: (0.000, 0.000, 0.000), 150: (0.000, 0.000, 0.000), 151: (0.000, 0.000, 0.000), 152: (0.000, 0.000, 0.000), 153: (0.000, 0.000, 0.000)}, 'hands': (0, 0), 'ik_active': (1, 1, 1, 1, 1), 'ik_set': {'cf_J_ArmLow01_L': ((-0.174, 0.975, -0.145), ), 'cf_J_ArmLow01_R': ((0.237, 0.934, -0.001), ), 'cf_J_ArmUp00_L': ((-0.100, 1.145, -0.042), ), 'cf_J_ArmUp00_R': ((0.099, 1.151, -0.049), ), 'cf_J_Foot01_L': ((-0.107, 0.077, -0.061), (8.191, 6.496, 1.872)), 'cf_J_Foot01_R': ((0.140, 0.076, -0.068), (359.448, 353.421, 0.395)), 'cf_J_Hand_L': ((-0.139, 0.835, -0.033), (359.327, 332.400, 71.442)), 'cf_J_Hand_R': ((0.058, 0.900, 0.138), (313.300, 262.005, 268.091)), 'cf_J_Hips': ((0.014, 0.886, 0.055), ), 'cf_J_LegLow01_L': ((-0.068, 0.434, 0.024), ), 'cf_J_LegLow01_R': ((0.037, 0.424, 0.053), ), 'cf_J_LegUp00_L': ((-0.070, 0.776, 0.010), ), 'cf_J_LegUp00_R': ((0.047, 0.745, 0.006), )}, 'juice': (0, 0, 0, 0, 0), 'kinematic': 3, 'lip_sync': 1, 'look_at_pos': (0.288, 0.406, 0.931), 'look_at_ptn': 4, 'mouth': 4, 'mouth_open': 0.000, 'move_to': (10.998, 0.748, -1.261), 'nip_stand': 0.272, 'pl_hspedata': '<characterInfo crotchCorrection="false" leftAnkleCorrection="false" rightAnkleCorrection="false"><boobs alternativeUpdateMode="false" /></characterInfo>', 'rotate_to': (0.000, 282.536, 0.000), 'scale_to': (1.000, 1.000, 1.000), 'skin_tuya': 0.470, 'tear': 0, 'visible': 1, 'voice_lst': (), 'voice_rpt': 0}},
                  I'm glad I found this hack, though, as it was preventing any progress on some scenes. It may only fix it for some cases, though. But maybe that gives you a clue as to what the problem might be?

              • countd360 keitaro1978 I've been trying to createa way of separating out the different FK bones so that things can be animated indeendently of one another. I've run into trouble, so I thought i would share what I have done so far. Hopefully you can give me some pointers. Basically, I've removing bones from the fk_set when you deselect 'head' or 'body' bones (or some other sets). The idea being that the animation engine would only animate the remaining bones. This *almost* works, but not very well. I struggled (a lot) to get to this point, so I'm about to give up. If you run the example, it lets you animate the diffferent clips separately, but once you run more than one at a time, it starts to fail. it might do some bones in one anim and some from the other...

                For example, 'head' and 'moutheye' seem to work (head moves and faces animates) but when you start the 'body' anim, the others stop working (even though they are running).

                Be great if you could have a look and give me some feedback. I'd like to have done this as a plugin, but I really don't know pythong well enough to know where to start.

                updated vnanime.py: https://mega.nz/#!MOJ0lapY!z2d9hIbbW...f5dOXLq8Vdgr8A
                example scene (subfktest): https://mega.nz/#!BGYWVaRS!LvzK_gD-s...ArgS2A0Mr-XFIo

                I added some buttons to the character property selectors, so you can fast-choose 'no head' or 'no body', for when you want to maybe look around while doing something else, for instance. This was just a test, it might be buggy as hell.

                keitaro1978 I realise this is probably count's area, but thought you might be interested (maybe have some insight) too.

                Note: I didn't add hair or skirt selectors yet. Also, I didn't make the categories the same as the kinematics list as 'neck' contains neck, face, skull, hips etc... Though that does create a bit of confusion, it's a place to start...

                Comment


                • cochese42
                  cochese42 commented
                  Editing a comment
                  Thanks, countd360. That does seem to work for pure FK anims. My code is broken though, I can only get this to work by hand-coding script as all the properties for the keyframe get reset when I copy/load save etc. i.e. I got from only having fk_set and few others to having all the 'acc_all', 'anim' etc. I find it so hard to read python, the methods are all so long, I can't remember where I started!
                  I think this separation of FK/IK bones into different anims is the key to creating timelines with real 'natural' motion, like you have in other 3d engines (I was shown an interesting timeline with different curves for different bones). This is one example: https://cdn.discordapp.com/attachmen...81721471C4.png
                  Here's an example of separating head/body anims: https://mega.nz/#!NPgl0ApA!gFuFn75ne...TPpX2RTG8WQyqk
                  It's so much easier to write a loop and then do expressive stuff over the top.
                  For now, I am just using a script run manually to remove head/body bones from copy-n-pasted clips. If I feel brave, I may come back and look at the VNAnime code, but it has beaten me for now
                  Last edited by cochese42; 03-27-2019, 08:06 AM.

                • countd360
                  countd360 commented
                  Editing a comment
                  The sample is a great work! And I think you are right about the idea of separation of FK/IK bones into different anims.
                  I studied MMD these days. In MMD, every bone's has its own keyframe and interpolate curve.
                  I will consider to build an advanced mode of clip anime to support separated IK/FK keyframe. But it will be hard, I don't have a clear idea now.

                • cochese42
                  cochese42 commented
                  Editing a comment
                  countd360 Cheers, dude that's awesome, I'm glad you like the idea and it's interesting that MMD does this advanced process, because it looks inferior to my eyes (everything I've seen is so jerky and unnatural), but it's also how the more advanced stuff is done on high-end animations. I can see how it would be very hard to do. I look forward to hearing more of your thoughts, though.

              • v11.7 released
                Main feature:
                HSPE data save/load support in VN and SceneSaveState

                If you want to use HSPE data, please:
                - use HSPE v2.8.0 and higher (thanks to Joan to upgrade it)
                - set ExportChara_HSPENeo=1 in vnactor.ini

                11.7
                - fix some bugs in startup - removed incorrect CameraControl import, added debug info in vngame_window_autogames_uni
                - vnanime 1.1.3 - removed utf-8 dependence
                - extplugins 2.3 - HSPENeo plugin support
                - vnactor 3.3 - HSPENeo plugin support
                (to save actor's HSPE data during making VN or using SSS set ExportChara_HSPENeo=1 in vnactor.ini)

                Comment

                Working...
                X