Jump to content

Creating a tribute videoclip for the original Baldur's Gate. Help needed.


Recommended Posts

Hi all,

We are a tribute band to XX century games (https://www.youtube.com/channel/UCNXjc3kOGV4qX56LHjUtlUg). As for now we only publish song with "videoclip". We have many already recorded songs waiting to be released because of that. Next in the cue is BG's.

We want to do a machinima video based on the original BG. Basically a party (Minsc, Khalid, Xzar..) moving from A to B chatting following a "funny" timed script that would last ~2 minutes. There is no need for it to be playable at any time (I think I'm looking to create a long cutscene with dialogs).

I've been looking/asking around and was addressed here (https://gibberlings3.github.io/iesdp/main.htm) which looks promising. There are many funcitions that seems that would do the job:

Spoiler

1 ActionOverride(O:Actor*,A:Action*)
7 CreateCreature(S:NewObject*,P:Location*,I:Face*)
8 Dialogue(O:Object*)
8 Dialog(O:Object*)
23 MoveToPoint(P:Point*)
24 Panic()
29 RunAwayFrom(O:Creature*,I:Time*)
40 PlayDead(I:Time*)
49 MoveViewPoint(P:Target*,I:ScrollSpeed*Scroll)
61 StartTimer(I:ID*,I:Time*)
63 Wait(I:Time*)
66 DayNight(I:TimeOfDay*Time)
67 Weather(I:Weather*Weather)
68 CallLightning(O:Target*)
83 SmallWait(I:Time*)
84 Face(I:Direction*)
85 RandomWalk()
103 MoraleInc(O:Target*,I:Morale*)
107 MoveToOffset(P:Offset*)  
114 ForceSpellPoint(P:Target,I:Spell*Spell)
114 ForceSpellPointRES(S:RES*, P:Target)
115 SetGlobalTimer(S:Name*,S:Area*,I:Time*GTimes)
120 StartCutScene(S:CutScene*)
121 StartCutSceneMode()
137 StartDialog(S:DialogFile*,O:Target*)
138 SetDialog(S:DialogFile*)
151 DisplayString(O:Object*,I:StrRef*)
160 ApplySpell(O:Target,I:Spell*Spell)
160 ApplySpellRES(S:RES*, O:Target)
163 ReputationInc(I:Reputation*)
165 AddExperiencePartyGlobal(S:Name*,S:Area*)
173 AddJournalEntry(I:Entry*,I:Type*JourType)
181 ReallyForceSpell(O:Target,I:Spell*Spell)
198 StartDialogueNoSet(O:Object*)
199 TextScreen(S:TextList*)

But after some research I really do not know how to start.

  • Prepare a savegame file with the party I want in the place I want and then "play" the script?
  • Do a complete set up?

Can any of these be done? ...How?

I feel like if I had an example covering the initial set-up, and some calls to function, setting up a dialog, being able to test timmings would be a nice start.

I'am a bit clueless, and that's why I am asking for your help.

Thanks !!!

Edited by Mike1072
cleaned up formatting
Link to comment

Yeah, it is possible to add new cutscenes and have them do almost arbitrary things. The script itself can teleport and move the actors wherever you need them, triggered on a hotkey. So the save only has to be roughly appropriate (the more you prepare, the less you have to script).

But it's all pretty nasty, since there's so many idiosyncrasies and custom file formats involved. You'll need NearInfinity, the editor,  and plenty of patience. I suggest you rather try to recruit implementation help once the storyboard is ready.

You'll also want to use overhead text instead of proper dialogs, otherwise the non-interactivity will be broken.

Link to comment

That sounds promising!

I started trying to fake the gameplay with Adobe animate and I do not think it's possible at all.. so knowing it can be done with the engine is a new hope.

I have the save and also do have the script/storyB (we are only missing the timecode as I'd like to have some dialogues triggered at specific time.. and also make sure it can be read with no need to pause). The song is ready as well, is a custom version of the title screen theme, well recorded at the studio and so.

If someone is open to take part in the implementation process it'd be great !!  It is not a video with everything decided, so we are open to let everyone participating have their own peace of influence in the final result.

Thanks again !!!

Edited by Ziu VRM
Links outdated
Link to comment

Hi all,

Having someone with knowledge of the tools to get involved would be great. But we really want to finish this project at some point so I'm back to the original idea which is trying to do it somehow..
 
I do not have a single clue on how to start from scratch so I feel I'd need to get some sort of setup done from which it could call to functions and so.. Having a recycled example where I only had to change the content and the script itself would be a nice beginning.
 
Since linx comments were a bit discourageous I'm thinking on another approach, the "NPC human-acting".
  • Getting 6 pals, each on a different PC, to join us and together pretend that we are actors moving and writing what is scripted at the precise moment. The 6th player should be recording the scene guess.
That would limit options a bit and for sure it would need a nice amount of editing. I've never used multiplayer.. do you think it could do the job?
 
The 1st option is still using the engine and that's why I keep posting so let's see what can be done !!
Link to comment

Hi guys,

We've managed to start doing something. I'll post it here in case it may be of interest for anyone..

It is an inelegant "hack" to the gemRB.

bg1/GUIINV.py

import time
import MessageWindow

...

def UpdateInventoryWindow ():
"""Redraws the inventory window and resets TopIndex."""

Window = InventoryWindow

pc = GemRB.GameGetSelectedPCSingle ()
GemRB.CreateCreature(pc, "KOBOLD", 1, 1)  # KOBOLD 122
GemRB.SetPlayerStat (pc, IE_XP, 330)
MessageWindow.TMessageTA.Append("[p][color=f1f28d]Q'apla[/color][/p]\n")
time.sleep(1)
MessageWindow.TMessageTA.Append("[p][color=ff00ff]magenta!![/color][/p]\n")
time.sleep(1)
MessageWindow.TMessageTA.Append("[p]adeu[/p]\n")

The time.sleep is not working sequentially as expected, maybe we need a wait or something.. it's all work in progress.

Basically when pressing the inventory button, you get more exp, and a Kobold is created. Then some colored messages apprear in the console.

We wanted to trigger it by pressing the space bar or some combination of keys. Any ideas on how to do that?

Same for text, is there any more "gameplay oriented" way to do it (including color circle of the player flashing when talking and so on)?

But in case we can get the timing under control and being able to work with other party members we feel this may be a good way to go!

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...