Gandalf (Wizard)

Yeah, the flashes are in all the Great People in G&K and BNW, besides which there is one cool thing which I've thought about putting on the heads of some "holy people": the effect from a Holy Site, the permanent bluish glow coming from the middle of the improvement and radiating in all directions.
 
Maybe it's wishful thinking, but it would be nice if we could get these kind of effects without being attached to a unit. That way I could trigger "GodRay" on any unit (without modding the unit) or even an empty plot. This might be a reason to revisit Nutty's invisible unit - which could be plopped anywhere for the effect and then disappeared.
 
You can! Remember I was asking about the Chaos Wasteland and Magical Energy? Well, the Magical Energy would have been an effect, not an actual graphic, since the Fallout graphic is not the sparkling cloud, it's a transparent square. The cloud is an effect, so it might be moddable without worrying about the s*** with features, terrains, etc. Same with the Wasteland, I'd need to get the blackened ground looking OK, but once I have, I can attach the Krakatoa effect to get exactly what I wanted. The only thing is that I'd really like to recolor the fallout, but... no recoloring yet:(.
For example, I'm sure you know what it looks like when an improvement is pillaged? The smoke is an effect...
 
Maybe it's wishful thinking, but it would be nice if we could get these kind of effects without being attached to a unit. That way I could trigger "GodRay" on any unit (without modding the unit) or even an empty plot. This might be a reason to revisit Nutty's invisible unit - which could be plopped anywhere for the effect and then disappeared.

There aren't that many triggers for the great prophet, so I am assuming it is the "ART_DEF_VEFFECT_RELIGION_ACTIVATE_FLASH" event from the .ftsxml triggers file:

Spoiler :

<triggers>
<trigger type="FTimedTriggerSound" id="2" time="0.427777767" duration="0" repeat="0" ec="1200" track="1" event="AS3D_UNIT_GREAT_PROPHET_STAFF_DIRT" bone="" tier="-1" />
<trigger type="FTimedTriggerSound" id="3" time="0.474074066" duration="0" repeat="0" ec="1200" track="1" event="AS3D_UNIT_GREAT_PROPHET_SCIENTIST_LATE_SURRENDER" bone="" tier="-1" />
<trigger type="FTimedTriggerSound" id="4" time="0.5314812" duration="0" repeat="0" ec="1400" track="1" event="AS3D_UNIT_GREAT_PROPHET_STAFF_DIRT" bone="" tier="-1" />
<trigger type="FTimedTriggerSound" id="5" time="0.151851565" duration="0" repeat="0" ec="1400" track="1" event="AS3D_UNIT_GREAT_PROPHET_FOOT_$(TERRAIN)" bone="" tier="-1" />
<trigger type="FTimedTriggerSound" id="6" time="0.479629219" duration="0" repeat="0" ec="1400" track="1" event="AS3D_UNIT_GREAT_PROPHET_FOOT_$(TERRAIN)" bone="" tier="-1" />
<trigger type="FTimedTriggerSound" id="7" time="0.3240736" duration="0" repeat="0" ec="1440" track="1" event="AS3D_UNIT_GREAT_PROPHET_FOOT_$(TERRAIN)" bone="" tier="-1" />
<trigger type="FTimedTriggerSound" id="8" time="0.6685186" duration="0" repeat="0" ec="1440" track="1" event="AS3D_UNIT_GREAT_PROPHET_FOOT_$(TERRAIN)" bone="" tier="-1" />
<trigger type="FTimedTriggerSound" id="9" time="0.681481063" duration="0" repeat="0" ec="1440" track="1" event="AS3D_UNIT_GREAT_PROPHET_STAFF_DIRT" bone="" tier="-1" />
<trigger type="FTimedTriggerSound" id="10" time="0" duration="0" repeat="0" ec="1990" track="1" event="AS3D_UNIT_GREAT_PROPHET_GREAT_PERSON_ACTIVATED" bone="" tier="0" />
<trigger type="FTimedTriggerSound" id="11" time="0.0925926045" duration="0" repeat="0" ec="1990" track="1" event="AS3D_UNIT_GREAT_PROPHET_ACTIVATE" bone="" tier="0" />
<trigger type="FTimedTriggerEffect" id="22" time="0.105557568" duration="2" repeat="0" ec="1990" track="2" event="ART_DEF_VEFFECT_RELIGION_ACTIVATE" bone="WORLD_center" />
<trigger type="FTimedTriggerEffect" id="1" time="1.342595" duration="0" repeat="0" ec="1990" track="2" event="ART_DEF_VEFFECT_RELIGION_ACTIVATE_FLASH" bone="WORLD_center" />
</triggers>


If you have read the basic tutorial I wrote this should be a simple cut-and-paste to add it to an event. If you want it permanently, I assume you would simply add it to ALL event codes.
 
If you have read the basic tutorial I wrote this should be a simple cut-and-paste to add it to an event. If you want it permanently, I assume you would simply add it to ALL event codes.

I've read your tutorial, and it looks great -- I just need to find some time to sit down and actually try it out with something. (I'm tempted to try adding spell effects to your Wraith model as an experiment.) Although, the other thing that has me nervous is unpacking the graphics files -- I've already got both SDK and Nexus installed, but I'm not sure if the asset directories are set up to point at Civ V, and using regedit to modify them makes me nervous. X3 It may have to wait until the weekend when I can ensure I'm not tired out and prone to making a mistake that could mess up the programs. :p
 
Although, the other thing that has me nervous is unpacking the graphics files -- I've already got both SDK and Nexus installed, but I'm not sure if the asset directories are set up to point at Civ V, and using regedit to modify them makes me nervous.

Asset directories will unpack to the [...\Steam\steamapps\common\Sid Meier's Civilization V\Resource] directory; there shouldn't be any regedit necessary.
 
Asset directories will unpack to the [...\Steam\steamapps\common\Sid Meier's Civilization V\Resource] directory; there shouldn't be any regedit necessary.
It sounds like he's concerned Nexus is configured improperly.

@bouncymischa:
Either way, you could just use Dragon UnPACKer instead.
 
It sounds like he's concerned Nexus is configured improperly.

@bouncymischa:
Either way, you could just use Dragon UnPACKer instead.

That would be the problem -- I've got Nexus Buddy working, but I remember having to mess around with the regedit to get the asset path working properly, or something. At any rate, so far I haven't been able to unpack the core game files -- Deliverator's tutorial says I should "select Nexus > Script Browser > Extract PAK Files", but my version of Nexus Buddy doesn't seem to have that menu. I installed Dragon UnPACKer, but I'm not sure which directory the .pak files are in...

Should I move this discussion to Nomad's tutorial thread, though?

EDIT: Oh, durr... I suspect I am confusing "Nexus Buddy" with "Nexus". I don't think I've ever gotten Nexus working properly... X3 Fortunately, I don't need Nexus to unpack the files if I can use Dragon UnPACKer... just gotta figure out where the .pak files are.
 
They're .fpk's, and they're in the folder Nomad mentioned above.
EDIT: BTW, you'll need this tool to convert the indexed textures (doesn't apply to unit textures, but it does to apply to a lot of the UI elements).
 
They're .fpk's, and they're in the folder Nomad mentioned above.
EDIT: BTW, you'll need this tool to convert the indexed textures (doesn't apply to unit textures, but it does to apply to a lot of the UI elements).

Ah-ha... that would explain why I was having trouble finding them. I think I found the .fpks, but didn't realize those were the files I needed to unpack. I'll try and give it a shot this weekend -- fortunately, all I really need are the .fxsxml files, although I'd like to go through some of the UI files to find elements to use for some of my custom improvements. (Using the Chateau elements with other buildings would be sweet~)

On the topic of custom effects... thinking over Skaja's files, I remember he used the nuclear blast effect for a grenade, which then got me wondering about a wizard who could use the holy site godray as a casting effect to cast "Power Word Nuke" to make a nuclear blast effect. Not quite sure how you'd assemble the .fxsxml for it, but it was an amusing thought. :p
 
although I'd like to go through some of the UI files to find elements to use for some of my custom improvements.
Sorry for the confusion; let me try again: "(doesn't apply to unit [3D model textures, including improvements], but it does apply to a lot of the UI [user interface] elements)."
 
Sorry for the confusion; let me try again: "(doesn't apply to unit [3D model textures, including improvements], but it does apply to a lot of the UI [user interface] elements)."

Ack! Sorry about that... I've had Ekmek's graphics conversion tutorial on my mind lately so I read "UI" as "unique improvements" this morning, despite having previously read it proper as "user interface" earlier.

This is why I maybe shouldn't write posts first thing in the morning before going to work... X3
 
I'm not following. To be clear, my complaint was that we can't trigger a graphic effect without having a unit or some other graphical object. In other words, I want a line of Lua (or 10 lines ... I don't care) that will give me the effect without some "dummy" unit or improvement or resource. If you know of such Lua, please paste it for us to see!
 
You can attach an effect to any graphical object... including terrain, improvements (pillaged), resources(sparkles), cities(fires), or features(fallout). So if those don't work for you either, you'll need to explain exactly what it is you want before we're on the same page.
And it's no use asking me for Lua, I know absolutely nothing of that beast besides how to comment.:p
 
I think his complaint is not so much about attaching any effect to any object (which, as you say, can be done) -- it's the need to modify objects themselves to get effects. Rereading his original post, he asks if there's any way to create an effect without actually needing to attach it to an object.

It is a somewhat interesting question, since occasionally effects can occur on "empty" hexes -- for example, is the nuclear blast actually attached to anything? Hangman apparently was able to use the nuclear blast effect and attach it to a model, but how does the normal nuclear bomb work? Does it spawn some object momentarily that the blast is attached to?
 
Maybe it's wishful thinking, but it would be nice if we could get these kind of effects without being attached to a unit. That way I could trigger "GodRay" on any unit (without modding the unit) or even an empty plot. This might be a reason to revisit Nutty's invisible unit - which could be plopped anywhere for the effect and then disappeared.

You can attach an effect to any graphical object... including terrain, improvements (pillaged), resources(sparkles), cities(fires), or features(fallout). So if those don't work for you either, you'll need to explain exactly what it is you want before we're on the same page.
And it's no use asking me for Lua, I know absolutely nothing of that beast besides how to comment.:p

@Pazyryk, I agree with what Civitar is saying above. Even gems and other resources have bones for triggered effects to use, as can be seen from the .ftsxml for gems below:

Spoiler :

<trigger type="FTimedTriggerEffect" id="1" time="0" duration="10" repeat="0" ec="1000" track="2" tier="0" event="ART_DEF_VEFFECT_GLITTERING_GEMS_01" bone="FX_Sparkle01" />


I also know nothing of Lua. But to be honest I think that the "invisible unit" option is the most reasonable one - except that it doesn't have to be a whole unit, just a bone or two. Any bone without mesh is invisible, so you could easily create effects in any way you wish using this method.
 
@bouncymischa: I believe the nuclear blast comes from the bomb dropped by the plane. I haven't looked at the ftsxml though, so I may be talking through my hat here.
@Pazyryk: If you want to trigger an effect from a unit, you will need to attach it to the unit somehow. For example, the arrows from an archer are effects (complicated ones, but still effects). If you want to trigger an effect, not just always have it active, then you use the event codes.:)
 
OK, I think I understand. It's possible thiere is an Events.Something() that will fire one of these in the massive pile of undocumented Events:
Spoiler :
AbortCombatSim, ActivePlayerTurnEnd, ActivePlayerTurnStart, AddPopupTextEvent, AddUnitMoveHexRangeHex, AdvisorDisplayHide, AdvisorDisplayShow, AfterModsActivate, AfterModsDeactivate, AILeaderMessage, AIProcessingEndedForPlayer, AIProcessingStartedForPlayer, AIProcessingStepChanged, AnimationSamplingChanged, AppInitComplete, AudioAdvanceCurrentPlaylistTrack, AudioDebugChangeMusic, AudioPlay2DSound, AudioRewindCurrentPlaylistTrack, AudioVolumeChanged, BeforeModsActivate, BeforeModsDeactivate, BuildingLibrarySwap, CameraProjectionChanged, CameraStartPitchingDown, CameraStartPitchingUp, CameraStartRotatingCCW, CameraStartRotatingCW, CameraStopPitchingDown, CameraStopPitchingUp, CameraStopRotatingCCW, CameraStopRotatingCW, CameraViewChanged, ChangeGameState, CityDestroyedRazedClearedAndSalted, CityHandleCreated, CityRuinsCreated, ClearDiplomacyTradeTable, ClearHexHighlights, ClearHexHighlightStyle, ClearUnitMoveHexRange, ConnectedToNetworkHost, DisplayMovementIndicator, DontRecordCommandStreams, DragCamera, EndCombatSim, EndGameShow, EndTurnBlockingChanged, EndTurnTimerUpdate, EndUnitMoveHexRange, Event_ToggleTradeRouteDisplay, EventOpenOptionsScreen, EventPoliciesDirty, ExitToMainMenu, FloodplainCreated, FrontEndPopup, GameMessageChat, GameOptionsChanged, GameplayAlertMessage, GameplayFX, GameplaySetActivePlayer, GameViewTypeChanged, GenericWorldAnchor, GlobalUnitScale, GoldenAgeEnded, GoldenAgeStarted, GoToPediaHomePage, GraphicsOptionsChanged, GreatWallCreated, HexFOWStateChanged, HexYieldMightHaveChanged, InitCityRangeStrike, InterfaceModeChanged, KeyUpEvent, LandmarkLibrarySwap, LanguageChanging, Leaderboard_ScoresDownloaded, LeavingLeaderViewMode, LoadScreenClose, LocalMachineAppUpdate, LocalMachineUnitPositionChanged, MarshCreated, MarshRemoved, MinimapClickedEvent, MinimapTextureBroadcastEvent, MultiplayerConnectionComplete, MultiplayerConnectionFailed, MultiplayerGameAbandoned, MultiplayerGameHostMigration, MultiplayerGameInvite, MultiplayerGameLastPlayer, MultiplayerGameLaunched, MultiplayerGameListClear, MultiplayerGameListComplete, MultiplayerGameListUpdated, MultiplayerGamePlayerDisconnected, MultiplayerGamePlayerUpdated, MultiplayerHotJoinCompleted, MultiplayerHotJoinStarted, MultiplayerJoinRoomAttempt, MultiplayerJoinRoomComplete, MultiplayerJoinRoomFailed, MultiplayerPingTimesChanged, MultiplayerProfileDisconnected, MultiplayerProfileFailed, NaturalWonderRevealed, NewGameTurn, NotificationActivated, NotificationAdded, NotificationRemoved, NotifyAILeaderInGame, OpenInfoCorner, OpenPlayerDealScreenEvent, ParticleEffectReloadRequested, ParticleEffectStatsRequested, ParticleEffectStatsResponse, PlayerChoseToLoadGame, PlayerChoseToLoadMap, PlayerVersionMismatchEvent, PreGameDirty, RandomSeedSet, RecordCommandStreams, RemotePlayerTurnEnd, RemotePlayerTurnStart, RemoveAllArrowsEvent, RequestYieldDisplay, RestartGame, RiverTileAdded, RunCombatSim, SearchForPediaEntry, SequenceGameInitComplete, SerialEventBuildingSizeChanged, SerialEventCameraBack, SerialEventCameraCenter, SerialEventCameraForward, SerialEventCameraIn, SerialEventCameraLeft, SerialEventCameraOut, SerialEventCameraRight, SerialEventCameraSetCenterAndZoom, SerialEventCameraStartMovingBack, SerialEventCameraStartMovingForward, SerialEventCameraStartMovingLeft, SerialEventCameraStartMovingRight, SerialEventCameraStopMovingBack, SerialEventCameraStopMovingForward, SerialEventCameraStopMovingLeft, SerialEventCameraStopMovingRight, SerialEventCityCaptured, SerialEventCityContinentChanged, SerialEventCityCreated, SerialEventCityCultureChanged, SerialEventCityDestroyed, SerialEventCityHexHighlightDirty, SerialEventCityInfoDirty, SerialEventCityPopulationChanged, SerialEventCityScreenDirty, SerialEventCitySetDamage, SerialEventDawnOfManHide, SerialEventDawnOfManShow, SerialEventEndTurnDirty, SerialEventEnterCityScreen, SerialEventEraChanged, SerialEventEspionageScreenDirty, SerialEventExitCityScreen, SerialEventFeatureCreated, SerialEventFeatureDestroyed, SerialEventForestCreated, SerialEventForestRemoved, SerialEventGameDataDirty, SerialEventGameInitFinished, SerialEventGameMessagePopup, SerialEventGameMessagePopupProcessed, SerialEventGameMessagePopupShown, SerialEventGreatWorksScreenDirty, SerialEventHexCultureChanged, SerialEventHexDeSelected, SerialEventHexGridOff, SerialEventHexGridOn, SerialEventHexHighlight, SerialEventHexSelected, SerialEventImprovementCreated, SerialEventImprovementDestroyed, SerialEventImprovementIconCreated, SerialEventImprovementIconDestroyed, SerialEventInfoPaneDirty, SerialEventJungleCreated, SerialEventJungleRemoved, SerialEventLeaderToggleDebugCam, SerialEventLeagueScreenDirty, SerialEventMouseOverHex, SerialEventQueueFlushed, SerialEventRawResourceCreated, SerialEventRawResourceDestroyed, SerialEventRawResourceIconCreated, SerialEventRawResourceIconDestroyed, SerialEventResearchDirty, SerialEventRoadCreated, SerialEventRoadDestroyed, SerialEventScoreDirty, SerialEventScreenShot, SerialEventScreenShotTaken, SerialEventStartGame, SerialEventTerrainDecalCreated, SerialEventTerrainOverlayMod, SerialEventTest, SerialEventTestAnimations, SerialEventToggleBridgeState, SerialEventTurnTimerDirty, SerialEventUnitCreated, SerialEventUnitDestroyed, SerialEventUnitDestroyedInCombat, SerialEventUnitFacingChanged, SerialEventUnitFlagSelected, SerialEventUnitInfoDirty, SerialEventUnitMove, SerialEventUnitMoveToHexes, SerialEventUnitSetDamage, SerialEventUnitTeleportedToHex, SerialEventUpdateAllHexCulture, ShowAttackTargets, ShowHexYield, ShowMovementRange, ShowPlayerChangeUI, SpawnArrowEvent, SpecialTileAdded, SpecificCityInfoDirty, StartUnitMoveHexRange, StateMachineDumpStates, StateMachineRequestStates, StrategicViewStateChanged, SystemUpdateUI, TaskListUpdate, TeamMet, TechAcquired, ToggleDisplayUnits, ToolTipEvent, UIPathFinderUpdate, UnitActionChanged, UnitDataEdited, UnitDataRequested, UnitDebugFSM, UnitEmbark, UnitFlagUpdated, UnitGarrison, UnitHandleCreated, UnitHexHighlight, UnitLibrarySwap, UnitMarkThreatening, UnitMemberCombatStateChanged, UnitMemberCombatTargetChanged, UnitMemberOverlayAdd, UnitMemberOverlayMessage, UnitMemberOverlayRemove, UnitMemberOverlayShowHide, UnitMemberOverlayTargetColor, UnitMemberPositionChanged, UnitMoveQueueChanged, UnitNameChanged, UnitResetAnimationState, UnitSelectionChanged, UnitSelectionCleared, UnitShouldDimFlag, UnitStateChangeDetected, UnitTypeChanged, UnitVisibilityChanged, UserRequestClose, VisibilityUpdated, WallCreated, WarStateChanged, WonderCreated, WonderEdited, WonderRemoved, WonderStateChanged, WonderTogglePlacement, WonderTypeChanged, WorldMouseOver
I think what I really need is a very simple invisible unit with a single bone. Then I can modify its fxsxml/ftsxml files to attach an effect. Then I can plop unit and fire effect any time I want. Or really what I need is a set of these (inv_unit_1, _2, _3, etc.) so that I can have any number of effects. Any interest in making these for me Nutty?

Sorry for the continued thread hijack. (Although it's related to thread tangentially since we are trying to reverse engineer special effects to use for fantasy mod magic.)
 
You could just use the invisible unit I gave you with multiple fxsxml/ftsxml files, one for each effect you want. All of them can reference the same .gr2/.dds.

[Though I suppose there's a small amount of overhead that could be removed by making it a simpler unit, I don't know that it's worth it].

EDIT: Oh, wait. Won't the other unit be hidden when a new unit is plopped in its place (like when you change from a civilian to a military unit in the same hex)?
 
EDIT: Oh, wait. Won't the other unit be hidden when a new unit is plopped in its place (like when you change from a civilian to a military unit in the same hex)?
Yes, which kind of kills that idea. That leaves plot improvement or resource (or feature?), which is somewhat awkward but doable. Lua could be used to swap back what was on plot before. Feature might be best if it actually updates in-game (the terrain texture doesn't for features with ID > 6, but maybe the animation does).

Edit: I keep thinking Events.GameplayFX(int) is what we need. This gives the "lights from above with sound" effect you see with unit selection. It has an arg but it doesn't seem to matter what I supply. (The dll uses this but always supplies -1.) Is there some way to figure out the int value associated with these animations?
 
Top Bottom