The dynamic changing terrain

正在查看此主题的用户

jisiting2960

Sergeant at Arms
I've read countless blogs of MB2, and I've see a dynamic change of terrain question, and the answer is no. So I keep looking for solutions. I see an open source, I don't know if TW can use the MB2 engine, Global light has been realized, I am so happy, I am looking forward to the game release early, that module attack blog I have read many times, each noun I have checked, come on!!! Don't waste time on outdoor barbecues. Take the time to make games. We're still waiting.
1.https://www.cnblogs.com/jeason1997/p/5776594.html
2. http://blog.csdn.net/qq_21397217/article/details/78480703
You should understand an iron powder for this game of infatuation, so I hope you can do the best.
using System.Collections;
using UnityEngine;
using UnityEditor;

public class DynamicCreateTerrain : MonoBehaviour
{
    public TerrainData terrainData;
    private float[,] heightsBackups;

    void Start()
    {
        //var terrain = CreateTerrain();
        ModifyTerrainDataHeight(terrainData);
        // 5秒后恢复地形
        StartCoroutine(Disable());
    }

    // 动态创建地形
    public Terrain CreateTerrain()
    {
        TerrainData terrainData = new TerrainData();
        terrainData.heightmapResolution = 513;
        terrainData.baseMapResolution = 513;
        terrainData.size = new Vector3(50, 50, 50);
        terrainData.alphamapResolution = 512;
        terrainData.SetDetailResolution(32, :cool:;
        GameObject obj = Terrain.CreateTerrainGameObject(terrainData);
        AssetDatabase.CreateAsset(terrainData, "Assets/Terrain_ModifyHeight.asset");
        AssetDatabase.SaveAssets();
        return obj.GetComponent<Terrain>();
    }

    // 动态改变地形
    public void ModifyTerrainDataHeight(TerrainData terrainData)
    {
        int width = terrainData.heightmapWidth;
        int height = terrainData.heightmapHeight;
        float[,] array = new float[width, height];
        print("width:" + width + " height:" + height);
        for (int i = 0; i < width; i++)
            for (int j = 0; j < height; j++)
            {
                float f1 = i;
                float f2 = width;
                float f3 = j;
                float f4 = height;
                float baseV = (f1 / f2 + f3 / f4) / 2 * 1;
                array[i, j] = baseV * baseV;
            }
        // 备份高度图
        heightsBackups = terrainData.GetHeights(0, 0, width, height);
        // 设置高度图
        terrainData.SetHeights(0, 0, array);
    }

    IEnumerator Disable()
    {
        yield return new WaitForSeconds(5);
        Debug.Log("Recove Terrain.");
        terrainData.SetHeights(0, 0, heightsBackups);
    }
}
I hope our engine can do anything。

2. using UnityEngine;

public class TerrainUtil
{
    /**
    * Terrain的HeightMap坐标原点在左下角
    *  y
    *  ↑
    *  0 → x
    */

    /// <summary>
    /// 返回Terrain上某一点的HeightMap索引。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="point">Terrain上的某点</param>
    /// <returns>该点在HeightMap中的位置索引</returns>
    public static int[] GetHeightmapIndex(Terrain terrain, Vector3 point)
    {
        TerrainData tData = terrain.terrainData;
        float width = tData.size.x;
        float length = tData.size.z;

        // 根据相对位置计算索引
        int x = (int)((point.x - terrain.GetPosition().x) / width * tData.heightmapWidth);
        int y = (int)((point.z - terrain.GetPosition().z) / length * tData.heightmapHeight);

        return new int[2] { x, y };
    }

    /// <summary>
    /// 返回GameObject在Terrain上的相对(于Terrain的)位置。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="go">GameObject</param>
    /// <returns>相对位置</returns>
    public static Vector3 GetRelativePosition(Terrain terrain, GameObject go)
    {
        return go.transform.position - terrain.GetPosition();
    }

    /// <summary>
    /// 返回Terrain上指定点在世界坐标系下的高度。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="point">Terrain上的某点</param>
    /// <param name="vertex">true: 获取最近顶点高度  false: 获取实际高度</param>
    /// <returns>点在世界坐标系下的高度</returns>
    public static float GetPointHeight(Terrain terrain, Vector3 point, bool vertex = false)
    {
        // 对于水平面上的点来说,vertex参数没有影响
        if (vertex)
        {
            // GetHeight得到的是离点最近的顶点的高度
            int[] index = GetHeightmapIndex(terrain, point);
            return terrain.terrainData.GetHeight(index[0], index[1]);
        }
        else
        {
            // SampleHeight得到的是点在斜面上的实际高度
            return terrain.SampleHeight(point);
        }
    }

    /// <summary>
    /// 返回Terrain的HeightMap,这是一个 height*width 大小的二维数组,并且值介于 [0.0f,1.0f] 之间。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="xBase">检索HeightMap时的X索引起点</param>
    /// <param name="yBase">检索HeightMap时的Y索引起点</param>
    /// <param name="width">在X轴上的检索长度</param>
    /// <param name="height">在Y轴上的检索长度</param>
    /// <returns></returns>
    public static float[,] GetHeightMap(Terrain terrain, int xBase = 0, int yBase = 0, int width = 0, int height = 0)
    {
        if (xBase + yBase + width + height == 0)
        {
            width = terrain.terrainData.heightmapWidth;
            height = terrain.terrainData.heightmapHeight;
        }

        return terrain.terrainData.GetHeights(xBase, yBase, width, height);
    }

    /// <summary>
    /// 升高Terrain上某点的高度。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="point">Terrain上的点</param>
    /// <param name="opacity">升高的高度</param>
    /// <param name="size">笔刷大小</param>
    /// <param name="amass">当笔刷范围内其他点的高度已经高于笔刷中心点时是否同时提高其他点的高度</param>
    public static void Rise(Terrain terrain, Vector3 point, float opacity, int size, bool amass = true)
    {
        int[] index = GetHeightmapIndex(terrain, point);
        Rise(terrain, index, opacity, size, amass);
    }

    /// <summary>
    /// 升高Terrain上的某点。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="index">HeightMap索引</param>
    /// <param name="opacity">升高的高度</param>
    /// <param name="size">笔刷大小</param>
    /// <param name="amass">当笔刷范围内其他点的高度已经高于笔刷中心点时是否同时提高其他点的高度</param>
    public static void Rise(Terrain terrain, int[] index, float opacity, int size, bool amass = true)
    {
        TerrainData tData = terrain.terrainData;

        int bound = size / 2;
        int xBase = index[0] - bound >= 0 ? index[0] - bound : 0;
        int yBase = index[1] - bound >= 0 ? index[1] - bound : 0;
        int width = xBase + size <= tData.heightmapWidth ? size : tData.heightmapWidth - xBase;
        int height = yBase + size <= tData.heightmapHeight ? size : tData.heightmapHeight - yBase;

        float[,] heights = tData.GetHeights(xBase, yBase, width, height);
        float initHeight = tData.GetHeight(index[0], index[1]) / tData.size.y;
        float deltaHeight = opacity / tData.size.y;

        // 得到的heights数组维度是[height,width],索引为[y,x]
        ExpandBrush(heights, deltaHeight, initHeight, height, width, amass);
        tData.SetHeights(xBase, yBase, heights);
    }

    /// <summary>
    /// 降低Terrain上某点的高度。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="point">Terrain上的点</param>
    /// <param name="opacity">降低的高度</param>
    /// <param name="size">笔刷大小</param>
    /// <param name="amass">当笔刷范围内其他点的高度已经低于笔刷中心点时是否同时降低其他点的高度</param>
    public static void Sink(Terrain terrain, Vector3 point, float opacity, int size, bool amass = true)
    {
        int[] index = GetHeightmapIndex(terrain, point);
        Sink(terrain, index, opacity, size, amass);
    }

    /// <summary>
    /// 降低Terrain上某点的高度。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="index">HeightMap索引</param>
    /// <param name="opacity">降低的高度</param>
    /// <param name="size">笔刷大小</param>
    /// <param name="amass">当笔刷范围内其他点的高度已经低于笔刷中心点时是否同时降低其他点的高度</param>
    public static void Sink(Terrain terrain, int[] index, float opacity, int size, bool amass = true)
    {
        TerrainData tData = terrain.terrainData;

        int bound = size / 2;
        int xBase = index[0] - bound >= 0 ? index[0] - bound : 0;
        int yBase = index[1] - bound >= 0 ? index[1] - bound : 0;
        int width = xBase + size <= tData.heightmapWidth ? size : tData.heightmapWidth - xBase;
        int height = yBase + size <= tData.heightmapHeight ? size : tData.heightmapHeight - yBase;

        float[,] heights = tData.GetHeights(xBase, yBase, width, height);
        float initHeight = tData.GetHeight(index[0], index[1]) / tData.size.y;
        float deltaHeight = -opacity / tData.size.y;  // 注意负号

        // 得到的heights数组维度是[height,width],索引为[y,x]
        ExpandBrush(heights, deltaHeight, initHeight, height, width, amass);
        tData.SetHeights(xBase, yBase, heights);
    }

    /// <summary>
    /// 根据笔刷四角的高度来平滑Terrain,该方法不会改变笔刷边界处的Terrain高度。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="point">Terrain上的点</param>
    /// <param name="opacity">平滑灵敏度,值介于 [0.05,1] 之间</param>
    /// <param name="size">笔刷大小</param>
    public static void Smooth(Terrain terrain, Vector3 point, float opacity, int size)
    {
        int[] index = GetHeightmapIndex(terrain, point);
        Smooth(terrain, index, opacity, size);
    }

    /// <summary>
    /// 根据笔刷四角的高度来平滑Terrain,该方法不会改变笔刷边界处的Terrain高度。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="index">HeightMap索引</param>
    /// <param name="opacity">平滑灵敏度,值介于 [0.05,1] 之间</param>
    /// <param name="size">笔刷大小</param>
    public static void Smooth(Terrain terrain, int[] index, float opacity, int size)
    {
        TerrainData tData = terrain.terrainData;
        if (opacity > 1 || opacity <= 0)
        {
            opacity = Mathf.Clamp(opacity, 0.05f, 1);
            Debug.LogError("Smooth方法中的opacity参数的值应该介于 [0.05,1] 之间,强制将其设为:" + opacity);
        }

        // 取出笔刷范围内的HeightMap数据数组
        int bound = size / 2;
        int xBase = index[0] - bound >= 0 ? index[0] - bound : 0;
        int yBase = index[1] - bound >= 0 ? index[1] - bound : 0;
        int width = xBase + size <= tData.heightmapWidth ? size : tData.heightmapWidth - xBase;
        int height = yBase + size <= tData.heightmapHeight ? size : tData.heightmapHeight - yBase;
        float[,] heights = tData.GetHeights(xBase, yBase, width, height);

        // 利用笔刷4角的高度来计算平均高度
        float avgHeight = (heights[0, 0] + heights[0, width - 1] + heights[height - 1, 0] + heights[height - 1, width - 1]) / 4;
        Vector2 center = new Vector2((float)(height - 1) / 2, (float)(width - 1) / 2);
        for (int i = 0; i < height; i++)
        {
            for (int j = 0; j < width; j++)
            {
                // 点到矩阵中心点的距离
                float toCenter = Vector2.Distance(center, new Vector2(i, j));
                float diff = avgHeight - heights[i, j];

                // 判断点在4个三角形区块上的位置
                // 利用相似三角形求出点到矩阵中心点与该点连线的延长线与边界交点的距离
                float d = 0;
                if (i == height / 2 && j == width / 2)  // 中心点
                {
                    d = 1;
                    toCenter = 0;
                }
                else if (i >= j && i <= size - j)  // 左三角区
                {
                    // j/((float)width / 2) = d/(d+toCenter),求出距离d,其他同理
                    d = toCenter * j / ((float)width / 2 - j);
                }
                else if (i <= j && i <= size - j)  // 上三角区
                {
                    d = toCenter * i / ((float)height / 2 - i);
                }
                else if (i <= j && i >= size - j)  // 右三角区
                {
                    d = toCenter * (size - j) / ((float)width / 2 - (size - j));
                }
                else if (i >= j && i >= size - j)  // 下三角区
                {
                    d = toCenter * (size - i) / ((float)height / 2 - (size - i));
                }

                // 进行平滑时对点进行升降的比例
                float ratio = d / (d + toCenter);
                heights[i, j] += diff * ratio * opacity;
            }
        }

        tData.SetHeights(xBase, yBase, heights);
    }

    /// <summary>
    /// 压平Terrain并提升到指定高度。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="height">高度</param>
    public static void Flatten(Terrain terrain, float height)
    {
        TerrainData tData = terrain.terrainData;
        float scaledHeight = height / tData.size.y;

        float[,] heights = new float[tData.heightmapWidth, tData.heightmapHeight];
        for (int i = 0; i < tData.heightmapWidth; i++)
        {
            for (int j = 0; j < tData.heightmapHeight; j++)
            {
                heights[i, j] = scaledHeight;
            }
        }

        tData.SetHeights(0, 0, heights);
    }

    /// <summary>
    /// 设置Terrain的HeightMap。
    /// </summary>
    /// <param name="terrain">Terrain</param>
    /// <param name="heights">HeightMap</param>
    /// <param name="xBase">X起点</param>
    /// <param name="yBase">Y起点</param>
    public static void SetHeights(Terrain terrain, float[,] heights, int xBase = 0, int yBase = 0)
    {
        terrain.terrainData.SetHeights(xBase, yBase, heights);
    }

    // TODO
    // public static void SaveHeightmapData(Terrain terrain, string path) {}

    /// <summary>
    /// 扩大笔刷作用范围。
    /// </summary>
    /// <param name="heights">HeightMap</param>
    /// <param name="deltaHeight">高度变化量[-1,1]</param>
    /// <param name="initHeight">笔刷中心点的初始高度</param>
    /// <param name="row">HeightMap行数</param>
    /// <param name="column">HeightMap列数</param>
    /// <param name="amass">当笔刷范围内其他点的高度已经高于笔刷中心点时是否同时提高其他点的高度</param>
    private static void ExpandBrush(float[,] heights, float deltaHeight, float initHeight, int row, int column, bool amass)
    {
        // 高度限制
        float limit = initHeight + deltaHeight;

        for (int i = 0; i < row; i++)
        {
            for (int j = 0; j < column; j++)
            {
                if (amass) { heights[i, j] += deltaHeight; }
                else  // 不累加高度时
                {
                    if (deltaHeight > 0)  // 升高地形
                    {
                        heights[i, j] = heights[i, j] >= limit ? heights[i, j] : heights[i, j] + deltaHeight;
                    }
                    else  // 降低地形
                    {
                        heights[i, j] = heights[i, j] <= limit ? heights[i, j] : heights[i, j] + deltaHeight;
                    }
                }
            }
        }
    }



    #region 弃用的旧方法
    /*public static*/
    [System.Obsolete]
    void Rise_Old(Terrain terrain, int[] index, float opacity, int size, bool amass = true)
    {
        if (index.Length != 2)
        {
            Debug.LogError("参数错误!");
            return;
        }

        TerrainData tData = terrain.terrainData;

        // heights中存储的是顶点高度,不是斜面的准确高度
        float[,] heights = tData.GetHeights(0, 0, tData.heightmapWidth, tData.heightmapHeight);
        float deltaHeight = opacity / tData.size.y;

        ExpandBrush_Old(heights, index, deltaHeight, size, amass, tData.heightmapWidth, tData.heightmapHeight);
        tData.SetHeights(0, 0, heights);
    }

    /*private static*/
    [System.Obsolete]
    void ExpandBrush_Old(float[,] heights, int[] index, float deltaHeight, int size, bool amass, int xMax, int yMax)
    {
        float limit = heights[index[0], index[1]] + deltaHeight;

        int bound = size / 2;
        for (int offsetX = -bound; offsetX <= bound; offsetX++)
        {
            int x = index[0] + offsetX;
            if (x < 0 || x > xMax) continue;

            for (int offsetY = -bound; offsetY <= bound; offsetY++)
            {
                int y = index[1] + offsetY;
                if (y < 0 || y > yMax) continue;

                if (amass)
                {
                    heights[x, y] += deltaHeight;
                }
                else
                {
                    if (deltaHeight > 0)
                    {
                        // 升高地形
                        heights[x, y] = heights[x, y] >= limit ? heights[x, y] : heights[x, y] + deltaHeight;
                    }
                    else
                    {
                        // 降低地形
                        heights[x, y] = heights[x, y] <= limit ? heights[x, y] : heights[x, y] + deltaHeight;
                    }
                }
            }
        }

        // 平滑方程:y = (cos(x) + 1) / 2;
        //float rad = 180.0f * (smooth / 9) * Mathf.Deg2Rad;
        //float height = (Mathf.Cos(rad) + 1) / 2;
    }
    #endregion
}
 
请问说中文,我们有翻译者
can someone who knows chinese get ready to translate what this guy is about to say
 
那太好了 ,我看了很多次博客,而且是从头到尾的所有博客和 测试视频, 我现在有几个问题。 1.骑兵在对冲的时候,两匹马总是停下来,没有冲击感, 这个碰撞模型还能否再加强。 2. 武器,比如剑能不能砍入身体里边去,而不是像切纸一样速度从头到尾不变, 我希望把剑扎入或者砍入身体,那个人有哀嚎声,然后跪倒在地上抽搐着死去。 3.我希望能像EA1里的哥萨克骑兵的骑枪能把人扎飞起来,然后点一下左键往外一滑骑枪把那个人甩出去再去扎下一个人, 这样视觉冲击力太大了。 4. 我在模组攻略里说不能实时改变地形,所以我就在网上到处找,希望能够在攻城的时候。我希望物理引擎里有攻城炮的炮弹不小心打到地上,能砸出一个大坑来, 或者打到城墙上,城墙能有一定的凹陷(即使砸很多下没有倒塌,但也应该对城墙有损坏,有石头渣从城墙上掉下来),而不是什么事没有。另外应该增加滚木礌石和火油,再加上挖地道。还有架梯子或者工程车不要人全死了还自己在动,应该有停止下来的动画,等着人去再推动。最好绳索就想《天国王朝》里那样,打到工程车上,然后一拽,把工程车拽倒 5.我查了全局光照, 我感觉咱们的光照系统和AC大革命的光照系统不太一样,我希望环境能有一定的历史感、沧桑感, 这样更适合这个游戏风格,而且1.4引擎视频里的光照我感觉是加强了高光,但是漫反射和二次反射没有感觉很明显,细节确实有点严重,主要依据就是从城堡内去广场的时候,城堡内乌黑一片了,之前的细节都消失了。 6. 我的头像那套盔甲太帅了,是我梦寐以求的, 能不能做到游戏里去啊? 7. 我觉得原画方面细节不到位,只有那个诺德骑马拿斧子喊得那个画的很细致, 其他的都很粗糙,应该在原画方面加强一些 8.游戏里的杯子、罐子、皮毛、棉被、棉花包精细度太低了, 就拿那个下棋的来说,那个蜡烛和杯子还是不规则圆形的, 在一个画面只有那么点内容的情况下,完全可以加大画面细节, 不然何提代入感? 9. 我希望打仗的时候,人物出现不要只有一个动作,就是左腿在前,右腿在后。 应该分层次, 农民出场就应该两腿抖如筛糠, 满眼恐惧的, 老兵则是面无表情,轻松至极的面对战争。在开场的时候玩家有没有什么开场白啊。在砍杀的时候也是,老农民动作不规范, 很容易被打倒,而老兵杀人干脆利落。 10.我还看到现在还不是实时环境,还必须退出再进入才能变为早上-中午-晚上,这一点也应该改为实时景色。 11.我到现在也没看到乌云密布、电闪雷鸣、瓢泼大雨的气象系统,真希望能看一看是什么样子的。 12.我还没有看到人物头发飘动的画面, 另外人们骑马的时候,身后背的盾牌难道不和身体有一定小角度的碰撞么,不应该是平行状态的。 13. 布娃娃系统还是以前的那样么, 是否有改进 14.AI寻路系统采用的是A*算法么, 有什么改进么? 15. 咱们是否有HDAO。16,咱们以后是否会支持DX12,现在的引擎能够支持多少核CPU, 我看很多游戏最多只只吃到了6核12线程的, 咱们会有8核的优化么。

That was great. I watched blogs many times and it was all blogs and test videos from beginning to end. I now have a few questions.

1. When the cavalrymen hedged, the two horses always stopped and there was no impact. The collision model could be further strengthened.

2. Weapons, such as swords, cannot be cut into the body, instead of changing speed from head to tail like cutting paper. I want to pluck or cut the sword into the body. The person mourns and then collapses on the ground. Dead.

3. I hope that like the Cossack Cavalry in EA1, I can use the rifle to fly people. Then I click on the left button to go out and throw a rifle to throw that person out and go and pull a person. This is too much visual impact.

4. I said in the Raiders of the module that I can't change the terrain in real time, so I've looked around online and I hope I can attack the city. I hope that the shells of the physics engine will inadvertently hit the ground with a siege cannon, and they will be able to pull out a big hole or hit the wall. The wall can have a certain depression (even if it doesn't collapse, but it should also be against the wall. There is damage, there is stone slag falling from the wall), not what is not. In addition, there should be an increase in mounds of vermiculite and kerosene, plus digging tunnels. There are also ladders or engineering vehicles that don’t want to be dead. They’re still moving themselves. There should be animations that stop and wait for others to push. The best rope is like the "King Dynasty", hit the engineering vehicle, and then a trip, the construction truck tripping.

5. I checked the global illumination. I feel that our lighting system and the lighting system of the AC revolution are not the same. I hope the environment can have a certain sense of history and vicissitudes. This is more suitable for this style of game, and it is in the 1.4 engine video. The light I feel is strengthened by the highlights, but the diffuse reflection and the secondary reflection do not feel very obvious. The details are indeed a bit serious. The main basis is that from the castle to the square, the castle is dark and the previous details have disappeared.

6. My head is very handsome with armor. It's what I dream about. Can it be played in the game?

7. I feel that the details of the original painting are not in place. Only the Nordic horseman with an axe shouts that the painting is very detailed. The others are very rough. They should strengthen some of the original paintings.

8. The precision of the cups, jars, furs, quilts and cotton bags in the game is too low. Take that game, the candle and the cup are still irregularly round, with only a little content in one picture. Under circumstances, it is entirely possible to increase the details of the picture.

9. When I hope to fight, there shouldn't be only one movement for the character. It is the left leg and the right leg. Should be divided into levels, farmers should shake their legs on the court, fearful, veterans are expressionless, easy to face the war. At the beginning of the game there is no opening game player. At the time of the slashing, the old peasants' actions were not standardized and they were easily defeated. The veterans murdered them neatly.

10. I also see that it is not a real-time environment yet. It must be logged out before it can be changed to morning-noon-night. This should also be changed to real-time scenery.

11. I have not seen the weather system with dark clouds, thunder and lightning, and heavy rain. I really hope to see what it looks like.

12. I haven't seen the picture of people's hair floating. When people ride horses, isn't the shield behind the body colliding with the body at a small angle? It should not be parallel.

13. Is the doll system still the same as before? Is there an improvement?

14. Is the A* algorithm used in the AI ​​path finding system?

15. Do we have HDAO? 16. Will we support DX12 in the future? How many core CPUs can be supported by the current engine? I think many games only eat up to 6 cores and 12 threads at a time. We will have 8 cores optimized.
 
The last entry in the chinese forum belongs to him. So he knows there is a chinese forum yet he still posts a chinese text wall in the english forum anyways.
 
Khergitlancer80 I asked him to say what he was saying in chinese because no one can understand what hes saying and that a translator will come by so its not his fault.

In addition, I dont think the devs even bother trying to read chinese, so he probably understands this and wants to ask suggestions in something the devs can understand. It would be pretty bad to shoo him away dont you think?

Heres the Google Translate dump

That was great. I watched blogs many times and it was all blogs and test videos from beginning to end. I now have a few questions.

1. When the cavalrymen hedged, the two horses always stopped and there was no impact. This collision model can be further strengthened.

2. Weapons, such as swords, cannot be cut into the body, instead of changing speed from head to tail like cutting paper. I want to pluck or cut the sword into the body. The person mourns and then collapses on the ground. Dead.

3. I hope that like the Cossack Cavalry in EA1, the rifle can fly people up. Then I click on the left button to go out and throw a rifle to get the man out and then pull a person. This is too much visual impact. .

4. I said in the Raiders of the module that I can't change the terrain in real time, so I've been looking around online and I hope to be able to attack the city. I hope that the shells of the physics engine will inadvertently hit the ground with a siege cannon, and they will be able to pull out a big hole or hit the wall. The wall can have a certain depression (even if it doesn't collapse, but it should also be against the wall. There is damage, there is stone slag falling from the wall), not what is not. In addition, there should be an increase in mounds of vermiculite and kerosene, plus digging tunnels. There are also ladders or engineering vehicles that don’t want to be dead. They’re still moving themselves. There should be animations that stop and wait for others to push. The best rope is like "The King of the North", hit the engineering vehicle, and then a trip, the construction truck tripped

5. I checked the global illumination, I feel that our lighting system and the AC revolution lighting system is not the same I hope that the environment can have a certain sense of history and vicissitudes. This is more suitable for this style of game, and the light in the 1.4 engine video I feel is enhanced by high light, but diffuse reflection and secondary reflection do not feel very obvious, the details are a bit Seriously, the main basis is that when the castle goes to the square, the castle is dark, and the previous details have disappeared.

6. My head is very handsome with the armor. It's what I dream about. Can it be played in the game?

7. I feel that the details of the original painting are not in place. Only the Nordic horseman with his axe shouts that the painting is very detailed. Others are very rough. They should strengthen some of the original paintings.

8. Cups, jars, fur, and quilts in the game The precision of the cotton bag is too low. Take that game, the candle and the cup are still irregularly round. If there is only a little content in a picture, you can increase the picture details completely. Otherwise, empathy?

9. When I hope to fight, there shouldn't be only one movement for the character. It is the left leg and the right leg. Should be divided into levels, farmers should shake their legs on the court, fearful, veterans are expressionless, easy to face the war. At the beginning of the game there is no opening game player. At the time of the slashing, the old peasants' actions were not standardized and they were easily defeated. The veterans murdered them neatly.

10. I also see that it is not a real-time environment yet. It must be logged out before it can be changed to morning-noon-night. This should also be changed to real-time scenery.

11. I have not seen the weather system with dark clouds, thunder and lightning, and heavy rain. I really hope to see what it looks like.

12. I haven't seen the picture of people's hair floating. When people ride horses, isn't the shield behind the body colliding with the body at a small angle? It should not be parallel.

13. Is the doll system still the same as before? Is there any improvement?

14. Is the A* algorithm used in the AI ​​path finding system?

15. Do we have HDAO?

16. Will we support DX12 in the future? How many core CPUs can be supported by the current engine? I think many games only eat up to 6 cores and 12 threads at a time. We will have 8 cores optimized.
 
He was asking if the terrain was gonna be able to change dynamically during gameplay. He says he made some research and found code that works in Unity and maybe it can work in Bannerlord's engine too or at least help them out.

I can try translating his Chinese text using my half assed Chinese education. Lets see if 1 year Chinese classes have paid me off. I am gonna use Translate tools as well to support myself :lol:
-

Thats great .

Ah, I've read blogs all the blogs and watched Test videos, I have a few questions now.

1- When the cavalry is hedging, the two horses always stop and have no impact,  Can this collision model be strengthened?
2- Weapons, such as the sword, whether or not can be cut into the body instead of cutting like paper at the same speed from beginning to end. I wish to thrust or chop my sword into my enemies' body. The man should scream and fall to his knees and die suffering.
3- I wish I could be like the Cossack Cavalry in EA1 with a lance that would tie someone up and then tap the left button and slide the lance out to throw that person out and tie someone down, Thats too much of a visual impact.
4- I saw in the Mount Blade that we cant change the terrain in real time, so I looked around on the Internet. Hoping to be able to attack the city, I hope that the artillery shells with siege engines in the physics engine accidentally hit the ground and could make a big pit. Or hit the city wall, the city wall can have certain deformations ( even if a lot of it did not collapse, but also should be damaging the city wall, there should be stone slag fell from the city wall ),not that there is nothing.In addition, rock and fire oil should be added, plus digging tunnels.There is a ladder or engineering vehicles should not be moving if everyone using it are dead, animation should stop and wait for people to push.The best rope, like in Dynasty of Heaven, is to hit an engineering truck and pull it down .I checked the global illumination ,I feel that our lighting system and the lighting system of the AC revolution are not the same, I hope that the environment can have a certain sense of history and vicissitudes,  This is better for the style of the game, and the illumination in the 1.4 engine video I feel is enhanced by highlights, but diffuse and secondary reflections dont feel very obvious,the details are a bit serious indeed, the main basis is from the castle to the square, the castle black one, before the details are lost.
6- The suit of armour on my profile picture looks great, its my dream. 
7- I dont get this. Even translate does not really help.I think he is talking about how concept art and the real game models does not match each other.
8- The games cups, cans, fur, quilts, cotton bags are too low in textture quality, Take the chess game, the candles and the cups were still irregular and round. When there is only so much content in a texture, it is entirely possible to increase the details of the texture. How do you feel? 
9- I hope that when fighting, the characters do not have only one action, that is, left leg in front, right leg in the back. There should be different levels. When the farmer enters the stage, he should shake his legs like a sieve,  Full of fear, The old soldier should be expressionless and relaxed to the utmost in facing the war.In the opening when the players have no opening words ah.At the time of fighting, the old peasants movements are not standardized. Its easy to get knocked down with and the old soldier kills quickly.
10- I also see that this is not a real-time environment, and that you have to exit and re-enter to change from a morning-noon-evening, which should be changed to a real-time view.
11- I cant see the weather system with dark clouds, thunder and lightning, and heavy rain. I wish I could see howit looks like. 
12- I havent seen images of peoples hair waving , In addition, when people are riding, the shield behind them and the body should collide, they should not be in a parallel state.
13- Is the doll system what it used to be? Are there improvements
14- Is the AI path-finding system using the A * algorithm? Is there any improvement?
15- Do we have HDAO?
16- Will the game support DX12 later? how many core CPUs can the current engine support? I see a lot of games only eat up to 6 core 12 thread, Will we have an 8-core optimization?

Until someone with better Chinese skills comes you are gonna have to go with this . lol :party:  :iamamoron:

I could text this to my friend to translate it properly but this thing is too long. They have exams going on etc.
 
Ill get my friend to help me answer this guys questions tomorrow, but for now I sleep.
 
Hi all, i can answer some of the questions.

4- There is no dynamic terrain modification on run-time. I didn't understand the part about GI.
10-There is no dynamic day-night cycle in missions, the world map decides the atmosphere details when entering a scene.
11-We can show them sometime, but i don't know when.
14- We don't have HDAO, we have something called Scalable Ambient Obscurance.
16- No plans for DX12 right now. We are trying to use all the cores where applicable to increase CPU utilization. No hard-coded 6 or 8 core things in the code.
 
Thank you for the post, Jisting - I found the questions to be interesting and you even managed to break out gkx to answer some of them. You're free to browse whichever forum section you want, but please do try to keep it English here. A Google Translate sweep will do just fine as well! I edited your post with the questions so it has English translations for anyone interested.

Edit: I'm actually being told that it's accepted to post the original message in your native language and then provide a Google translation below so that people have both to check.
 
If the moderation thinks that google translate will do just fine , then I won't intervene again  :roll:

Reus 说:
and you even managed to break out gkx to answer some of them.
Somehow being very poor in English(Or not knowing at all) and trying to talk using translation tool works in this community  :razz:  I suppose that it is sympathetic .
 
后退
顶部 底部