Unity笔记:Make Character Bone2D
Posted 代码骑士
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity笔记:Make Character Bone2D相关的知识,希望对你有一定的参考价值。
目录
1、创建新项目
2、检测一下是否具有2d动画组件
3、创建并导入素材
打开PS:
创建人物:这里需要注意的是,人物的头、手、身体、脚都要放在单独的图层里。
保存为psb格式
4、制作角色骨骼
直接将生成的图片文件拖拽到unity中即可
点击箭头可以看到组成角色的所有图层
点击图片选择Multiple模式
打开精灵编辑器
点击左上角选择SkiningEdito
变成如下界面
添加骨骼:鼠标左键添加,右键停止。
t添加骨骼帧的时候我们要注意,手臂和大腿的骨骼针都是与躯干相连的,这与我们人体骨骼类似,确保运动的连带性。
左侧的bone栏能对骨骼进行调整和编辑,点击reset bone就会复原
点击Geometry栏中的Auto Geometry可以对角色添加mesh (三角网格),右下角能添加更多的网格,这些网格类似于人体的肌肉,能使整体产生更好的运动拉伸效果。
可以看到调节骨骼针使,周围的“肌肉”也会发生微妙的变化
点击Edit Geometry可以编辑角色身体上包围的网格;点击下方的按钮还可以创建结点,编辑或者分割。
当我们调节骨骼时,骨骼旁边的图片也会发生形变,有时是我们需要的,有时也不想产生这种效果,取消骨骼所带来的图片变化的方法如下:
点击Weights栏中的Bone Influence按钮,在点击图片,在右下角选择相应的骨骼,再点击减号,就能取消这根骨骼对周围图片的影响了。
取消影响后的动作看起来就像是跳机械舞,注意如果把骨骼的影响全部取消就会发生“骨肉分离”的现象,对动画制作是不利的。
这里的权重刷能增加图片上面颜色的深度,颜色越深则说明骨骼对图片的影响就越大。
设置好之后,点击Alay
将角色拖进场景中
在左侧栏可以看到每个骨骼针的对象。
右侧也可以对骨骼进行调节
5、设置四肢
目前为止每个骨骼都是单独活动的,为了使做动画更加方便,下面我们将进行整条胳膊和整条腿的连接。Unity2D—骨骼绑定、IK系统、动画(二)_憋屈y的博客-CSDN博客_ik系统
首先点击角色,并添加IK MANAGER 2D组件
点击加号,添加Lamb
左臂下面添加一个新物体
将空物体重命名并把位置移动到指尖
再点击新建的IKmanager组件(已重命名)在把leftarmtarget拖入Effector并点击下面的create Target
然后就可以运动整条手臂了
如果方向相反,点击flip进行反翻转
下面进行其余手臂和腿的连接
下面就可以进行动画的制作了
6、制作动画
点击角色创建动画
一个鬼畜的动画就做完了
leetcode1647. Minimum Deletions to Make Character Frequencies Unique
题目如下:
A string
s
is called good if there are no two different characters ins
that have the same frequency.Given a string
s
, return the minimum number of characters you need to delete to makes
good.The frequency of a character in a string is the number of times it appears in the string. For example, in the string
"aab"
, the frequency of\'a\'
is2
, while the frequency of\'b\'
is1
.Example 1:
Input: s = "aab" Output: 0 Explanation:s
is already good.Example 2:
Input: s = "aaabbbcc" Output: 2 Explanation: You can delete two \'b\'s resulting in the good string "aaabcc". Another way it to delete one \'b\' and one \'c\' resulting in the good string "aaabbc".Example 3:
Input: s = "ceabaacb" Output: 2 Explanation: You can delete both \'c\'s resulting in the good string "eabaab". Note that we only care about characters that are still in the string at the end (i.e. frequency of 0 is ignored).Constraints:
1 <= s.length <= 105
s
contains only lowercase English letters.
解题思路:先统计出每个字符出现的次数,然后从最大的出现次数开始,若不唯一,则将次数减一,再判断是否重复,循环直到不重复为止。
代码如下:
class Solution(object): def minDeletions(self, s): """ :type s: str :rtype: int """ res = 0 dic = for i in s: dic[i] = dic.setdefault(i,0)+1 times = sorted(dic.itervalues()) for val in dic.itervalues(): if times.count(val) <= 1:continue tmp = val while tmp >= 0: if tmp not in times:break tmp -= 1 times.pop(times.index(val)) if tmp != 0: times.append(tmp) res += (val - tmp) return res
以上是关于Unity笔记:Make Character Bone2D的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode 1647. Minimum Deletions to Make Character Frequencies Unique
学习日志2022.10.08 Unity人物运动(移动+转身)Character Controller射线检测动画融合
Unity怎么添加character controller的
Unity Ragdoll Character Creator,Rigidbody [] Arrays和一般代码问题
unity中为啥我控制一个character controller物体,走向有capsule collider的物体,无法触发碰撞事件