1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

забрать движение с бипеда на модель

Тема в разделе "MAXScript", создана пользователем Geser, 26 сен 2005.

Модераторы: Savin Denis
  1. Geser

    Geser Активный участник

    С нами с:
    11.10.2005
    Сообщения:
    91
    Симпатии:
    0
    Баллы:
    5
    Люди, помогите пожалуйста написать срипт:
    есть бипед который управляет моделью. модель состоит из разрывных жестких частей, например нога состоит из 3 частей - ступня, бедро и голень. Части привязаны к бипеду - некоторые жестко, некоторые сразу к двум костям через констрейнты. Надо сделать так, чтобы после удаления бипеда части имели ключевые кадры с нужной частотой через N кадров.

    Я сделал модель, заанимировал, выделил некоторые кадры и сказал SetKeys. Но почему то после удаления бипеда части модели на встают в выбранных кадрах в нужные позиции.
    Еще попробовал написать такой скрипт для бедра модели
    animate on
    for t in 0 to 400 by 5 do
    at time t (
    obj = $Model_ThighR
    t = obj.transform
    obj.transform = t
    )
    Ключевые кадры расставились с нужной частотой, но опять после удаления бипеда бедро в нужные позиции не становится.
     
  2. Geser

    Geser Активный участник

    С нами с:
    11.10.2005
    Сообщения:
    91
    Симпатии:
    0
    Баллы:
    5
    Нашел скрипт.
     
  3. IN_human

    IN_human Активный участник

    С нами с:
    14.10.2005
    Сообщения:
    192
    Симпатии:
    0
    Баллы:
    11
    Не парься, просто скопируй шейпы с объектов на кости бипеда:
    что-то типа:
    $Bip01Head.baseobject = $Head.baseobject

    Ну а если надо приконстрейненому сколапсить анимацию:

    macroScript AnimBake category:"IN_tools"
    (
    global objArr, transArr, nameArr
    ----------------------------------------------------------------------------------
    rollout storeAnim "Bake Animation v1.1"
    (
    group "Time"
    (
    spinner startT "Start: " range:[-9999999,9999999,animationRange.start] type:#integer fieldWidth:45 align:#center across:2
    spinner endT " End: " range:[-9999999,9999999,animationRange.end] type:#integer fieldWidth:45 align:#center
    )
    button store "Store" width:100
    button restore "Restore" width:100 enabled:false
    label nodeFind "Find node by:"
    checkButton handleButton "Handle" across:2 align:#center width:90 checked:true
    checkButton nameButton "Name" width:90
    label stateString "ready"
    on handleButton changed state do
    (
    nameButton.state = not state
    )
    on nameButton changed state do
    (
    handleButton.state = not state
    )
    on store pressed do
    (
    objArr = #()
    nameArr = #()
    transArr = #()
    --max time start
    --max time forward
    --max time back
    if $!=undefined do
    (
    if (classOf $)==objectSet then for i in $ do
    (
    append objArr i.handle
    append nameArr i.name
    append transArr #()
    )
    else
    (
    objArr = #($.handle)
    nameArr = #($.name)
    append transArr #()
    )
    for j=startT.value to endT.value do
    (
    --max time forward
    if (classOf $)==objectSet then for i=1 to $.count do
    (
    at time j append transArr $.transform
    stateString.text = j as string
    )
    else
    (
    at time j append transArr[1] $.transform
    )
    )
    stateString.text = "stored"
    restore.enabled = true
    )
    )
    on restore pressed do undo "Bake animation" on
    (
    for i=1 to objArr.count do
    (
    if handleButton.state then curObj = maxOps.getNodeByHandle ObjArr
    else curObj = getNodeByName nameArr
    curObj.position.controller = linear_position()
    curObj.rotation.controller = Euler_XYZ()
    curObj.scale.controller = scale_script()
    )
    animate on
    for j=1 to transArr[1].count do
    (
    for i=1 to objArr.count do
    (
    if handleButton.state then curObj = maxOps.getNodeByHandle ObjArr
    else curObj = getNodeByName nameArr
    at time (startT.value+j-1) curObj.transform = transArr[j]
    stateString.text = j as string
    )
    )
    stateString.text = "stored"
    )
    )
    ---------------------------------------------------------------------
    createDialog storeAnim width:280
    )

    --я крут 8)))
     
Модераторы: Savin Denis

Поделиться этой страницей