"Gp Select" Addon to preform actions by stroke selections For GP3 3

Hello there! :3 , This is a GreasePencil tool to speed up your work flow by just letting you select a stroke.

you just select the stroke you want, and perform the action you need. Changing to layers by selection, changing layer positions . Isolating strokes for weight painting, Duplicating layers by selected, Moving layers into groups, reordering layers , Masking by selected, changing layer Opacity, Duplicating and deleting layers, All by the strokes you have selected. “Switch to Layer” Will be the most useful operator.

You can get the Blender Extensions Here, Or By typeing “Gp” on the extention platform, if you want to try it out

prod vidv2

**You can see the full example video on the extension platform **

1 Like

Hot key the lasso button and quickly switch modes, and hotkey Switch to layer to quickly change layers by selection



Quickly rearrange layers just by selecting them. Move Layers bellow and above the “Active layer.” Change the Active layer by using “Switch to layer” which go’s to the selected stroke’s layer.



Quickly Weight Paint your characters with the Rigging tools. Make premade rigs and use Assign weight from groups. Or use it on the fly . The names of the vertex groups assign weight to layers if they have the same name.

Use weight selected to isolate strokes to paint. Hotkey the Lasso button so you can use it to jump between weight paint mode and edit mode.




Change multiple layer opacity by selection and also hid them



Group layers by selection , Delete layers , and even duplicate them by selected



Mask by selection. The active layer is the target. or use the other button to mask the active layer to the selected stroke layer

1 Like

Very good addons. What tool did you use to create the bones?

1 Like

Thanks , i’m glad it’s useful to you😁 . No tool , i did it manually and saved them as a start up file. As for the look of them i used the Bone Widget add on. it’s really good. It’s on the extension platform too.

1 Like

I added a new feature : Sync Layer Names. It takes the selected v group from a bone and changes the layer to the layer of the V group. This is used in weight paint mode along with “Assign weight from v-groups” in the auto rigging section. Assign weight from v-groups assigns 1.0 weight to every stroke on the selected stroke layer, based on a v-group with the same name.

So this let’s you quickly change the layer names to be the same and then assign weight In weight paint mode you can press the hotkey Ctrl + Shift + Left Click to select bones when you have a armature selected with Grease pencil. So if you use “Weight Selected” you are all set.

The Work flow : Use the lasso button to enter edit mode and select all strokes on a layer you want changed. You can use select similar for that (shift-G) . Hit “Weight selected” Now you’re inside weight pain mode and the button is accessible. use Ctrl + Shift + Left Click to select the bone you want. Then press “Sync Layer Names.” it will tell you what’s being changed before you click. Then , press " Assign Weight From groups."

I added a direct method to parent Selected strokes. “Assign Weight” to Selected.
Select strokes then use “weight Selected” . now that you are in weight paint mode with the armature selected , use ctrl + shift + Left click to select bones to change vertex groups. click “Assign Weight to Selected” ( Remember to have your armature parented to your grease pencil object. )

Added a function to Select by Prefix Automatically ( instead of having to enter the prefix name in the renaming tools)

In this video i’m using a hotkey . You only need to select one stroke from each prefix. if you hold shift and click on a new one , you can add to the selection

1 Like

Added a function to change Pass Indexed for selected stroke’s layers and materials by selected.

1 Like

Nothing new but i made “Weight Selected” Togglable now. So instead of needing 2 hotkeys ( one for lasso and one for Weight selected), you can just use one.

Added: “Create Time offset Controller.” You can do it by layer or by layer pass. It’s in a new sub panel at the bottom. This will automate a simple fixed frame, TimeOffset modifier, driver controller setup for you. All you have to do is select a stroke. It will even put a duplicate frame 1 on 0 for you. You can also adjust the controller’s sensitivity by selecting the bone or the selected stroke. input the numbers and press the button.

One little quirk about changing the setting with the selected stroke vs the control bone: in grease pencil when there’s a timeoffset modifier on a layer, there’s a " is selected" outline on the strokes. Even though it’s not technically selected. But you can click on it to select it still. You just can’t tell :sweat_smile: . So maybe select the the control bone instead , when you want to change the settings. Though you CAN select the effected strokes. i just added the option so you have more freedom to change the controller sensitivity even in edit mode.

You can also toggle the viewport visibility of the modifier by selecting the stroke or bone too

Added a new function " Create Bone from layer." ( only works if you have a parented armature) . It’s used together with “Assign By name.” Create Bone from layer makes a bone/vgroup at the 3d cursor location from the selected stroke ( only works on one layer at a time) . It brings you into Armature edit mode with the Tip of the bone selected. So all you have to do is Press “G” to move and Align it where you want. Then with the tip still selected , you can press it again and it toggles you into grease pencil edit mode. You can then select another stroke and press the button again. a new option will be in the pop up to parent the new bone as connected to the tip of what ever bone you had the tip selected. The last toggle you can do when you are in grease pencil edit mode. if no strokes are selected , and you press it , you will toggle into pose mode. Remember You can use “Assign By name” in Grease pencil edit mode.

This whole setup is to make it as easy as possible to make bones that have the same name as the selected stroke layers. So you can use “Assign By name” with out a premade rig. if you want.

I designed this to work with rig generation operators i plan to add later, in the Rigging Tools section at the bottom. The rig generators will make Ik setups for you and make the bones you created into stretch deformers.

Even with out making a bone , you now have a quick one button way to toggle to pose mode and grease pencil edit mode.

Also If you found this Add on helpful please Give it a rating😁 !

1 Like

I made some changes to “Make bone from layer” it now just automatically adds weight to the selected strokes. you can now do your set up in less than 50 seconds :grin:

Future notes: i want to add Generate " Arm/leg ik " ,“Body Spine ik” and “Spline Ik chain.” This will take 3 bones and make them into a simple ik setup. the 2 bones will become Stretch bones and the last one will be the hand/foot . The “Body Ik” will use 3 bones , the head , rib, and hips bones to make a spine for your character using a curve and spline ik. The “Spline Ik.” will just make a simple “Line” “Spline Ik.” or use for hair and stuff. All this isn’t done yet because it’s hard to do haha.

1 Like

ALRIGHT! New function time :grin:

Added: Generate arm/leg Setup. It lets you make a simple Arm or leg setup with 3 or 4 bones. Arm is 4 bones ( Shoulder blade , Top arm , Lower arm , and Hand) and for a legs 3 bones (Thigh , lower leg , and foot) To use it you select the bones in edit mode and press the button.

The Rig is a Ik and 2 stretch bones with 3 little control bones you can position. one at the shoulder , one at the elbow and one at the wrist.

If you use this with “Create bone from layer” you’ll have a fully rigged arm/leg in no time! Tip from me for the leg , on the tip Stretch Con , go to it’s bone properties and uncheck “Inherit rotation.” that will make the foot not rotates when moving , but i left the default just in case you want it. Also Change the Bone display to B-Bones. I decided to leave that choice up to the user but it’s hard to see the stretch cons if you don’t.

Also you can just do this on the bones alone if you want. The operator only cares about how many bones you select


I also Gave the generated bone Widgets

WELL! that’s It peeps. I think this add on is fully finished.

I added the last few features i wanted to. These were all things i use but now any beginner or intermediate (person like me lol) can make use of the automations and rigs .

Added : “Spline Ik” Generation ! This will generate a Spline , SPINE! for your character. you can also use it for hair or other flowing things. If you want the best control you should give the head_con a limit distance constraint to the hip_con, and Give the Mid_con a copy location for both the Head_con and the Hip_con. Set the target and owner to local space and set the influence to 0.500. This will make the controller a bit more stiff like a spine . If you move the hips the head will follow. Lastly Parent the Root of the leg gen bones to the hip_con and the Blade bones of the arms to the mid_con. after that you’re set!

Added: “Lattice rig” By individual layers and pass index. you can change the resolution of the generated lattice rig in the menu. the higher the rez the more controller bones you get. You use this for squash and stretch. Parent the bones and lattice to what ever you want to add it to. If you want to add it to the whole character select all the strokes of the character and use the pass index version.

Alright that’s it. Any future update will only be bug fixes if i see anything. I hope you all find this add on helpful. :blush:

Spline rig

Lattice rig

Bug Fixes and Refinements:

Bugs:

  1. Create bone from layer couldn’t overwrite a existing bone if you added it to a parented armature, so it now renames the old bone instead.

  2. Generate Spline rig wouldn’t create the curve properly some times so i fixed it.

Refinements:

  1. Generate Spline ik and arm/leg ik now comes with better widgets and added bone constraints on the controllers to help you use it better.

  2. Generate Arm/rig is more refined and flips the controller if your arm direction is on the other side

  3. Generate Arm/rig Now let’s you select a extra Unparented/unconnected bone as the parent when you generate it. So when selecting 4 for arm , you select the 4 bones and then select one more to parent the whole arm to. Same with the 3 Bone Leg type. PLUS if you have 5 bones in a chain as connected Then select 4 and Select the extra Unparented/unconnected bone, the arm will generate with a tip.

I added the Rigs i used to the add on btw

Ok peeps i have spruced the add on up a bit and added a kinda new function.

Bones will now generate at reasonable sizes.
Generated lattices will now add 0.4 weight from the Root con to the selected strokes. Because there is a quark of Grease pencil that even though the lattice is deforming them , if you parent the Root con to something , it won’t move the strokes effected by the lattice. Also remember to Parent the Lattice itself to the bone you parent the Root bone too. or the lattice will seem to move weird. I can’t automate that step for you lol. ( i tried )

Added: Mark as locked Gps. This works on groups. This is a locking system i made specifically for Gpselect. Any Layers you put inside groups that have the suffix name ‘LockedGPS’ Will make Some GpSelect Operators ignore them. For example the Opacity slider. Say you want a layer to always have 0 opacity but you want to reset the opacity value of all other layers? put it inside a group and Mark it as LockedGPS and the Opacity slider will ignore that layer.

The operators i added this too are the Opacity slider, Weight selected , Hide selected , duplicate hide selected , move Above and bellow delete selected layers, clear stroke weight , unmask selected , invert masks selected , group selected stroke layers , Lock selected Layers , and Lock Unselected Layers.

You can name the suffix of a group LockedGPS but I also made a button for it. Which is what you’ll probably end up using the most. Just select the group and press the button. The button is Togglable like most other gpselect things :grin:

Refinements and changes: I added a little visual automation to weight selected. It will now toggle off Edit lines so you can see the drawing better. You don’t really use them in weight paint mode i think. if you disagree please let me know.
Also when you use the mode switching buttons , edit lines will turn on when you enter editmode or sculpt mode.

I changed how the Widgets looked for the Time offset controllers to a bar type. And i made the pose mode toggle in “Create bone from layer” Activate the move tool in pose mode and edit mode. So you can just drag the controller instead of pressing G if you want to. The Bar type controllers make a bit more since for blender. the reason i made them rotation arrows before is because that’s how they are in moho and i thought they could be better , but in practice , the bar is more useful in blender.
I also made it so when bones are generated , they turn on “In front”

I also changed how the “Create bone from layer” toggle pop up works. i feel like it’s faster to always leave the “Parent to bone option” on. Please just remember to turn it off when making a new chain :sweat_smile:. i can’t think of a better way to do it.

i also upgraded the Lattice generation. it now gives you a extra control bone and a root bone. And you can now toggle their modifiers off and on. I added that because there is a “Crazy Space” bug in grease pencil where if the lattice and armature modifier isn’t first , the strokes visual position will be off. And if you have both modifiers, both can’t be first.

Alright i think i fixed everything up. if you have issues comment them. No more updates lol.

This is the final update to Gp select. Even though i use it daily i decided to just take some time and test it without adding anything new for a while. ( though i ended up adding some new things anyway. But then i took time to test them) So i made some changes to make sure i don’t have to touch this again.

Changes:

1)With some long testing and hard thinking i’ve decided to change something about Weight selected. There was a hacky thing i was doing to make sure your layers and materials would unlock if you left the mode without using the toggle. Even though it didn’t seem to cause any issues , it might have, and I’ve decided it’s too risky to mess with that anymore.

So now you have to use the toggle to unlock your layers and materials. it won’t happen automatically anymore. I have weight selected on a hotkey. So when you use it, toggle in , and toggle out. If your muscle memory makes you leave the mode in other ways , just remember you can double press weight selected to unlock them. or use “unlock all”

  1. I added a new option to “make bone from layer” in it’s pop up menu . You can now make a bone with out adding weight and without connecting to another bone. I tend to use this with the Spline rig. i make the first bone the “head” bone but i add the weight to the ‘Head controller’ bone instead.

  2. i made all the widgets and bbone sizes smaller

  3. Lattice gen , and time offset rig now require you to have a parented armature to the grease pencil first. To fix location issues. it’s better for you to decide where the rig is instead of me trying to guess :laughing:.

Added: New rig gen types : Simple Stretch , and pointer rig

  1. Simple Stretch is just a simple root, Stretch bone , and controller. you do it by selecting 1 bone.
    Pointer rig is another Spline rig type that let’s you aim bones towards a target. the double circle is the target. And the center con is your bend point. the “Remove Spline rigs” operator will remove it too.

2)Wdt size and position. You can use it to move , size , or remove wdts if you don’t like them.

3 )Mask controller and Control button gen. Like time offset controller , it makes a controller for the mask on/off button. it’s just a easy way to make mask visibility animatable in a action. And Control button just makes a button rig youj can manually apply drivers to.

Fixed:

With "create bone from layer’ There was ghost weight being added because i had it Re-parenting the armature to the gp. i was trying to make sure new bones added their groups to the grease pencil. but that was just the wrong way to do it. So i removed it and fixed the issue.

With "create bone from layer’ if you moved or created your Armature anywhere that wasn’t the center , bones would not generate at the 3d cursor location. so i fixed that.

Ok that’s It. Thank you so much for using my add on and i hope it helps you out in your Grease Pencil Rigging. If you find any bugs i missed , report them here.

Thanks again, Goodbye. :blush:

pointer rig:

Con Button:

Simple stretch:

Mask con:

Widget control:

Hello there :3 . i spent some time adding a few things so i decided to Update once more:

First i added some things back in. with fixes and improvements. I reintroduced the old Weight selected. i have found that it doesn’t cause any issues. The issues i thought it caused , turned out to be blender bugs. I reported them and they were fixed.

I also added back in ‘Assign weight by distance’ But i changed a lot about it to make it more useful. And i and it to all the other rig generation operators. since those would require you to select strokes , it gets around the issue with weighting things you didn’t want to weight.

Other changes:

‘Assign weight to selected’ now uses the value in the bar rather than just assigning 1.0 weight.

I removed the limits on the time offset controllers and the maskcon and simplified them to just being arrows. I also tweaked the default driver values.

i added generate custom spline. It makes a custom Spline ik rig with at many bones as you need. It’s based off the order you made the bones in, not selection order.

I made locked gps work with layers now. So far the only operators this works with is weight selected and the opacity operator. Also added and quick toggle for it If you want layer based locked gps to be added to other things let me know.

Spline rig now has a pop up menu to you can flip the limit constraints or generate with just a spline ik. OR auto weight by distance

Added Vertex group lattices with a extra rig mode. you can now make Squash rigs from all angles.

Also i made a change with the weight selected toggle. it now deselected strokes. so now you have two ways you can leave weight selected that will get different results. if you leave with the toggle you can deselect strokes. then in that state if you press "make bone from layer’ you have a nice quick toggle into pose mode on the armature. But then if you use the lasso tool toggle while in weight selected , the stroke will stay selected and everything auto unlocks for you.

Duplicate material will now make the last one in the list the active material when done so you can more easily tweak the settings. Also I added a extra option to duplicate materials so if you selected a group of strokes , and they have different materials , the duplicates will be assigned to all strokes that shared that material.

I added Wdt controls , and resets. And i added a few other minor things .

That’s It , Happy rigging peeps :blush:

1 Like

Here’s a quick example how you would use 'Custom Spline rig" and the rig gen version of ‘weight by distance’.

I cobbled together a control rig with the “custom spline” as the deformer, the “Spline rig” as the Ik mover , and the 'Pointer rig" to Control the Aiming.
I might think about how to make a generated set up for this. But as of now you have all the tools lol.