GAMESH

游戏美术动画unity资源搬运工!

剧情党,完美控!
桐崎千棘
当前位置:首页 > 学习 > 正文内容

unity游戏引擎开发的ARPG游戏DEMO

admin1年前 (2020-06-05)学习1804

耗时一个月左右终于完成了这个ARPG游戏的demo,基本框架已经达到了我的要求,只是还有些小bug需要后面慢慢修复!

demo功能包括:

移动(走动-小跑-疾跑)

普通攻击

无限连击

空中攻击

空中对地攻击

8个技能(采用RT+ABXY和 LT+ABXY进行组合)

坐骑

游泳

宠物

敌人AI(多技能攻击,自动追踪)

镜头缩放

视角控制

商店

切换武器

装备/道具

任务系统

技能系统

角色状态栏

背包

npc对话

npc任务

本人是一个游戏动画师,对于程序方面有些吃力,靠着日积月累的一点c#知识勉强改出了自己想要的功能,游戏动画量多很多地方没有细做,需要以后慢慢细化!

这个demo素材均来自网络,所以只供学习研究使用!如果我打算把它继续做下去估计会购买正版素材,毕竟现在人们为了避免不必要的麻烦,对版权越来越重视了!游戏的基本框架是Action-RPG Starter Kit6.5,场景美术是Handpainted Forest Environment,我是在这些基础上改进过来的!

unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第1张

为了达到一个比较好的arpg效果我增加了一些新的功能,比如突进,翻滚,跳跃攻击,技能跟随,锁定敌人,手柄震动。。。。。。。为了达到效果满意所以动画方面绝对不能少,下面是animator

unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第2张

从图片可以看出动画数量是不少的!

  个人比较偏爱手柄玩游戏,所以游戏按键大部分都是适配了xbox游戏手柄!增加了震动反馈,当受到打击时释放技能时手柄均会震动!使游戏玩起来更有手感!为了游戏npc更智能我使用了NPCPopulator插件制作群体npc动画,npc会随机走动在指定范围内!unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第3张


为了增加打击感,使用了动画速度控制,当击中敌人时攻击动画会把速度变成0.1,持续0.3秒且镜头会震动。

IEnumerator animspeed1()
    {
      

        animator.speed = 0.1f;
        yield return new WaitForSeconds(0.3f);
        animator.speed = 1f;


       

    }

自动锁定面前敌人,让攻击失误减小

public void OnGetEnemy(Transform player, int radius, int angle)
    {

        List<GameObject> mList = new List<GameObject>();
        //球形射线检测,得到主角半径2米范围内所有的物件
        Collider[] cols = Physics.OverlapSphere(player.position, radius);
        //判断检测到的物件中有没有Enemy
        if (cols.Length > 0)
        {
            for (int i = 0; i < cols.Length; i++)
                //判断是否是怪物
                if (cols[i].tag.Equals("Enemy"))
                { //判断敌人是否在主角前方60度范围内


                    Vector3 dir = cols[i].transform.position - player.position;
                    if (Vector3.Angle(dir, player.forward) < angle)
                    {
                        mList.Add(cols[i].gameObject);



                    }
                }


            float distance_min = 10000;    //主角与怪物的最近距离
            float distance = 0;            //当前怪物与主角的距离
            int id = 0;                    //与主角最近的怪物的编号
                                           //遍历所有敌人,计算距离并比较
            for (int i = 0; i < mList.Count; i++)
            {

                distance = Vector3.Distance(transform.position, mList[i].transform.position);
                if (distance < distance_min)
                {
                    //找到一个更近的
                    distance_min = distance;
                    id = i;

                }
            }


            if (mList.Count > 0)
            {


                Vector3 targetPos = mList[id].transform.position;
                //攻击点面向怪物


                targetPos.y = this.transform.position.y;
                this.transform.LookAt(targetPos);//使主角望向距离最近的敌人并开始攻击
                targetPos.y = targetPos.y + 1;
                attackPoint.LookAt(targetPos);

            }


            // cols[i].GetComponent<BaseHero>().OnTakeDamage();



        }
        return;
    }

游戏受到攻击手柄震动,这里引用了XInputDotNet这个插件

 IEnumerator SetVibration(float right, float left, float tim)
    {
        if (this.tag == "Player") { 
        Debug.Log("震动");
        // XInputDotNetPure.dll
        XInputDotNetPure.GamePad.SetVibration(_type, right, left);
        yield return new WaitForSeconds(tim);
        XInputDotNetPure.GamePad.SetVibration(_type, 0, 0); }
    }

游戏场景截图

unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第4张unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第5张

unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第6张

unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第7张

unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第8张

unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第9张


unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第10张

unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第11张

unity游戏引擎开发的ARPG游戏DEMO 3dmax 游戏动画 unity 游戏引擎 独立游戏 第12张

游戏视频


如果你对ARPG开发感兴趣可以试着联系我共同研究!游戏试玩过两天单独放出来!

安卓版试玩下载

扫描二维码推送至手机访问。

本サイト上に掲載の文章、画像、写真などを無断で複製することは法律で禁じられています。全ての著作権はGAMESHに帰属します。

本文链接:https://www.pylblog.com/post/183.html

分享给朋友:

相关文章

3dmax自动存储辅助插件

3dmax自动存储辅助插件

如果您在工作时厌倦了3dsmax 自动保存和冻结,则此脚本适合您。它基于Vincent Lacour的想法。安装:将文件放在3dsmax安装的Scripts / startup文件夹中。重启...

3dmax动作库添加分类教程

3dmax动作库添加分类教程

插件附带一个数据库管理工具,可以增删查改access数据库!打开软件点击open 打开插件目录下的anim.mdb数据库打开后如图这里的结构表feilei代表分类1   fenle...

3dmax bones骨骼动画曲线顺滑轨迹乱转解决

3dmax bones骨骼动画曲线顺滑轨迹乱转解决

今天在做项目时需要做一个小鸟眩晕的动画,首先先让小鸟转一个圆,然后我key了三帧奇怪的现象发生了,原本这三帧的效果轨迹线应该是一个规则的圆圈但是现在出现的是一个不规则的8字形如图:为什么会这样我也没具...

3dmax 模型带绑定

3dmax 模型带绑定

去年收集到的一个模型,本来打算用到unity,但是面数太多放弃了!稍微绑定了一些,没搞完就放弃了!稍微修改一些还是可以用的!max版本2015下载文件function dodo(){ layer.m...

3dmax蒙皮包裹绑定高模教程

3dmax蒙皮包裹绑定高模教程

在3dmax绑定高模是一种很困难的事情,skin笔刷不像maya那么好用,绑定高模简直恼火!除了用第三方插件之外有没有别的方法呢?肯定是有的,接下来我就介绍一种办法,蒙皮包裹!修改器英文名skin w...

模型收集

模型收集

cgjoy大神免费放出的模型,收集起来说不定哪天用得上呢!链接:https://pan.baidu.com/s/1ykhTcJswn94HfJYndFRVXA 提取码:vp99 ...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。