PenisPathAlignment

Plugins + Scripts PenisPathAlignment

Download [<1 MB]
Quick update: I've finished reorganizing the code, and I'm just fixing a few remaining bugs now. I think I should be able to release it within the next few days. I hope.
 
Hi HelicalPink,

Nice plugin : )

I'm experimenting with the plugin, and right of the bat, I'm noticing you save presets in PluginData. The way you handle the system makes the var manager completely unaware of the preset system. Which makes it apparently impossible to properly package a scene using several presets depending on the animation/pose swap.

Unless I'm missing something, could it be possible to have "scene based" presets (which would be saved inside of the scene file) and global presets (the one actually saving in the plugin data)... this would allow flexibility with complex scene creation : )

On another note, I always have Acid's forward log plugin from his dev tools enabled... you got a silent error triggering when the plugin loads the first time. It does not prevent the plugin from working properly apparently tho:

!> Exception NullReferenceException: Object reference not set to an instance of an object HelicalPink.PenisPathAlignment.OnEnable ()
UnityEngine.GameObject:AddComponent(Type)
DynamicCSharp.ScriptType:CreateBehaviourInstance(GameObject)
DynamicCSharp.ScriptType:CreateInstance(GameObject)
MVRPluginManager:CreateScriptController(MVRPlugin, ScriptType)
MVRPluginManager:SyncPluginUrlInternal(MVRPlugin, Boolean)
MVRPluginManager:SyncPluginUrl(MVRPlugin)
<>c__DisplayClass28_0:<CreatePluginWithId>b__0(String)
JSONStorableString:InternalSetVal(String, Boolean)
JSONStorableString:set_val(String)
JSONStorableUrl:set_val(String)
JSONStorableUrl:SetFilePath(String)
JSONStorableUrl:SetFilePathBrowseCallback(String, Boolean)
uFileBrowser.FileBrowser:SelectButtonClicked()
uFileBrowser.FileBrowser:SelectFile(FileButton)
uFileBrowser.FileBrowser:OnFileClick(FileButton)
uFileBrowser.FileButton:OnClick()
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
LookInputModule:processMousePressAlt(MouseButtonEventData)
LookInputModule:processMouseAlt(Boolean)
SuperController:processUI()
SuperController:Update()
 
Last edited:
Hi hazmhox!
I love your amazing plugins and always using them. Thank you, and it's an honor to receive feedback from you.

I removed OnEnable() in the new version since it's no longer needed.
The Developer Tools were completely new to me. I was literally just about to publish the new version, so I'm really glad you pointed it out in time.

As for the presets, I was originally thinking about loading them from the VAR package like read-only files. But I think saving directory inside the scene is actually the best solution.
I have some improvements in mind for the preset and marker save system. For now, though, I'll leave them for a future version.
 
HelicalPink updated PenisPathAlignment with a new update entry:

Some changes and behavior improvement

Changes & Fixes
1. Renamed "Rotation Mid to Tip Blend" → "Mid Rotation Offset".
To prepare for the next update. Existing scenes and presets will be converted automatically when loaded. Only a name change, so everything will continue to work as before.
2. Added "Base Rotation Offset".
It works the same way as "Rotation Mid to Tip Blend", its "Base to Mid Blend". I found this way is the safest, easiest to manage, and most...

Read the rest of this update entry...
 
Would it be possible to have it automatically detect when it should "curve flip?" Often times the optimal penis path curve direction is very different between two poses/animations, so it'd be super handy to have the plugin be able to detect automatically the best curve angle!
 
Would it be possible to have it automatically detect when it should "curve flip?" Often times the optimal penis path curve direction is very different between two poses/animations, so it'd be super handy to have the plugin be able to detect automatically the best curve angle!

I'll find a way, but it's a very low priority for now. And if it causes an FPS drop, I'll give up on it.
 
Hi hazmhox!
I love your amazing plugins and always using them. Thank you, and it's an honor to receive feedback from you.

I removed OnEnable() in the new version since it's no longer needed.
The Developer Tools were completely new to me. I was literally just about to publish the new version, so I'm really glad you pointed it out in time.

As for the presets, I was originally thinking about loading them from the VAR package like read-only files. But I think saving directory inside the scene is actually the best solution.
I have some improvements in mind for the preset and marker save system. For now, though, I'll leave them for a future version.

Thank you for the kind words!
I could say the same, when I tried with the plugin, very impressed with the whole system ^^

Static files saved as preset in any folder contained in "Saves" would also work. As long as the file can be "registered" by the var manager and it rewrites the scene so that the load process can access the path, both locally and in a var file, it would be perfect (for instance as I did with VAMM for the custom audio files/VA).

Do as you prefer, as long as I can do several presets and ensure it can work in a var, I'd be thrilled :3

I've kept experimenting with it, and I find the system very nice. It can even lend better/more natural results with a curve constraint than letting the collision engine do its job.
Very cool idea!
 
hi is there any plans for auto configuration instead of having to select the hole every load or change of positon, plugin auto detects which hole to target?>?
 
hi is there any plans for auto configuration instead of having to select the hole every load or change of positon, plugin auto detects which hole to target?>?

There is target presets and plugin presets, both available to load through a dropdown.
 
Thank you for the kind words!
I could say the same, when I tried with the plugin, very impressed with the whole system ^^

Static files saved as preset in any folder contained in "Saves" would also work. As long as the file can be "registered" by the var manager and it rewrites the scene so that the load process can access the path, both locally and in a var file, it would be perfect (for instance as I did with VAMM for the custom audio files/VA).

Do as you prefer, as long as I can do several presets and ensure it can work in a var, I'd be thrilled :3

I've kept experimenting with it, and I find the system very nice. It can even lend better/more natural results with a curve constraint than letting the collision engine do its job.
Very cool idea!

Thanks again! Your idea was kinda a breakthrough for me.

Making preset files for every pose would probably flood the folder, and that would become a pain to manage too. Saving them inside the scene is actually a really good idea.

I'll definitely keep it in mind for future updates.
 
hi is there any plans for auto configuration instead of having to select the hole every load or change of positon, plugin auto detects which hole to target?>?
Sorry I'm not sure I understand what you mean.
Do you mean including the target hole (marker) in the preset? I actually dropped that idea because it would break compatibility between Classic Mode and Advanced Mode.
 
Making preset files for every pose would probably flood the folder, and that would become a pain to manage too. Saving them inside the scene is actually a really good idea.

Honestly, don't overthink too much the "flood" aspect on text files. (I suppose they are simple JSONs).
Games/Mods/scripts need data, a handful of text files is not a problem, especially if it can fit a workflow.

If you check Studio Maestro, I'm creating dozens of files for every presets for every single lights or "feature" of Maestro... this is pure text, it's a couple dozen megs for dozens if not hundreds of poses, light presets, scene presets... at least that way, you can archive, organize, share... it's quite handy ^^

People are running multi TB installs of VAM for hairs and looks... I'm quite sure they won't mind 10 megs for cool plugins that allows cool animations :p
 
Back
Top Bottom