Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Model Engine 4 Model Engine 4
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 113
    • Issues 113
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • MythicCraft
  • Model Engine 4Model Engine 4
  • Wiki
    • Modeling
  • Scriptable Keyframes

Scriptable Keyframes · Changes

Page history
Update Scriptable-Keyframes.md authored Nov 11, 2023 by Ticxo's avatar Ticxo
Show whitespace changes
Inline Side-by-side
Showing with 76 additions and 14 deletions
+76 -14
  • Modeling/Scriptable-Keyframes.md Modeling/Scriptable-Keyframes.md +76 -14
  • No files found.
Modeling/Scriptable-Keyframes.md
View page @ 82c1776b
Using the script keyframe, you can now call MM skills or MEG commands at the exact animation frame. You can add new script keyframes by opening the effects timeline within Blockbench.
Using the script keyframe, you can now call MM skills or MEG commands at the exact animation frame. You can add new
script keyframes by opening the effects timeline within Blockbench.
![image](https://user-images.githubusercontent.com/41558177/177030314-8db9a942-238d-4dd8-a228-1e354943e2ce.png)
Afterward, add a new keyframe on the Instructions timeline. Instead of the normal XYZ input, you will see an input called Script.
Afterward, add a new keyframe on the Instructions timeline. Instead of the normal XYZ input, you will see an input
called Script.
![image](https://user-images.githubusercontent.com/41558177/177030338-d663af59-8249-4026-ba9b-7b48ef0f96c1.png)
## MM Skills
You can call any custom-defined MM skills by using the prefix `mm:` and the skill name. For example:
```yml
Primary_5:
Skills:
- message{m="Get punched";audience=world} @self
- explode @ModelPart{m=dr_axis;p=attack_point}
```
![image](https://user-images.githubusercontent.com/41558177/177030827-c7bc59c0-ff89-4545-8a60-3e5df1578d8a.png)
You can even use [Skill Parameters](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/skillparametersystem) within keyframes.
You can even use [Skill Parameters](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/skillparametersystem)
within keyframes.
```yml
Primary_5:
Skills:
- message{m=<skill.dialogue>;audience=world} @self
- explode @ModelPart{m=dr_axis;p=attack_point}
```
![image](https://user-images.githubusercontent.com/41558177/177030890-dee52b88-8ce5-49a2-ad7a-7713305c653c.png)
## MEG Commands
MEG Commands are, by design, structurally very similar to MM mechanics. Currently, we have 7 commands which have the same attributes as their MM mechanic counterpart. However, **all commands will only target the model you are editing.**
* changeparent = [ChangeParent](MythicMobs/mechanics/model/ChangeParent)
* partvis = [PartVisibility](MythicMobs/mechanics/model/PartVisibility)
* tint = [Tint](MythicMobs/mechanics/model/Tint)
* enchant = [Enchant](MythicMobs/mechanics/model/Enchant)
* tag = [SetModelTag](MythicMobs/mechanics/model/SetModelTag)
* changepart = [ChangePart](MythicMobs/mechanics/model/ChangePart)
* remap = [RemapModel](MythicMobs/mechanics/model/RemapModel)
MEG Commands are, by design, structurally very similar to MM mechanics. Currently, we have 7 commands. **All commands
will only target the model you are editing.**
### [`changeparent`](MythicMobs/mechanics/model/ChangeParent)
| Attribute | Description | Type |
|-----------|----------------------------|--------|
| parent | The new parent bone | String |
| child | The bone being re-parented | String |
### [`partvis`](MythicMobs/mechanics/model/PartVisibility)
| Attribute | Description | Type |
|-----------|------------------------------------------|---------|
| part | The affected bones | String |
| visible | Is the bone visible | Boolean |
| exact | Does the bone name need to match exactly | Boolean |
### [`tint`](MythicMobs/mechanics/model/Tint)
| Attribute | Description | Type |
|-----------|--------------------------------------------|-----------|
| part | The affected bones | String |
| color | Is the bone visible | Hex Color |
| exact | Does the bone name need to match exactly | Boolean |
| damage | Is this command modifying the damage color | Boolean |
### [`enchant`](MythicMobs/mechanics/model/Enchant)
| Attribute | Description | Type |
|-----------|------------------------------------------|---------|
| part | The affected bones | String |
| enchant | Is the bone enchanted | Boolean |
| exact | Does the bone name need to match exactly | Boolean |
### [`tag`](MythicMobs/mechanics/model/SetModelTag)
| Attribute | Description | Type |
|-----------|----------------------|---------|
| part | The affected bone | String |
| tag | The displayed string | String |
| visible | Is the tag visible | Boolean |
### [`changepart`](MythicMobs/mechanics/model/ChangePart)
| Attribute | Description | Type |
|-----------|--------------------------------|--------|
| part | The affected bone | String |
| nmodel | Model ID of the new bone model | String |
| npart | New bone ID | String |
### [`remap`](MythicMobs/mechanics/model/RemapModel)
| Attribute | Description | Type |
|-----------|------------------------------------|--------|
| model | Model ID of the source model | String |
| map | Model ID of the mapping (optional) | String |
To use a MEG command, you just enter it like using them as a normal mechanic.
![image](https://user-images.githubusercontent.com/41558177/177031244-1abfce42-da71-4978-a88f-8e429de8fe64.png)
## Multiline scripts
You can write multiple lines of scripts into a single keyframe, and you can also mix and match different script types.
![image](https://user-images.githubusercontent.com/41558177/177031293-34a39164-7ddf-4490-af9e-aae6008e86a7.png)
This keyframe would run the MM Skill that plays the dialogue and effect first, then the MEG command to enchant the arm bone.
This keyframe would run the MM Skill that plays the dialogue and effect first, then the MEG command to enchant the arm
bone.
## Using Animation Variables
Finally, you can make use of the Variable Placeholder system provided by Blockbench itself. This system is also extremely similar to MM's variable system, and it works on both MM skills and MEG commands.
Finally, you can make use of the Variable Placeholder system provided by Blockbench itself. This system is also
extremely similar to MM's variable system, and it works on both MM skills and MEG commands.
![image](https://user-images.githubusercontent.com/41558177/177031442-0f2ca7a4-973f-4e47-b34d-f82ee150398d.png)
## [Video Demo](https://youtu.be/JqVQ4ARJoIQ)
\ No newline at end of file
Clone repository
Home
FAQ / Common Issues
Commands & Permissions
Configuration
Modeling
  • Creating a Model
    • Hitbox & Eye Height
    • Shadow
  • Bone Behaviors
  • Animating a Model
  • Importing a Model
  • Scriptable Keyframes
  • Optional Tools
MythicMobs
  • Mechanics: Model
  • Mechanics: VFX
  • Conditions
  • Targeters
API
  • Basic
    • Apply / Remove Model
    • Play / Stop Animation
    • Configure Bone Behaviors
    • Mounting / Dismounting Model
    • Per-Player Model
    • Events
  • Advanced
    • Custom Base Entity
    • Custom Mount Controller
    • Custom Importer
    • Custom Bone Behaviors
    • Custom Script Reader
    • Custom Timeline
    • Custom Animation Handler
    • Custom Render Type
Technical
  • Terminology
  • Animation Systems
  • Mount Controllers
Promotional Material