<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 通過AnimationNode對LowPoly風格的樹進行隨機化處理 ***** ## **零、需求分析** H子走進教室,見到黑板寫著幾個大字 “今日自習——AOI” **H子**:還想問問老師做樹的隨機處理呢。按照AOI老師的習慣,首先就是需求分析吧。樹的模型也已經做好了。 1. 已經有基礎對象 2. 高度有變化 3. 樹干生長方向有變化 4. 樹葉有一定程度的變化 這么看起來不就是很像蘑菇的做法嗎?這樣的話只要順著蘑菇的思路做下去,再進行一些改變就好了 ## **壹、H子的自習筆記【樹木隨機化處理的實現】** **1)** 首先準備好基礎模型 ![](https://box.kancloud.cn/3a2ba2983b100af8656e082a16489309_249x411.png) **2)** 創建一條跟樹木高度一致的曲線,并命名為TreeDir ![](https://box.kancloud.cn/20f0620110ead9f6d24afc22c6a43edd_302x364.png) **3)** 為樹木添加一個曲線形變修改器并拾取TreeDir曲線 ![](https://box.kancloud.cn/cd25d6de3894f9779185cd586b8f4573_503x190.png) **4)** 在曲線樹頂位置的端點添加一個鉤子,用于控制曲線的變化 ![](https://box.kancloud.cn/2f4be7274e09eabcd87fbdfb9fb332c7_270x361.png) **5)** 給模型添加頂點組,用于控制置換形變區間。指定頂點組名稱為Noise ![](https://box.kancloud.cn/e10beedc027cb33f2dbf9b425480b977_1031x459.png) **6)** 給模型添加置換修改器,并設置Noise紋理 同時添加空對象用于控制Noise紋理隨機偏移,空對象命名為TreeNoise ![](https://box.kancloud.cn/3da10cfcf2de22f72eb37d4e96c36e64_259x367.png) ![](https://box.kancloud.cn/c42f72a8f50d9d362cd415741db2c348_501x243.png) **7)** 節點樹的實現,在蘑菇的基礎上進行設計,因為樹木主要都是向上生長,所以無需設置頂部曲線控制的空對象旋轉,只需要控制一定范圍內的移動即可。樹干的彎曲弧度只需要利用曲線本身的貝塞爾曲線處理即可。 ![](https://box.kancloud.cn/9cd509997946b88aef150c8ced0e7fdb_1068x877.png) 從上到下的節點組分別為 1. TreeNoise控制 2. TreeDir控制 3. 樹木縮放控制 **8)** 腳本的實現。通過腳本控制樹木的復制生成,這一步跟蘑菇的處理基本完全一致。以下記錄操作代碼。 ~~~ if(Time % DoFrame == 0 and Time > 0): #if(len(bpy.context.selected_objects) >= 1): # bpy.ops.object.move_to_layer(layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False)) bpy.ops.object.select_all(action='DESELECT') bpy.data.objects[BaseObjectNam].select = True bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(0, 0, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "gpencil_strokes":False, "texture_space":False, "remove_on_cancel":False, "release_confirm":False}) bpy.ops.object.modifier_apply(apply_as='DATA', modifier="置換") bpy.ops.object.modifier_apply(apply_as='DATA', modifier="曲線") bpy.ops.object.apply_all_modifiers() bpy.ops.transform.translate(value=(PosX, PosY, 0), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1) ~~~ **9)** 代碼調用部分節點圖 ![](https://box.kancloud.cn/bcee26d8f39dba4c1d57c0820133673c_1162x595.png) 最后,每10幀就會復制并應用一個模型,并隨機移動到XY平面0-20范圍內任意一點上,以便后續處理 **10)** 最后完整版本的節點圖 ![](https://box.kancloud.cn/35757b14e9eb79e13397fac402d33793_1040x940.png) **11)** 預覽效果 ![](https://box.kancloud.cn/16bc62b35df2f11c21c9a9fa3052a21b_889x460.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看