News › Forums › RAIN › General Discussion and Troubleshooting › New version of RAIN available
This topic contains 18 replies, has 5 voices, and was last updated by TonyV125 5 days, 17 hours ago.
-
AuthorPosts
-
January 2, 2023 at 4:08 pm #40669
We just posted a new version of RAIN, available from the Download page. This version is compatible with Unity 5.3 and up, and includes a number of bug fixes and updates.
http://legacy.rivaltheory.com/rain/download/
Officially, RAIN is no longer a supported product, but feel free to continue using it, using these forums, etc. Depending on our developer availability, we will continue to provide critical updates to RAIN for while longer.
For anyone interested in the future of Rival Theory AI, visit our main page at rivaltheory.com and check out Sentio.
Thanks!
Prime
January 6, 2023 at 12:31 pm #40674Thanks for taking the time to develop and release this! I’m happy (and grateful) to see that you and your team are continuing to publish updates. RAIN has proven valuable to several projects for us.
January 10, 2023 at 2:42 pm #40677Hi, first, thanks so much for the continued support! That is awesome and very much appreciated.
I test updated today and all my behavior trees are now unuseable. If I select a behavior tree in the project window the Inspector states it is “no longer used” while showing a link to BTAsset. I did the update in 5.5.0 as well as 5.6.0B3 and 5.4.3f1 as well as 5.3.7f1 on a different computer. When the new package is imported and the behavior trees are updated it creates completely blank text files with the same names… I see the text doc is the new format for bx trees as when I create a new behavior tree it creates a similar but functioning text doc…
Here are the errors that showed up…
RAINSerializer: Couldn’t convert to System.Int32
UnityEngine.Debug:LogWarning(Object)
RAIN.Serialization.RAINSerializer:DeserializeObjectFromString(Type, String, Object&)
RAIN.Serialization.RAINSerializer:DeserializeObjectFromString(String, Int32&)
RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object)
RAIN.Core.RAINComponent:Deserialize()
RAIN.Entities.EntityRig:Deserialize()
RAIN.Core.RAINComponent:UpdateSerialization()
RAIN.Serialization.FieldWalker:Reset()
RAIN.Serialization.FieldWalker:.ctor(IRAINSerializable)
RAINEditor.Core.RAINComponentEditor:OnGizmoGUI(RAINComponent, GizmoType)
UnityEditor.AssetDatabase:MoveAssetToTrash(String)
RAINEditor.Utility.RAINVersion:RemoveOldShaders()
RAINEditor.Utility.RAINVersion:UpdateVersion()
UnityEditor.EditorApplication:Internal_CallDelayFunctions()BTAsset: problem versioning 1.8 >= 1.8
UnityEngine.Debug:LogWarning(Object)
RAIN.BehaviorTrees.BTAsset:OnVersion(String)
RAIN.Core.RAINScriptableObject:Deserialize()
RAIN.Core.RAINScriptableObject:UpdateSerialization()
RAIN.Core.RAINScriptableObject:OnEnable()BTAsset: problem versioning 1.8 >= 1.8
UnityEngine.Debug:LogWarning(Object)
RAIN.BehaviorTrees.BTAsset:OnVersion(String)
RAIN.Core.RAINScriptableObject:Deserialize()
RAIN.Core.RAINScriptableObject:UpdateSerialization()
RAIN.Core.RAINScriptableObject:OnEnable()
UnityEditor.AssetDatabase:SaveAssets()
RAINEditor.RAINSettings:get_ProjectSkin()
RAINEditor.RAINSettings:get_SkinStyles()
RAINEditor.Utility.RAINEditorHelper:LookLikeRAINSkin()
RAINEditor.Core.RAINComponentEditor:OnInspectorGUI()
UnityEditor.DockArea:OnGUI()RAINSerializer: Couldn’t convert to System.Int32
UnityEngine.Debug:LogWarning(Object)
RAIN.Serialization.RAINSerializer:DeserializeObjectFromString(Type, String, Object&)
RAIN.Serialization.RAINSerializer:DeserializeObjectFromString(String, Int32&)
RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object)
RAIN.Core.RAINComponent:Deserialize()
RAIN.Entities.EntityRig:Deserialize()
RAIN.Core.RAINComponent:UpdateSerialization()
RAIN.Core.RAINComponent:Awake()
RAIN.Entities.EntityRig:Awake()
UnityEngine.Object:Instantiate(Transform, Vector3, Quaternion)
DarkTonic.CoreGameKit.PoolBoss:InstantiateForPool(Transform, Int32) (at Assets/Plugins/DarkTonic/CoreGameKit/Scripts/PoolBoss/PoolBoss.cs:233)
DarkTonic.CoreGameKit.PoolBoss:CreatePoolItemClones(PoolBossItem, Boolean) (at Assets/Plugins/DarkTonic/CoreGameKit/Scripts/PoolBoss/PoolBoss.cs:199)
DarkTonic.CoreGameKit.PoolBoss:Initialize() (at Assets/Plugins/DarkTonic/CoreGameKit/Scripts/PoolBoss/PoolBoss.cs:131)
DarkTonic.CoreGameKit.PoolBoss:Awake() (at Assets/Plugins/DarkTonic/CoreGameKit/Scripts/PoolBoss/PoolBoss.cs:117)ObjectDocument: Invalid ObjectDocumentType
at RAIN.Serialization.ObjectDocument.CreateDocument (ObjectDocumentType aType) [0x00000] in <filename unknown>:0
at RAIN.Minds.BasicMind.GetTreeBindingsFromTrees () [0x00000] in <filename unknown>:0
at RAIN.Minds.BasicMind.UpdateTreeBindings () [0x00000] in <filename unknown>:0
at RAINEditor.Minds.BasicMindEditor.DrawInspector (System.String aLabel, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
at RAINEditor.TypeEditors.RAINTypeEditor.DrawFieldForInspector (RAINEditor.Core.RAINComponentEditor aComponentEditor, System.String aLabel, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
at RAINEditor.TypeEditors.RAINTypeEditor.DrawFieldForInspector (RAINEditor.Core.RAINComponentEditor aEditor, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
at RAINEditor.TypeEditors.RAINTypeEditor.DrawFieldForInspector (RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
at RAINEditor.Core.AIEditor.DrawAIElements (System.String aLabel, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
at RAINEditor.Core.AIEditor.DrawInspector (System.String aLabel, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
at RAINEditor.TypeEditors.RAINTypeEditor.DrawFieldForInspector (RAINEditor.Core.RAINComponentEditor aComponentEditor, System.String aLabel, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
at RAINEditor.TypeEditors.RAINTypeEditor.DrawFieldForInspector (RAINEditor.Core.RAINComponentEditor aEditor, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
at RAINEditor.Core.AIRigEditor.DrawComponentForInspector (RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
at RAINEditor.Core.RAINComponentEditor.OnInspectorGUI () [0x00000] in <filename unknown>:0
UnityEngine.Debug:LogError(Object)
RAINEditor.Core.RAINComponentEditor:OnInspectorGUI()- This reply was modified 1 week ago by christougher.
- This reply was modified 1 week ago by christougher.
January 10, 2023 at 3:33 pm #40682Can you send us a couple of your behavior trees so we can test them ourselves? The original assets and metas before the update.
Send to support@rivaltheory.com
Thx
January 10, 2023 at 10:25 pm #40684Same thing happened to me when I imported RAIN into an existing project. It doesn’t look like the new version of RAIN changed any of my scripts or behavior tree files in the AI folder. but to be sure I copied the original AI folder from a backup to the updated project to try to fix the issue, but same error. I then copied the RAIN folder from the backup to the updated project. RAIN is back to version 2.1.11, but everything is working as it did before.
For the record, this is a Unity Project that I stopped working on almost a year ago and just recently went back to a few weeks ago. Unity updated it to be compatible with 5.3 once I opened it in that version. It manually adjusted some deprecated code and I get a few warnings about my textures, but everything works in the game (with RAIN 2.1.11).
Need to quit for now, but will experiment with this more tomorrow. I’ll try starting a new project and see what kind of results I get.
Thanks!
January 11, 2023 at 7:47 am #40685Looks like there is a problem with the serializer being able to update older projects. We’re working on a fix and will post something out as soon as we can.
Thx
prime
January 11, 2023 at 10:58 am #40686Version 2.1.18 is available from the Rival Theory website to address the project upgrade issues.
New version should be available on the Asset Store within a couple of days.
January 11, 2023 at 12:06 pm #40689That’s great news! Thanks so much for still supporting RAIN and putting the time in to provide these critical updates. Very much appreciated.
January 11, 2023 at 12:59 pm #40690Just downloaded the latest version from the RAIN download page on this site. Things are a little better. I now see my waypoints in the editor (which didn’t appear when using the lastest version in the asset store), but the Behavior Tree Editor is still empty and doesn’t show any of my trees in the drop-down menu.
For this older project, I may stick with the older version of RAIN that works for me 2.1.11 and try 2.1.18 with a new project.
Thanks for trying. If you’re interested, I get the following warning after compiling…
RAINSerializer: Couldn’t deserialize type: System.Object
UnityEngine.Debug:LogWarning(Object)
RAIN.Serialization.RAINSerializer:DeserializeObjectFromString(Type, String, Object&)
RAIN.Serialization.RAINSerializer:DeserializeObjectFromElement(ObjectElement, Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeFieldFromElement(ObjectElement, String, String[], Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeClassFromElement(ObjectElement, Object)
RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeObjectFromElement(ObjectElement, Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeObjectFromElement(ObjectElement, Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeFieldFromElement(ObjectElement, String, String[], Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeClassFromElement(ObjectElement, Object)
RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeObjectFromElement(ObjectElement, Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeFieldFromElement(ObjectElement, String, String[], Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeClassFromElement(ObjectElement, Object)
RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeObjectFromElement(ObjectElement, Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeFieldFromElement(ObjectElement, String, String[], Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeClassFromElement(ObjectElement, Object)
RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object, Object&)
RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object)
RAIN.Core.RAINComponent:Deserialize()
RAIN.Core.AIRig:Deserialize()
RAIN.Core.RAINComponent:UpdateSerialization()
RAIN.Serialization.FieldWalker:Reset()
RAIN.Serialization.FieldWalker:.ctor(IRAINSerializable)
RAINEditor.Core.RAINComponentEditor:OnGizmoGUI(RAINComponent, GizmoType)
UnityEditor.DockArea:OnGUI()January 11, 2023 at 2:39 pm #40691Thanks again for the critical updates!
Mine converted fine this time, please send them your behavior trees to iron out the kinks.
My only problem otherwise is that my custom action from here http://legacy.rivaltheory.com/forums/topic/walk-waypoint-network-beginner/page/2/#post-35449 is broken… drat…I get this error
InvalidCastException: Cannot cast from source type to destination type.
ChooseWaypoint.Execute (RAIN.Core.AI ai) (at Assets/AI/Actions/RainRandomWaypoint.cs:63)
RAIN.BehaviorTrees.BTActionNode.Execute (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTSequencerNode.Execute (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTRandomNode.Execute (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTParallelNode.Execute (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTParallelNode.Execute (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTSequencerNode.Execute (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTConstraintNode.Execute (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTParallelNode.Execute (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTConstraintNode.Execute (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTSelectorNode.Execute (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTParallelNode.Execute (RAIN.Core.AI ai)
RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
RAIN.Minds.BasicMind.Think ()
RAIN.Core.AI.Think ()
RAIN.Core.AIRig.AIUpdate ()
RAIN.Core.AIRig.Update ()- This reply was modified 6 days, 23 hours ago by christougher.
January 11, 2023 at 6:25 pm #40693What’s on line 63?
January 11, 2023 at 6:27 pm #40694@TonyV125 - We’ll take another look, and we may follow up to see if we can get your BTs so we can try upgrading them in our debug build. Thx
January 11, 2023 at 7:16 pm #40695Thanks @prime. I sent them to the support email address in case it helps. I may end up rewriting them anyhow, so it’s no problem if this is just an issue with my BTs. I can work around it.
January 11, 2023 at 7:22 pm #40696I sent it to the support address. I sent the script slightly modified to the updated api so it’s line 66 on that one.
Edit-
Here’s the line
lastWaypoint = ((VectorPathNode)tNode.GetConnectionOut(tRandomEdge).ToNode).NodeIndex;- This reply was modified 6 days, 17 hours ago by christougher.
January 12, 2023 at 10:13 am #40698Edit: Apparently I can’t read as you literally posted the line right above me.
I haven’t been able to see the code yet, but if you kept the lines that cast to VectorPathNode you should change them to WaypointPathNode instead. Like this part:
//Check all connections to our current waypoint. Create a list of valid connections, excluding //those that go to our lastWaypoint. Choose randomly from that list NavigationGraphNode tNode = waypointSet.Graph.GetNode(currentWaypoint); if (tNode.OutEdgeCount > 0) { List<int> tConnectedNodes = new List<int>(); for (int k = 0; k < tNode.OutEdgeCount; k++) { //int tIndex = ((VectorPathNode)tNode.EdgeOut(k).ToNode).NodeIndex; int tIndex = ((WaypointPathNode)tNode.EdgeOut(k).ToNode).NodeIndex; if ((tIndex != lastWaypoint) && (!tConnectedNodes.Contains(tIndex))) tConnectedNodes.Add(tIndex); } lastWaypoint = currentWaypoint; if (tConnectedNodes.Count == 0) //currentWaypoint = ((VectorPathNode)tNode.EdgeOut(0).ToNode).NodeIndex; currentWaypoint = ((WaypointPathNode)tNode.EdgeOut(0).ToNode).NodeIndex; else currentWaypoint = tConnectedNodes[UnityEngine.Random.Range(0, tConnectedNodes.Count)]; }
-
AuthorPosts
You must be logged in to reply to this topic.