Skip to content

Instantly share code, notes, and snippets.

View naelstrof's full-sized avatar
🤡

naelstrof naelstrof

🤡
View GitHub Profile
@naelstrof
naelstrof / mixamoToBlenderBoneNames.py
Created September 7, 2018 20:57 — forked from eelstork/mixamoToBlenderBoneNames.py
Convert Mixamo rig bone names (as imported to Blender via FBX) to standard Blender bone names. This is especially use if your mesh uses the 'mirror' modifier. 1 - Backup your Blend. 2 - In action editor disconnect any animation connected to the rig. 3 - Paste the script in a text window and select "run script". 4 - Notice that all bone names are…
# IMPORTANT: make sure no animation is assigned
# to the rig before you run this script,
# otherwise linked animation data will be corrupted.
import bpy
# ----------------------------------
# Mixamo left/right bone names start with 'Left'/'Right'
# Instead we apply Blender's standard .L/.R suffix
# and get rid of long suffix
/*
Copyright (c) 2018 Pete Michaud, github.com/PeteMichaud
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
@naelstrof
naelstrof / GetLaunchVelocity.cs
Created August 12, 2021 08:42
Unity initial launch rigidbody velocity calculation
// A function that calculates the initial velocity of a rigidbody to hit the end point within the specified flight time.
// Rigidbody must have drag set to 0, otherwise it wont work.
// Classical projectile physics (dx = v0*t, dy = v0*t-0.5gt^2 type stuff)
private Vector3 GetLaunchVelocity(float flightTime, Vector3 startingPoint, Vector3 endPoint) {
Vector3 gravityNormal = Physics.gravity.normalized;
Vector3 dx = Vector3.ProjectOnPlane(endPoint, gravityNormal) - Vector3.ProjectOnPlane(startingPoint, gravityNormal);
Vector3 initialVelocityX = dx/flightTime;
Vector3 dy = Vector3.Project(endPoint, gravityNormal) - Vector3.Project(startingPoint, gravityNormal);
Vector3 g = 0.5f * Physics.gravity * (flightTime * flightTime);