Jump to content

newaged

Members
  • Posts

    31
  • Joined

  • Last visited

newaged's Achievements

  1. The numbers thing is just how the language works. You can still easily generate prefixes with that limitation, just stick a random char or short string in front of the number "string" @ %i @ "_material"
  2. Names and vars can't start with numbers. Switch the names to testmaterial_[%i] and things will start going much smoother.
  3. I never used them outside of the shape editor, but importing and playing the animations worked fine for me. Creating a new project using the dev branch could help, this isn't the first time someone has reported the prebuilt binaries doing things they shouldn't. For future reference - torque does not support shape keys from what I recall, its probably best to disable those. Torque needs triangulated meshes but isn't the best at triangulation, its best to let the modeling program do that when exporting. Use translocrot when exporting with the stock exporter, not matrix.
  4. Imported the cubeman dae and it seems to work just fine for me. What version of torque are you running?
  5. hm... try resetting the scale/pos/rot of everything with shift a maybe? Also get rid of any shapekeys and use loc/rot/scale for keyframes.
  6. http://forums.torque3d.org/viewtopic.php?f=25&t=523 http://forums.torque3d.org/viewtopic.php?f=25&t=576 One of those might help
  7. newaged

    Toon shading

    This resource changes the shading on most objects, making them look like this http://i.imgur.com/slbN28E.png. Changes: shaders\common\lighting\advanced\vectorLightP.hlsl, line 203 float dotNL = dot(-lightDirection, normal); to float dotNL = clamp(smoothstep(0.4, 0.43, dot(-lightDirection, normal)), 0.2, 1.0); shaders\common\lighting\advanced\pointLightP.hlsl, line 163 float nDotL = dot( lightVec, normal ); to float nDotL = clamp(smoothstep(0.4, 0.43, dot( lightVec, normal )), 0.2, 1.0); shaders\common\lighting\advanced\spotLightP.hlsl, line 99 float nDotL = dot( normal, -lightToPxlVec ); to float nDotL = clamp(smoothstep(0.4, 0.43, dot( normal, -lightToPxlVec )), 0.2, 1.0); A more difficult to install version that includes object outlines is currently in progress. http://i.imgur.com/fjN6ebA.png
  8. @deathbravo I believe that problem has been fixed in a recent blender release. @HanaAnderson Yes, you can replace the default character. http://www.garagegames.com/products/torque-3d/fps#/4-characters/#Change_Player_Model . It does not need animations to work. If you were asking if you need to make your own, you probably will.
  9. I would recommend going through a tutorial like this if you have a lot of questions http://www.garagegames.com/products/torque-3d/fps#/3-scripting. It should help you figure a few things out.
  10. Thought I should mention the alternative to editing the model in a modeling program. The shape editor lets you create nodes that are children of bones, so it is possible to add a correct mount point to an object after it is made.
  11. @Duion Yep. Delay, fade time, repeat count and the variances of the first 4 mentioned groups as well.
  12. @Duion It fixes the problem in the full template. The problem will still occur if a playlist has enough of its slots changed from their default values.
  13. @Azaezel I should probably mention that the last comment was about lowering the hardcoded value, not about your idea of detecting filled slots. That would work fine if I knew how to do it. Anyways, I am posting here again because I will probably do github stuff soon. Does anyone have an opinion on this being one of the prs? Its not a pretty solution to the problem, but it doesn't break networking like whats in the engine right now.
  14. Went along with the lower precision idea for a bit, but my basic coding skills weren't enough to make something stable. I decided to use a bunch of flags until I get better at C++. The code changes for anyone who wants them. SFXPlayList::packData( sfx/sfxPlaylist.cpp line 366) ... FOR_EACH_SLOT stream->write( mSlots.mFadeTimeIn.mValue[ i ] ); FOR_EACH_SLOT stream->write( mSlots.mFadeTimeIn.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->write( mSlots.mFadeTimeIn.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->write( mSlots.mFadeTimeOut.mValue[ i ] ); FOR_EACH_SLOT stream->write( mSlots.mFadeTimeOut.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->write( mSlots.mFadeTimeOut.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->write( mSlots.mDelayTimeIn.mValue[ i ] ); FOR_EACH_SLOT stream->write( mSlots.mDelayTimeIn.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->write( mSlots.mDelayTimeIn.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->write( mSlots.mDelayTimeOut.mValue[ i ] ); FOR_EACH_SLOT stream->write( mSlots.mDelayTimeOut.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->write( mSlots.mDelayTimeOut.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->write( mSlots.mVolumeScale.mValue[ i ] ); FOR_EACH_SLOT stream->write( mSlots.mVolumeScale.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->write( mSlots.mVolumeScale.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->write( mSlots.mPitchScale.mValue[ i ] ); FOR_EACH_SLOT stream->write( mSlots.mPitchScale.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->write( mSlots.mPitchScale.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->write( mSlots.mRepeatCount[ i ] ); ... SFXPlayList::unpackData(line 408) ... FOR_EACH_SLOT stream->read( &mSlots.mFadeTimeIn.mValue[ i ] ); FOR_EACH_SLOT stream->read( &mSlots.mFadeTimeIn.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->read( &mSlots.mFadeTimeIn.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->read( &mSlots.mFadeTimeOut.mValue[ i ] ); FOR_EACH_SLOT stream->read( &mSlots.mFadeTimeOut.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->read( &mSlots.mFadeTimeOut.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->read( &mSlots.mDelayTimeIn.mValue[ i ] ); FOR_EACH_SLOT stream->read( &mSlots.mDelayTimeIn.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->read( &mSlots.mDelayTimeIn.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->read( &mSlots.mDelayTimeOut.mValue[ i ] ); FOR_EACH_SLOT stream->read( &mSlots.mDelayTimeOut.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->read( &mSlots.mDelayTimeOut.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->read( &mSlots.mVolumeScale.mValue[ i ] ); FOR_EACH_SLOT stream->read( &mSlots.mVolumeScale.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->read( &mSlots.mVolumeScale.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->read( &mSlots.mPitchScale.mValue[ i ] ); FOR_EACH_SLOT stream->read( &mSlots.mPitchScale.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT stream->read( &mSlots.mPitchScale.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT stream->read( &mSlots.mRepeatCount[ i ] ); change that to this SFXPlayList::packData ... FOR_EACH_SLOT if (stream->writeFlag(mSlots.mFadeTimeIn.mValue[ i ] != -1 )) stream->write( mSlots.mFadeTimeIn.mValue[ i ] ); FOR_EACH_SLOT if (stream->writeFlag( mSlots.mFadeTimeIn.mVariance[ i ][ 0 ] > 0)) stream->write(mSlots.mFadeTimeIn.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT if (stream->writeFlag( mSlots.mFadeTimeIn.mVariance[ i ][ 1 ] > 0)) stream->write(mSlots.mFadeTimeIn.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mFadeTimeOut.mValue[ i ] != -1 )) stream->write( mSlots.mFadeTimeOut.mValue[ i ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mFadeTimeOut.mVariance[i][0] > 0)) stream->write(mSlots.mFadeTimeOut.mVariance[i][0]); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mFadeTimeOut.mVariance[i][1] > 0)) stream->write(mSlots.mFadeTimeOut.mVariance[i][1]); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mDelayTimeIn.mValue[ i ] > 0)) stream->write(mSlots.mDelayTimeIn.mValue[ i ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mDelayTimeIn.mVariance[ i ][ 0 ] > 0)) stream->write(mSlots.mDelayTimeIn.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mDelayTimeIn.mVariance[ i ][ 1 ] > 0)) stream->write(mSlots.mDelayTimeIn.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mDelayTimeOut.mValue[ i ] > 0)) stream->write(mSlots.mDelayTimeOut.mValue[ i ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mDelayTimeOut.mVariance[ i ][ 0 ] > 0)) stream->write(mSlots.mDelayTimeOut.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mDelayTimeOut.mVariance[ i ][ 1 ] > 0)) stream->write(mSlots.mDelayTimeOut.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mVolumeScale.mValue[ i ] != 1)) stream->write(mSlots.mVolumeScale.mValue[ i ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mVolumeScale.mVariance[ i ][ 0 ] > 0)) stream->write(mSlots.mVolumeScale.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mVolumeScale.mVariance[ i ][ 1 ] > 0)) stream->write(mSlots.mVolumeScale.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mPitchScale.mValue[ i ] != 1)) stream->write(mSlots.mPitchScale.mValue[ i ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mPitchScale.mVariance[ i ][ 0 ] > 0)) stream->write(mSlots.mPitchScale.mVariance[ i ][ 0 ] ); FOR_EACH_SLOT if (stream->writeFlag(mSlots.mPitchScale.mVariance[ i ][ 1 ] > 0)) stream->write(mSlots.mPitchScale.mVariance[ i ][ 1 ] ); FOR_EACH_SLOT if (stream->writeFlag( mSlots.mRepeatCount[ i ] > 0)) stream->write( mSlots.mRepeatCount[ i ] ); ..... SFXPlayList::unpackData ... FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mFadeTimeIn.mValue[ i ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mFadeTimeIn.mVariance[ i ][ 0 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mFadeTimeIn.mVariance[ i ][ 1 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mFadeTimeOut.mValue[ i ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mFadeTimeOut.mVariance[ i ][ 0 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mFadeTimeOut.mVariance[ i ][ 1 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mDelayTimeIn.mValue[ i ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mDelayTimeIn.mVariance[ i ][ 0 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mDelayTimeIn.mVariance[ i ][ 1 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mDelayTimeOut.mValue[ i ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mDelayTimeOut.mVariance[ i ][ 0 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mDelayTimeOut.mVariance[ i ][ 1 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mVolumeScale.mValue[ i ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mVolumeScale.mVariance[ i ][ 0 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mVolumeScale.mVariance[ i ][ 1 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mPitchScale.mValue[ i ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mPitchScale.mVariance[ i ][ 0 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mPitchScale.mVariance[ i ][ 1 ] );} FOR_EACH_SLOT if(stream->readFlag()){ stream->read( &mSlots.mRepeatCount[ i ] );} I do realize I could have just changed the slot count, but it still would have sent out a large amount of mostly blank data.
  15. SFXPlaylist's pack function outputs too much data for the bitstream to handle, so I am reducing the amount of data it sends. Some of its default values are -1, so I was wondering if writesignedfloat has any downsides when compared to writefloat. Secondary topic, is assigning 10 bits for general data too much or too little?
×
×
  • Create New...