Wednesday, April 19, 2017

After the battle

I've been trying to learn "Far Horizons" from the game Skyrim and that's led me to muse on a contrast.

In both Skyrim and Tomb Raider 2013 there are lethal encounters with the locals. In Tomb Raider, when the fight ends there's a brief quotation of the character theme; muted and tinged with the melancholy of all you've lost, as with every other piece of music in this particular Tomb Raider, but nonetheless a horn flourish celebrating a moment of triumph.

The only time you hear the "Dragonborn" character theme in Skyrim (outside of bardic performances in taverns) is when you are being attacked by a dragon. What plays at the conclusion to most encounters is something more wistful, even elegiac. It is a piece of music that invites one to contemplate the fragility of life and the shared humanity of you and those you've just slain against this harsh, bleak, starkly lovely landscape of steep rocks and chilly snow.

(It is in fact one of the generic wilderness travel snippets -- the piece I opened this discussion with -- but it is scripted to always show here and I can't believe the emotional impact of that choice was not considered).

Im Tomb Raider  the bad guys are somewhat humanized before the fight; if you sneak well enough you can hear snippets of conversation. Unfortunately there is no conversation allowed during the fight; once guns are drawn there is no negotiation allowed. Following the fight, all that is left is to search the bodies for more ammunition.

In Skyrim, you also search the bodies. Such is the stock mechanics of AAA games. But in doing this you are also led through their campsites and rooms and shelters. Where you find bedrolls tucked into a niche of the rock out of the rain, personal possessions tucked away in drawers, a couple books beside a table, a meal on the fire, a chair set up for no other purpose but to relax and take in a vista of distant mountains. These material goods are so particular and homely they give a mute description of their owners, a more sharply drawn and more universal one than any dialog snippet.

You can not help but place yourself shivering in that bedroll, warming yourself over a rude meal on that campfire (as often enough, you do in the course of the game) and greeting the day sitting in that chair looking over the vast snowy land of Skyrim. It invites you (sometimes literally) to put yourself in the hide shoes of those you were forced to kill. (Of course, in this game there is also no great distance between you and them. Your background is similar, your adventures similar. You aren't some well-equipped American stand-in mowing down foreign hordes, not in this game).

Even the nature of the encounter is different. In Skyrim you largely chose to engage; you can leave the bandit camp alone, or even run away. In Tomb Raider you are largely scripted in. It is an extremely linear narrative and often the next door will not even open until you've performed the sacrifice the game demands. Once combat is joined, of course, most AAA games are alike. There is no parley, no quarter.

Except not even this is absolute; Skyrim has a third-party mod that can be installed that allows your enemy to surrender instead of fighting to the death. And, sure, this is not a creation of the original designers. But the original designers did permit the end users to change the story and make this possible. Tomb Raider will not even allow the player to look in a different direction than that which the script requires.

(The only AAA game I've played in which quarter is possible in the base game is Batman: Arkham City. In that game, psychological warfare is all-important. The Batman is, after all, shaped to be a figure of fear to the cowardly and superstitious. So if you do well enough in striking from the shadows and otherwise appearing as an unstoppable phantom, some of the bad guys will drop to their knees to cower in place instead of continuing the fight. It ain't much, but it beats having to flatten everyone).

Am I reading too much into this contrast? Perhaps. Skyrim is intelligently designed by a company that knows how to search out a specific and nuanced emotional tone.  Tomb Raider 2013 is a lumpen creation-by-committee where every decent emotional arc sputters out in ludonarrative disconnect against the brainless mechanics and an insulting restriction of any player choice.

(I have to go a little bit further here. This isn't just a contrast between open world and linear narrative. The Half-Life series is also a linear narrative, and restricts exploration just as much. But Half-Life is designed by people who knew what they were doing; it leads the eye and hides the choices rather than forces them on the player. It shows that a linear narrative and even tightly scripted events can take place without making the player feel like a passive observer of the game being played).

Monday, April 17, 2017

Uh-oh, someone's been feeding the bunny

Yesterday's plot bunny is getting fatter and more aggressive.

I diss on the Tomb Raider reboot but I do like the character and her arc. I just don't like what happened when the story was gamified. Not just the stock AAA elements and gameplay, the formulaic action, the ridiculous shoot-em-ups that help to make for a huge ludonarrative disconnect, but the way the other characters and plot threads and gimmicks are crammed in sideways, wrecking whatever narrative flow there is.

So, Endurance. There's a mystery, and it both starts on and involved the "Yamatai" expedition ship. Mystery shrouds the true purpose of the expedition, and its true backers.

And enter our young archaeology student. This is the "Nine Bells" Lara, only she didn't chose to work late nights at a pub because she refused her family's money. She doesn't have that family. There is no Lord Croft, no manor. She is on Endurance without that whole support structure, without a built-in best friend and a father-figure/mentor to sacrifice himself later and a puppy-dog geek and a Magical Polynesian waiting in the wings to join her.

Yes, not even Sam. She was roommates, but they never bonded. Captain Roth and First Mate Grim are distant authority figures, a closed masculine world that laughs off her fears when she dares try to express them. Reyes is their security, primed for violence, similarly unapproachable. And even Sam seems to be up in the First Class Cabins with the expedition heads (despite her lack of strong credentials) and thus similarly unapproachable.

The game, I remind you, got Lara out alone to struggle to survive, then suddenly paraded the rest of the cast by her before yanking them away again -- in hopes you'd care about them when they showed up a second time largely just in time to get killed off. Oh, and you might stumble across various diaries and so forth which expanded on their characters. Which sort of works for a game like Bioshock but is a pretty solid failure when, a) the people in question aren't (generally) deceased yet, and b) you are supposed to know them already and consider them friends!

In any case. In Endurance we'd discover these people tentatively, as Lara has to risk her trust on them based on far-from-satisfactory conversations. And get them to open up to her in turn. Possibly the ally she wins first is Alex, and that one is a mixed blessing.

And, no, not all of them are trustworthy. Grim, Roth and Reyes are definitely far enough outside the curve that it will take a strong shock to make them step back and rethink their life choices. And Whitman is completely across the line. If there is anything like the Himiko plot going on, he knows damned well what the Queen needs and pretty much brought Sam along for the sacrifice.

And as for the mystery? Well, it is probably Amanda's ship. Still. She's probably in uneasy partnership with Natla, with both looking for the best moment for betrayal. And only Amanda's incompetence (she's good, but she's not original-model Lara Croft) has kept Natla from gaining the full powers of the Scion.

Or perhaps another McGuffin. We're so off model already there's no use quibbling that it didn't work that way in the game. (One is reminded of L. Sprague DeCamp's comments about changing the gender, nationality, key dates, and other minor details and voila, the "real" King Arthur was obviously Cleopatra.)

(The comment was aimed at people who apply a similar surgery to Plato's Atlantis).

The bunny just fed again. Richard Croft -- as revealed in Tomb Raider: Underworld -- made a lot of progress in finding Mjolnir for Natla. So there's no problem at all with a Croft having worked for Natla and having left interesting clues around for our new protagonist to discover. Mansion included. Ah, but was there an original child of Richard and Amelia? What if she never left Nepal? What if, in fact, young Lara went to Avalon and a heartbroken Amelia had to struggle out of the mountains alone? And Richard dying in his attempts to find her instead? 

So now we have a mysterious figure who both aided and fought Natla, and a reclusive widow in a massive manor filled with dark secrets (seriously -- have you PLAYED that damned house?) 

The question is, of "our" Lara actually "that kind of a Croft?" Aka the original kid, thrust through time and space by the travel stones?

Sunday, April 16, 2017

Plot Bunny of the Day

So in the Stargate, SG1 episode "Watergate" (no relation) it is revealed that the Soviets have their own DHD, which they grabbed off the Germans in 1945.

It is a bit of a weakness of the series that the US sat on their stargate until Catherine finally got them to restart it. Especially after the episode "Tantalus" revealed that Ernest Littlefield's group had successfully opened it in 1945. (And this without the ten years and four supercomputers Samantha Carter claimed had been necessary in 1998).

So...instead of a Manhattan Project, a crash project to open the Stargate. Because the Germans got theirs opened first (maybe they got the entire Giza gate -- and never you mind that outside of Indiana Jones movies they don't get to do what they like in Cairo in the 30's). Which means the US might have had to somehow discover the Antarctica gate...

But anyhow. The fun is having that same polyglot group of crazies, Feynman and Fermi and so forth, only working on wormhole physics. And Werner von Braun's group getting to explore the universe like they wanted, but without rockets. Of course the physics of the gate means that Tantalus and Abydos are the most likely successful contacts anyhow. Which ends up with one side joining forces with Ra and then things really get crazy.

But let's shake it up a little. Instead of the usual suspects for heroes and villains, have the US play Ra like an analog of Stalin, handling him with what they think is a long enough spoon at least until the Germans are out of the picture. Except they don't know about the Goa'uld parasite. And it is left up to a third party to try to save more than one world from the madness.

Some really motivated Italians, perhaps? Why is it that the role of being the only heroes who can fight well enough always goes to the ones who, historically, had the kick-ass armies in the first place? But, alas, that's too much research. As is the obvious Bear in the room (Soviet Russia, that is.) Or even further afield, China (who had enough on their plates already, and besides, let's keep this to the Western Front). Ah, but given the fun of pitting the Manhattan Project against von Braun's rocket group, who else but to throw in the mix are those doughty and reliable underdog heroes, Bletchly Park and Alan Turing and so forth...I speak of course of the Brits.

The other bunny of the day is even odder. So when the reboot Tomb Raider 2013 was made Crystal Dynamics re-used some assets. The rusty, tramp-steamer-looking Endurance which Whitman's archaeological expedition charters re-uses the model of the two big fancy cargo ships Amanda has in the final game of the previous canon (aka Tomb Raider: Underworld).

But...what if it is the same ship? Ten years, rough seas and a few more changes of ownership (plus Lara did a number on one of the ships anyhow. Sunk it, actually, but who's counting).

And once again let's skip the stupid island so conveniently filled with soft targets and spare clips for the various machine guns lying around like a cheap first-person shooter. Instead, assume the previous canon is true. At least as far as Amanda and Natla (though, pretty obviously, Natla didn't actually destroy the world in this chronology). Lara might or might not be real; it would be interesting to have her as a reclusive countess with stories about her past that sound downright mythic.

But she's not our protagonist. Our protagonist is stumbling across, on that same ship, evidence of a story that already happened.

Which is not to say it isn't a story that's been concluded! Lara might not be holed up in Abbingdon and not talking to anyone, but Natla is still out there and dangerous as ever. One might reach at this point for "Young" Lara, the inexperienced college student of the reboot. But that ship has already been around the world a few times. Instead, try someone else for the starring role. But keep the other characters.

I think this is actually more interesting. Stephanie, say, might be discovering there's a darker side to archaeology. And she has to reach out to people who have the skills she needs now, but people who don't have that existing relationship to her. Like Conrad Roth, who in this chronology is friends only with Angus Grim and isn't already staged as a mentor and trainer and dead father figure to the protagonist de jour.

(Actually, in a way it is even more hilarious to make Roth the hero. He'd very much fit the archetype of a certain kind of masculine adventure fiction; he's practically an early Alister MacClean protagonist. So he'd be retired, going to seed, his only contact with military adventure being the stories he shares with his mate Grim. Content to captain this ship around even if the current charter are a bunch of idiots. Until they discover more than they can handle and he has to step up to the plate.)

(And there's everything such a character could want. A young man -- or young woman -- to take on as protege, at least a couple options for romance, an abrasive academic who thinks he should be in charge, a gentle giant and a tough cop as solid right hands and a geek for tech support.)

These are wild plot bunnies, of course. I'm not petting them. I'm pretty much done with those two silly universes anyhow (at least, I will be in another four to six chapters).

Saturday, April 15, 2017

A conflict problem

As the current story is wrapping up I've become more and more aware of how much interesting conflict I didn't put in it.

I'm going to blame not having an overall plan. When I wrote the first scene I was aiming for 6-12,000 words. My only aim was to bring two casts together and have a little fun at the way they clashed. I had no overall story arc or goal.

Thing is, even as I came up with puzzles and opponents, the resulting story remains as exploratory as the process. Basically, my characters are searching for clues. There's none of the groundwork there even if I did come up with some great moral choice or interpersonal conflict or some nice paralleling of the internal and external. No-one is planted to be a lover or betrayer, to change loyalties at a key moment or discover hidden depths in themselves. No element is designed in to suddenly strike home at the protagonists.

And, really, I could have. If what I have now were a first draft, I'd take apart the materials I have and I'd find those conflicts. Lara has several potential arcs here. For instance, I could have planned to bring her into internal conflict by contrasting the guns-blazing cultural heritage-destroying Tomb Raider she is now versus the academically trained lover of discovery she had been. Have others bring up this conflict (perhaps with their own contrasting methods). Personalize it in the form of Amanda, who may have shared the innocent love of discovery but went even further into power-hungry looter. Bring the unnamed tomb in Bolivia where it all changed to a more central part of the narrative. Etc, Etc.

In a different direction, I could have brought the Tears of Horus even closer to the central narrative and tied it to internal themes; both to Lara's reluctant admission that she is willing to kill and destroy in order to complete her mission, and (even stronger) her entire lifestyle as a quest for freedom -- which clashes most horribly with the mind-controlling properties of the Horus Draught. This could have been a bigger moment and a much harder struggle as she pits her very vision of herself against mental bonds she can't fight.

Heck, even on a smaller scale; I sort of set up but never plotted to complete a legendary battle between her and Teal'c. And one could, with enough distance (and/or hindsight) to plan, bring this into an epic fight with the reader rooting for both sides equally.

Nor do my created characters, the Genesis group, really have a purpose in the narrative (they may have had one that I forgot in the long months that passed between each chapter). And there are so many possible conflicts and arcs and changes of heart and revelations of purpose that could have been wrought with them.

Fortunately, I am comfortable viewing the entire thing as a rambling monolog on history, archaeology, retro-technology, philosophy of science, and whatever else struck my fancy.

But when I think about it, my other two novel-length attempts (one abandoned, one completed but never published) also suffer from what I am thinking now is a conflation of the protagonist's problems with the writer's problems. In both, the protagonist is primarily investigative. Exploring, or simply reacting and trying to stay alive. In Shirato, at least, that was conscious and thematic; Mie spends most of the book trying to act according to internalized social mores and, when she finally breaks free of those social constraints she almost loses everything in a sort of madness.

This is a powerful mode for a reader, too, as it allows the reader to discover the characters, the universe, and the MacGuffin of the day in a natural manner. They share along with the protagonist an increasing understanding of what is going on, what the stakes are, and what might be done about it.

So the fault may not just be one of lack of planning. It might just be that I'm a guy who avoids interpersonal conflict (or really any situation that might give rise to strong emotion -- an unfortunate habit I got into in high school and never grew out of). So my protagonists tend to Mary Sue in at least this one way; they get a freedom to explore, to chose what to investigate and where to go next. They don't tend to find themselves in tangles (emotional or not) that have no clear way out.

Monday, April 10, 2017

Shell Game

Well, I got my day off. Didn't feel up for work today.

Holocron serials #02 and 03 are moving along. I had to paint up a new shell in order to record the steps on my revamped mini-studio (a piece of blue paper tacked to the wall and running under the subject as a no-horizon backdrop, and a high-CRI fluorescent bulb in a clip light).

So I've posted up the first sheet of assembly instructions:

And the first payment is in on a successfully shipped Holocron. No word yet on the one I sent to Japan, though.

In any case, there's an annoyingly short list of steps before the first kits can ship. Annoying because it is just so difficult to work in enough constructive hours to actually do those last couple of steps. I really feel I have to finish one more of the "complete" Holocrons both to make sure all the current parts are cut to the right length, and to record the steps properly for the remainder of the assembly instructions.

As far as I can tell there's just a few wires left to solder (USB breakout board and the tail for the sensor lead). And maybe include a few pre-cut pieces of double-sided tape. And figure out how to wrap everything so it is properly protected in shipment. And I think I have enough parts cut for four kits.

Oh, and make sure I'm uploading the latest version of the software. And doing a complete function check of the assembled electronics module.

Unfortunately I still have rent paperwork to do today. And I should really finish those taxes. And this cough is distracting me enough it is hard to concentrate on anything technical. After all, if I felt well enough to program and solder and sand and paint and record shipping data I'd be at work being paid for my time. I mean, more than $90 a kit.

Saturday, April 8, 2017

I need a day off from my weekend

I have half-soldered holocron modules spread over my desk. With more circuit boards coming from OshPark sometime next week. Another $150 of acrylic is current by the front desk at TechShop waiting for me to come out and cut it on the lasers there.

My plan today is to solder until the rain ebbs a little, then spend as many hours at the shop as I can get tool reservations for. On Sunday, back to painting and assembling, and take new pictures so I can post up assembly instructions for the kits I will be shipping out next week.

Oh, but of course I have a rehearsal to attend and a short meeting with the director for what I strongly intend to be the last play I work this year. And rent paperwork, and I need to finish the business portion of my taxes for last year. So there's a lot I'm hoping to get done over this far-too-short weekend.

So far, I haven't even put on my shoes.

Well, that went well. I soldered up all the current batch of circuit boards, but it took all Saturday. (The weather never did get better so just as well). Woke up today with a stomach bug and it was the afternoon before I could sit up without wanting to throw up. So mostly worked on the instruction sheet, did the worst of the sanding and priming on serial #04 and took lots of pictures while I did it.)

Wednesday, April 5, 2017

How Strange the Change...

It is so nice not to have a show to work twice a week and two shows on weekends. I feel so relaxed -- even with putting holocrons in boxes (I spent five hours last night at the laser, getting home too late to even eat diner) I feel relaxed.  I feel like I can finally finish some of these dangling chores and clear the work table a little.

So, of course, I'm yanked off in a new direction. Started this morning. See, I've been bringing my
violin to work to practice during my break time.

Which is coming along well. Messed with the theme from the 1978 Battlestar Galactica (fingering is straight-forward enough I could almost play through on the first attempt) and the "usual snippet" from Polovtsian Dances (rather less so). By ear, that is. I've got my music stand back and I'm a member at MuseScore now but my sight-reading still needs a lot of work.

Anyhow, carrying an instrument on your back as you approach the time clock will start a conversation here and there. One of my co-workers is buying a keyboard soon, another is trying to spend more time with his (a familiar problem).

I don't spend a lot of time with my keyboard partly because it is a Behringer controller; no internal sounds, no external speakers. To run it I have to connect it to the laptop, boot up Reaper, then stretch a headphone cord across the room. Every now and then I think I should throw a speaker and some kind of synth module in a box so I just have to throw a single switch and the piano is playable. Right now the only impulse instrument I have is a ukulele I keep on a hook by my chair.

So today I opened my Maker's Notebook and scribbled ideas for a simpler keyboard setup. I still have
a couple rack-mount synths, but 19" is large for the "box with a speaker" I was envisioning.  I do have a Korg P3, but there's a lot to be said for having other than a basic piano sound. An even smaller box would fit a Kurtzweil micropiano, which has some of the best keyboard sounds in a book-sized synth (and really nice piano). But the things are still $200 American on the used market. Hrm. Keep scribbling.

Plus the Behringer keyboard requires external power when using a MIDI cable, so that's more wires to play with. A USB box would be just one cable...  Say; a Raspberry Pi can handle software synthesis and even be trained to handle MIDI-over-USB. So could throw that in a box and...

But by now I'm thinking of the sounds I spent so many years practicing keyboard with. The sounds of the Yamaha DX21 (a cut-down version of the DX7; no velocity, only four operators instead of six...and that's all Geek to you, right?)

So I hunted and yes there is a free multi-platform FM synthesizer pre-loaded with those great old
DX7 patches. Called DEXED and you can find it with a short Google. By this time, as you can gather, I'm pretty far from my original starting point. (Incidentally, the pi-in-a-box is totally doable but requires some hairy programming steps to boot into musicality without having to hassle around with passwords and so forth every time).

But by this time I was off-track. Found myself listening to samples of DEXED on YouTube, then DX7 samples, then reproductions and homages of some of the synth-heavy 80's hits. And that leads me to some clever videos explaining the chord sequences used by many Hollywood composers (as well as the familiar discussions of orchestration and so forth that somehow never seem to show up on my YouTube "you may also like" page no matter how many I watch.)

And, yeah, this seems completely out in the woods now, but one of the things I was intending with the violin was to get back into composing a little. And that instrument is now close to the point where I can actually make use of it.

And probably I'll just prop a rack module and powered monitor under the Behringer and gaff-tape a power strip to the keyboard stand. The perfect is the enemy of the good, and a fancy box with a Pi-based FM synth and a scratch-built speaker system at some point in the indeterminable future must fall to the utility of having a keyboard I can go to now when I hear a musical motif in my head and want to try it out.

Sunday, April 2, 2017

Tech Levels

Four pounds of Keokuk chert arrived in the mail this week. The first two Holocrons shipped as well, and I'm making some small changes to the Eagle file so I can run off some more PCBs.

That's about ten thousand years of technology between those extremes. Plus I'm still practicing violin daily, an instrument which appeared in more-or-less modern form in the 16th century. Oh, but the circuit board is for a Holocron, which depending on how you look at it is either technology of the far future, or comes from "long, long ago" (in a galaxy far, far away). Except as a prop, it is only as advanced as laser cutters and the AVR chip introduced in 1996.

This weekend I mixed the final performances of an original musical based on a 19th-century fairy tale famously animated by Disney in 1937 and introducing the first of what would be a long line of Disney Princesses. This time I had a Yamaha LS9 to work on. Still no time for sound check, but I knew how to handle that now. (This was also a "blind" show in the sense that there was no proper FOH position. I mixed from inside the light booth and had to go by memory and judgement and indirect cues instead of being able to properly hear the show).

Of course I haven't used that board for at least three years. One gets rusty. I've just been asked by my work to do a little machining and I'm pretty conscious of being rusty there, too. It doesn't matter in the least what era a skill comes from, whether it is laying out traces in a CAD program or knocking chips off a rock with a deer antler. What matters is how much time has passed since you did it last.

Tuesday, March 28, 2017


The first holocron was accepted by the Post Office. Now as long as it clears customs in Italy (and isn't damaged in transit....)

I've been scribbling on graph paper for nearly two months now trying to improve on the connection to the sense plate. Well, of course: after I assembled two holocrons and made up a detailed instruction sheet, I finally got the bright idea I'd been hoping for.

I'm still not wonderfully happy with the whole thing, but I'm willing to put them in boxes now. I'd set up a nice assembly line but there's only four or so that get completed and painted by me. The rest are shipping out as kits.

(The one remaining thing I really want is to program  in a few basic functions on the User Buttons. But dunno when I'll have enough consecutive not-exhausted hours to wrangle code).

Monday, March 27, 2017


Some more thoughts about the subject of my last post.

First -- of course, the situation was my fault. I could have made a site visit. I could have made sure I had contact numbers in case I had trouble getting in. I could have arrived earlier -- then there was at least a small chance I would have bumped into the people who went in and didn't leave an obvious way to follow.

But this is near the end of a tough run, I'm running on fumes and I wasn't mentally or physically up for thinking outside of the routine we've followed for every other performance. Or in a position financially or time-wise to make that site visit. I was barely able to drag myself out of bed and get there at all, in fact.

So to it. When you hit a situation like this; due to whatever circumstance you have to get a show up without the resources you really need (usually time, but also often enough gear), here's what you need to do:

Don't Panic. It's fine to go to flanking speed. It's fine to get tense and terse. But don't hurry to the point where you start plugging in the wrong cables or where you are giving orders so fast the crew can't understand you. And most importantly; don't let that spill on to the performers. It is fine to let them know things are a little tough and you are a little harried. But they don't need to know that the sound might not be there at all (unless you get lucky or have a sudden inspiration on how to make it work after all).

Prioritize: No, that's not even the right word. Triage. Make a (mental) list of everything you could survive without if the worst happens, and do all of those last. This isn't a simple matter of ranking a list; everything is a balance between how long it is expected to take, what kind of risk you are willing to take, and how much you really need that thing.

For this show, there were a few absolutes. I had to have the backing tracks. The musical doesn't happen without that. But outside of a complete failure of the venue's sound system, that is a matter of plugging in two cables and getting a rough level. So it doesn't need to be the first thing we do. Low down on my list was floor mics, because there's only three solo lines that use that mic, and it doesn't have the reach to save me if the body mics aren't working.

The other thing I had working for me on this one was Experience. I knew the show very well. I knew the voices. In a sense this was like mixing a trio; if you only have piano, bass and drums on stage it's pretty trivial to figure out channel is which when you have to adjust on the fly. I knew when I popped up the first four mics for the opening number I would be able to hear if C. wasn't in the mix, or if T. was the one who was overpowering everyone else.

I also knew the board family and had spent literally a decade watching wireless mics on the meter bridge. So I could actually do a rough trim by eye (it is really nice when you have warm-ups, because then the mics are all hearing a singing voice at typical volume. Well, more-or-less typical; far too many actors mark their way through warm-ups. But with a good pair of 'phones I can hear exactly how hard they are trying and adjust the trim to compensate.)

There are also standards for a well set-up sound system. These were Meyer speakers, a mid-range Yamaha board, and a clean new-looking theater. So I had good reason to believe that the overall system gain would put me at an appropriate volume level if I ran a healthy-looking signal (plenty of green, space left before it hit red). The house tech advised me on his typical starting point for wireless mics (they tend to be set for a +4 line level. relatively consistent across brands -- again, assuming healthy gain staging through their own signal chain).

And I had one starting point already; we'd fired up the backing tracks to set a rough level on the floor monitors.

So when I started the show, I used the Overture to quickly dial in the level on the backing tracks. Then rolled up the first four mics. I can mix at least four fingers at the same time, so I knew I could compensate with the faders if my rough trim was completely off. As it turns out, it was close enough that I could quickly pop through the head amps and match them. And since I'd rough-trimmed all the mics to the same average level, all I had to do as the other characters entered is bring their faders up to the same position and fine-tune the trim.

It is a little trickier than that, because I have several "yelpers" in the cast who require constant riding of their mic (or as a tech at the Paramount called it, "the five compressors I have on each hand.")

But there's another dirty trick here. No two mixes are identical. One person emphasizes bass, another emphasizes the Bass. Each new song or set or band you listen to, you as a listener spend the first minute or two adjusting your ears to it.

And that means if you have to mix a band cold, without a proper sound check (sometimes, without even a line check), you have a couple of minutes while the audience is adjusting to try to get a mix out of the mess you've got coming off the console.

I've done this, as I said, and again there's a lot of experience that goes into it. I know where to place mics that generically will get a certain sound. It might not be the perfect sound for that band but it will work. And perhaps more importantly, I know what sound that is.

Because I can go back to the console and without the instrument even being there I can set a rough trim and do some basic EQ. I know a snare is a lot hotter than a drum overhead. I know my lone Karma mic is much hotter than the little Oktava's. So I can eyeball a really rough level on them, and be prepared to deal with some known EQ issues (cheap condensers have that 6K-8K boost, for instance. Kick sounds terrible if you let too much mid and mid-low through. In fact, you can go right ahead and dial up a starter frequency for the "crack" and "whoomph" but don't put a lot of gain on it at first.)

And then you work your way from foundation, just as if you had an afternoon and a finished multitrack to mix down. Get the rhythm section in. Add the front men. Then work your way through the rest of the band.

It is hair-raising, flying-fingers work, and really requires you know your way around the board blindfolded. But I've done it enough that I don't shut down in terror if I have to face it again.

Oh, yeah, and the last thing in your tool kit; Hubris. You've got to have the willingness to subject hundreds to thousands of people, people who may have paid upwards of fifty bucks for a seat, to your gambles. You've got to be willing to let your instincts of that moment, that direct connection between your ears saying "more sax!" and your left ring finger on the fader to override the probably better judgement of the promotor, the music director, the punter yelling at you from an aisle seat, and the musician himself. You've got to gamble with all of the efforts of everyone who rehearsed so long and worked so hard (and spent so much money) and do what seems to be right at the moment -- or at least what appears to be working.

I call it hubris because I can never and will never let myself forget of what it means when I step up to that board. I will make mistakes. My judgement will always be suspect. But someone has to call it. Someone has to get a semblance of order into what otherwise would be sonic chaos, and there's no time for a second opinion.

You have to COMMIT. The lead sax is too brassy? You have a split-second to make the call; fix it fast enough that it makes just one little bubble, one small forgivable flub in the overall song. Or let it ride and find a way to defend it as musically valid. The only thing that is worse than a mix that is wrong is one that can't make up it's mind. The ears can adjust to the former. Not the latter.

Sunday, March 26, 2017

The Machines are Revolting

So penultimate weekend of the kid's show I'm doing. At a new theater a fair drive away. So as I set out I start to punch in the address on the smart phone keypad. A restart fixed that, but fixing it distracted me enough to get me off schedule. I get to the theater at last and no open doors. Apparently one (ONE) of the people inside tried to call (instead of, say, having a door open, answering the bell, or even giving instructions on how to get in or a contact number.)

However, all the company phones have been having a huge problem with spam messages. We've stopped answering any call that comes from out of state. Guess how the anonymous, unknown number that tried to call me ID'd? Out of state.

When I'm finally let in, there only available FOH position is taken up by their own board. And it is a deep house; possibly too deep for our wireless mics in this modern age of increasing interference. So snap decision; leave the receivers backstage, plug into the stage snake and use their board to mix it.

A Yamaha M7CL. Which I knew only by theory and looking over the shoulder of another operator. And I hadn't used a Yamaha digital board since leaving the Playhouse. And the van with our gear was late, the house tech was friendly but not terribly motivated, and there appeared to be some RF issues, and the cast didn't even get into mics until well after we'd opened the house anyhow (they were too busy adjusting the choreography to a new and much larger stage).

So I mixed the show cold. Without even the benefit of monitoring over headphone to see if I had signal. I had nothing but eyes and guesswork -- years of experience in watching signal hit the bridge of a good board from wireless mics sitting on actors as they talked and slapped on makeup and quietly warmed up back stage -- to rough in the levels. And only verbal guidance as to where that would actually fall in the loudness range over the actual speakers.

And it was a lot better than I had expected. But just a wee bit tiring. Especially the opening number. I was well and truly worn out by the time the show was over. Time for a little take-out Chinese, some Anderson Valley Amber, and update my blog before much-needed bed.

Hrm. Actually, it's a Dogfish Head Indian Brown this time. Pity none of their "Ancient Ale" series of historical recreations appeared to be in stock at my local. Now that I know they are brewing them again I'll have to make some calls...

Saturday, March 18, 2017


Far too often I don't feel "up to" working with power tools and opt to work quietly on the computer or take a break entirely.

Too often. So today I pushed forward instead, and in less than five minutes -- moments after starting the first connection -- I put my soldering iron right into a finger.

Maybe it is better to trust that little voice.

(Regardless, as soon as I can take my finger out of the glass of ice water I'm going to try that joint again).

Thursday, March 16, 2017

Chapter Up

Been not feeling up for anything more physical than writing. I'm overdue for a full physical, I think. But at least I got another chapter done.

I cast my net a little wide this time. I spent a while browsing maps of New Mexico, trying to plan an itinerary of properly colorful places. I knew I wanted to include the Trinity Test Site and erroneously drew up a tentative route down to the far South of White Sands. Then I did a new search for rock climbing areas and that turned up the fact that Hueco Tanks, "The Tanks" themselves, were close to my route.

A few more scribbles and searches and I had it; leave Roswell, stop at Alamogordo and admire the Great Atari Video Game Burial, continue through El Paso to Hueco Tanks and get a little climbing in, cone back North to the White Sands Missile Range Museum and gaze longingly through the parking lot fence at Victorio Peak -- while Lara grabs a dirt bike and "sneaks" up through White Sands to the Trinity Site. (Which is, of course, to the North).

That was looking about right for material. Add something about Chief Victorio and the Apache Wars and I'd have a 6,000 word chapter, right?

Didn't work out that way. I hit 10,000. First off, I'd only meant to open the chapter with Lara in the middle of climbing some rock. Because I really didn't want to open with more talking heads. But that scene got more and more elaborate as I thought of new wrinkles, until it is a good thousand words with a literal cliffhanger to boot.

And the Victorio stuff kind of got out of hand. Maybe it was because, due to more coincidence than anything else, I've been listening to a lot of programs on the Indian Wars. And, yes, it is pretty topical stuff, what with the Dakota Access Pipeline started up again and so on. Even in my own town there's a shell mound which is being contested over. So I ended up with a lot more words there than I had expected.

And I'd thought of more to do with the Trinity scene. Like throw a predator after her. I was thinking cougar but research turned up that jaguars were rare but had been seen in New Mexico. And that's when I tried to do something extra tricky; to have an injured Lara fabricating an improvised weapon whilst going over in her wandering mind the history of stone tools and human hunting from the golden age of the Plains Indians back through paleolithic mastodon hunters to the encounter at Olduvai between a troop of chimps and h. zinjanthropus and his unfair invention, the club.

Cross-cutting between that and the resolution of the cliff-hanger at Hueco Tanks. And bringing out some of the information Lara went to Trinity to find, in the form of a series of hallucinatory memories of the distant past.

And I don't think I made it work. I've got ten thousand words and most of it is talking heads. And most of what they are talking about advances the plot not one iota. And I even cut stuff!

Sunday, March 12, 2017

It's a Poser, all right.

My site stats say several people have accessed the old posts on rigging for Poser (the 3d figure-centric animation and rendering software). So here's the long-delayed third post in the series.

Since I haven't used Poser in a while this is going to have less in the way of concrete examples. Also, the last version I used was 9 and it is up to 11 now. Poser tends to maintain backwards compatibility with previous tricks, though, even as it adds new ones (each generation of figures adds some new tricky way to deal with the perennial core problems like poke-through -- and let's not even get into DAZStudio which, while maintaining a large degree of compatibility with Poser-generated content, changes many of the paradigms).

So I will try to give examples, but, really, the best way to do this is to find a Poser file and reverse-engineer it. See how the stuff is actually formatted. Or go look online for one of the various useful guides. Once you know what is possible and what people tend to call it, it is a lot easier to find help on getting it right.

So  to it. The three Poser power tools I find the most useful for the Poser content I've created over the years are, in no particular order, altGeom, ERC, and MAT poses.



Way back in the early days of Poser, either the riggers, the software, or the projected customer base couldn't handle the idea of rigging every finger. So they created a way to swap out one pre-posed hand with another. The code was still in there when the first Millenial Figures arrived (the original Victoria 1 and Michael 1), and stayed in the code as the vestigial gen/noGen switch (aka, a way to change out the lower-torso mesh to one with or without the naughty bits).

altGeom is a handy way to change the shape of an item past what morphs allow you to do. Let me review for a moment; a morph is a list of deltas -- differences in position -- for the vertices already in the mesh. Applying a morph causes each vertice in the original mesh to move to a new position. Which is why you can dial in a morph as a percentage, including applying it extra strength or negatively -- in the latter, the vertices simply move in the opposite direction.


It is hard to see in that tiny video but the spring on the kick pedal here is using a morph to elongate. There are also morphs on the head of the drum so it "dimples" when hit.

 For the stage microphone set I made, every stand was equipped with an altGeom dial that provisioned it with either a standard mic clip, a large shock mount, or a null object (no clip at all).


An altGeom consists of two things; a geometry reference to the different geometry, and the code to create the dial (which is subtly different from that used in a translate or morph dial).

Again to review; in all Poser figures and most props, you will find two pointers; the figure reference file, and the actor pointer. They look like this:

figureResFile :Runtime:Geometries:Princess:Stage_Mics:shortStand.obj


actor clipBase:8
storageOffset 0 0 0
geomHandlerGeom 13 clipBase 

The name you see there, "clipBase," needs to appear as a geometry group within the geometry file "shortStand.obj" The actual actor name, however, does not need to match; the geomHandlerGeom reference is the only place in Poser where it needs to see the actual name in the geometry file.

So...unlike everywhere else in the Poser universe, in a part with an altGeom there is an additional figure reference occurring inside the body of the actor;

alternateGeom    clipBase_2
name clipBase2
objFile 2101 :Runtime:Geometries:Princess:Stage_Mics:clipBaseALT.obj
defaultGeomName  clipBase_1

This is, of course, the actor in which occurs the actual dial for the altGeom. Take note of the "2101" there; this is a unique identifier that must be different from any other geometry used in the Poser scene. Starting above 1000 is strongly recommended.

And here is what the actual dial looks like:

geomChan handGeom
name change clip
initValue 0
hidden 1
forceLimits 1
min 0
max 2
trackingScale 0.045
static  0
k  0  0
interpStyleLocked 1
Figure 8
deltaAddDelta 1.000000
Figure 8
deltaAddDelta 1.000000

Something to note here; the limits are set to the number of actual geometries being referenced (including the original). "handGeom" must be used as the internal name for Poser to understand the unique nature of this dial, but the external, user-facing name can of course be of your choice.


So -- a few other useful things here. The source file can contain other groups, and multiple figures can access the same alternate geometry. You can access the same group multiple times, too; I coded up but never got around to releasing a Climbing Wall where each potential hold was an actor containing the translate instructions to move the geometry into the right location on the wall. Thus, there was only one of each hold ever constructed; the cr2 did all the work of populating the wall. And, of course, the end user could set a new route merely by rotating a few dials.

Unlike morphs, the altGeom does not need to share the number or winding order of vertices. However, if the edges are nearly identical, Poser will still manage to weld the meshes together when it makes a figure. Also, of course, the morphs for one geometry won't work on the other. But, strangely, Poser will sometimes recognize this and will hide the dials belonging to one geometry and show dials you've created for the alternate geometry. This can not, however, be always trusted.

Alternatives: Instead of using an altGeom, some props are simpler to build by hiding the optional bits using the ability to hide (and not render) a specific actor. As far as I know you can't build a "show/hide" dial, but you can construct a one-click pose to do it. Similarly, translate and/or scaling could be used in an ERC dial to hide one optional bit and show a different one instead.



When Poser finally got around to adding fingers, they realized folding all of them individually to make a first was a pita. So they added a bit of code which is still in there; name your fingers with the same internal names as those on a standard Poser figure, and create a dial called "grasp," and they will all respond to it.

It actually worked on this cute guy, here, even though he only has two fingers on each hand! Well, this same trick was later leveraged in by the Poser designers to allow all the body shape morphs to be collected together in a single spot instead of having to go to every limb and digit turning dials individually.

In any case, it didn't take long for the community of Poser tinkerers to realize that this lowly bit of code had untapped powers. In essentials. and with some important exceptions, every dial in Poser can be slaved to another dial.

This is...absurd. Some users attempted to make sense of this cornucopia by coining the terms "JCM" for morphs that automatically dialed themselves in when a joint was moved (aka, bend the elbow on a Poser figure and the biceps muscle swells in a natural way), "JCT," "FBM" (Full Body Morphs, meaning a single dial will tweak in separate "muscular" morphs across multiple body parts), Super-Conforming, etc. But in general the blanket term "ERC" (for Extended Remote Control) is accepted.


One of the uses to which ERC has been put is to allow clothing to magically take on the same morphs being applied to the figure below. The trouble with this happy picture being crosstalk. A simple search will turn up thousands of systems for fixing the crosstalk problem. They are all wrong. Simply put, Poser creates instancing on the fly as figures are added to the workspace, or as a scene file is read in. It is entirely impossible to force Poser to observe unique identifiers (outside of, perhaps, manipulating the Poser workspace in a more direct way using Poser Python tools).

So you can get superconforming or crosstalk to work for you once, say when creating a scene, but save it and restore, add something new, or even work on it too long and the references will be lost.

Poser is dumb. It looks in the first place it thinks of to find anything, from the matching master dial for an ERC slave code to the correct texture file. And it doesn't always start where you would expect or want it to start. Which means that even internal ERC channels can get "lost" and wander off when you have more than one figure in the scene.

That said, operating ERC between figures is an alarmingly powerful too with all sorts of wonderful potential.


An ERC chain consists of three things; a slave dial, a target dial, and the code within the slave dial setting how it is to respond.

The master dial can be any kind of dial; a morph dial, a translate dial...or an empty dial. The code for creating a dial that doesn't do anything itself is as follows:

valueParm turnClip
name turn clip
initValue 0
hidden 0
forceLimits 1
min -360
max 360
trackingScale 0.2
static  0
k  0  0
interpStyleLocked 0

The usual dial functions are here; internal name versus displayed name, the ability to hide the dial, and, yes, dials can be stacked (just don't point them at each other. Quickest way to crash Poser that has yet been discovered).

The code that makes the magic happen is all in the slave dial:

rotateZ zrot
name tilt clip
initValue 0
hidden 0
forceLimits 0
min -90
max 100
trackingScale 1
static  0
k  0  0
interpStyleLocked 0
Figure 8
deltaAddDelta 1.000000

The key is in those last four lines. The source figure is, as I said, bollixed in by Poser when you load the figure. But you can at least try to push it in the right direction by making it match the actor numbers of the figure file. The next is the actor that contains the master dial, and the penultimate is the internal name of that dial. The last is the tracking scale.

Setting the tracking right is often key to getting ERC working right. For a full body morph, the tracking is usually 1=1; each body part morph dials up to the same amount. For trying a morph to a joint rotation, though, you need to know that Poser uses 1.0 as meaning a morph is full-on, but a rotation around a full circle appears in the Poser code as "360."

So, yes; one of the most useful functions of this is to take dials that might be spread all over the figure and mirror them in a place where they are easy to find. Incidentally, another Poser peccadillo it is doesn't always save channels in the BODY when the file is saved and retrieved. It is safer to consolidate your master dials in the top selected body part instead.

But since you can merge and stack dials, there's some fun tricks you can do:


Again, sorry for the poor render here. These are actually copies from stuff I uploaded to YouTube years ago. So there's some simple things here; the turning sense head on the ghost detector is linked to a morph that extends the loop of wire connected to it. The jaws of the steam powered monkey wrench automatically spin the nut as they are opened.

A little more tricky, the gear box is set to a single dial (and all the individual gears are hidden in the cr2, meaning they display in the workspace and render but don't show up as selectable body parts), and each uses a deltaAddDelta tuned to its diameter so the teeth mesh.

The trickiest is the steampunk sonic screwdriver (which is unfortunately impossible to see clearly in the render). The trick here is joint limits are set on the joints, dial limits on the dials, and in some cases a dial is set to a negative number below the joint limit. So what happens is that dial waits until the master dial has rolled it over into positive numbers again.

Under a single master dial, the spinner makes a half-turn as it starts to retract. The spring collapses with it. When it has fully retracted it stops; the leafs, which have been waiting quietly the whole time, close over it.

People have used this sort of trick...multiple stacks of dials pointing at each other, phantom dials that are hidden from the user and exist only to delay a following action... to rig tank treads.

As one extended example of ERC in action, the Easy-Pose cables or tentacles use ERC to make a long flexible object possible. The figure has an otherwise uncontrollable number of body segments, but the dials are all collected into master dials at the head so they all turn together. And you can get trickier; if each segment, for instance, takes orders from the previous segment instead of the master, and each is set to a deltaAddDelta of slightly more than 1.0, then the cable will coil into a decreasing diameter nautiloid spiral.

MAT Poses:


By itself, the MAT Pose is simply a pose file that applies texture instead of joint rotations. But this is just a glimpse into what is actually possible.

The big thing to know is that there is only one syntax for Poser files. The suffix to a file; pz3, cr2, hr2, etc. tells Poser what to expect from it, but the markup language inside is the same stuff. Now, there are restrictions. Among other things, pose files expect to find a figure and will apply themselves to the last selected figure in the workspace. Bad things happen if there isn't one (this is one of the reasons why figures are a superior way to format complex props.)

In a similar way, a prop (pp2) can be told to attach itself to a figure (smart prop style) but other file types don't usually get this as an option.

The other key thing to remember about this all is that unspecified channels preserve the original data. So a pose file meant to only change expression should have all joint rotation and body morph channels edited out of it. If the channel isn't in the pose file, it won't be touched by the pose file.


The basic MAT pose file looks like this inside:

number 4.01
material plastic
KdColor 1 1 1 1 
KaColor 0 0 0 1 
KsColor .2 .2 .2 1
TextureColor 1 1 1 1 
NsExponent 40.4078 
tMin 0 
tMax 0 
tExpo 0.6 
bumpStrength 1 
ksIgnoreTexture 0 
reflectThruLights 1 
reflectThruKd 0 
textureMap ":Runtime:textures:Princess:PTbeltFpatrol.jpg" -1 10105 
bumpMap NO_MAP
reflectionMap NO_MAP
transparencyMap NO_MAP
ReflectionColor 1 1 1 1 
reflectionStrength 1 

There are no channels specified, no actors. All it has is a material; whatever is included there will replace the material that was loaded from the cr2.

Of course it doesn't stop there. A simple pose file can also include a function that hides a body part (useful for tight-fitting shoes that would otherwise poke through):


number 4.01

actor rFoot:2
name    rFoot

actor rToe:2
name    GetStringRes(1024,53)

A pose file can also add new control channels, and even add morphs -- the latter, however, requires that empty hidden dials be already in the cr2 waiting for morph deltas to be attached to them. I monkeyed around a little with a slaving code that made the figure the pose was attached to mimic the motion of an existing figure in the scene. Tricky to actually work with, though -- as explained in crosstalk above!

Another odd function of MAT poses is that you can replace materials on an actor-by-actor basis;

actor rButtock:2
customMaterial 1
material SkinBody
KdColor 1 1 1 1 
KaColor 0 0 0 1 
KsColor 0.0554971 0.149996 0.061799 1 
TextureColor 1 1 1 1 
NsExponent 9.65048 
tMin 0
tMax 0
tExpo 0
bumpStrength 1
ksIgnoreTexture 0
reflectThruLights  1 
reflectThruKd 0
textureMap ":Runtime:textures:Princess:PThoseHarper.jpg" 0 0
bumpMap ":Runtime:textures:Princess:PThoseSherwoodBUM.bum"  0 0
reflectionMap NO_MAP
transparencyMap NO_MAP
ReflectionColor 1 1 1 1
reflectionStrength 1

This is a tricky pose here. Incidentally, the tradition was to name poses MAT if they changed materials, INJ if they injected morphs, and DIV if they used custom materials. Anyhow, for some reason Poser requires you define the material at the top of the pose file in addition to doing so within the individual actors.

So yes; this specific example put hose on the legs of the figure in question while leaving alone the skin (and eye and teeth and so forth) textures already applied. The one disadvantage is that it splits along the actor seams, although some Poser figures were specifically sliced to make those divisions fall in more useful places.

Wait There's More:

Point At:

This function can be called in the cr2:

pointAtParm Point At
name Point At
initValue 1
hidden 0
forceLimits 1
min 0
max 1
trackingScale 0.005
static  0
k  0  1
interpStyleLocked 0
pointAtTarget bRivit:9

Notice that this looks just like a dial definition. In fact it is a dial. But it has to have the exact internal name Point At in order to work. The way this trick worked in the final prop; this was a stand with legs that folded up. Each leg had a brace with the center of rotation set at one end and the primary axis running the long way. When a master dial was turned that rotated each leg into the stowed position, each brace would pivot freely to keep their other end as close to the connector as they could. The result was it looked like the braces were mechanically part of the assembly.

A trick B.L. Render worked with was to Point At a "gravity ball" moved to a location far below the picture frame. That would make fringes hang down, towards "gravity." I've used a similar variation; set both eyes to Point At a hovering non-rendered ball, and you can direct the figure's gaze in a natural way.

Deleting RHA's

As B.L. says, children effect their parents. This can be a particular problem for mechanical props. Twist a knob on a control panel, and part of the panel twists up to follow. You can turn off deformation by setting "bend" to 0, but this means you can't apply morphs to that actor anymore. You can tweak the joint params to try to exclude the body part but even with zones this isn't always possible.

Or you can go into the cr2 and delete the channels that make this happen. Once deleted, Poser won't put them back (at least, not as of the last version I've used).

These channels are easy to recognize; their names have a similar format and they always include the child part:

twistY lBunear_twisty
name lBunear_twisty
initValue 0
hidden 1
forceLimits 0
min -100000
max 100000
trackingScale 1
static  0
k  0  0
interpStyleLocked 0
otherActor lBunear:4
matrixActor NULL
center 0.0162426 0.67091 0.00326313
startPt 0.657258
endPt 0.754053

But here's another interesting thing; you can ADD these channels in order to make a control object. This is a technique called Body Handles. Adding a body handle is surprisingly easy. Add an actor in the definitions and the body of the cr2, referencing a custom geometry file for it. Add it to the hierarchy definitions neat the bottom of the cr2. Load the figure, then save again. Poser will fill in the rest of the Actor section.

Now you have a handle you can pick up and drag around that will drag part of the figure with it (depending on how you set the zone of effect). It's like a magnet that stays attached.


Anyone who has gotten this far probably knows this one. Translation along the xyz axis of a body part is already in Poser, it is just that the dials are hidden by default. All that is necessary is to set Hidden to false for that dial. Set limits, and you have a sliding drawer or piston or whatever.


I really don't remember how to work IK magic now. I do know you can get some fantastic results from it. The normal figure hierarchy works down from the BODY. If you rotate the shoulder, the forearm and hand are moved to a new position. If you rotate the forearm, the hand is moved to another new position.

Inverse Kinematics, well, inverts this. Most Poser figures have IK available for both feet; turn it on, and moving the foot drags the body parts upstream of it. So you can actually create a cable that is attached at both ends, and with the proper balancing of IK weights, it will be tugged at from both ends and attempt to shape itself to follow both.

My hi-hat stand has IK in it. Somehow I used that to allow a chain-drive going over a cam to follow everything else when you pressed the pedal down.


I hope some of this helps someone.  I've largely stopped creating Poser content, and all those skills that took so long to learn are going to waste now. Unless I can use them to help someone else.