dnd 5e – Can someone without the mark of storm change the direction of an airship?

Eberron: Rising from the Last War states unequivocally that the Mark of Storms is required to operate the wheel of wind and water that controls an airship:

A dragonmarked heir of House Lyrandar must pilot a Lyrandar airship, channeling the power of the Mark of Storm through the wheel of wind and water that controls the vessel. (…)

Only a dragonmark heir with the Mark of Storm can use the wheel and command the bound elemental.

(Eberron: Rising from the Last War, pg. 234)

Wheel of Wind and Water

Wondrous item, uncommon

(…) allows a creature that possesses the Mark of Storm to telepathically control the elemental bound inside of the vessel.

(Eberron: Rising from the Last War, pg. 280)

But then it seems to contradict itself on a number of points. First, there are also physical control surfaces:

A standard airship (at least as far as standards have been defined for this relatively new creation) looks simi­lar to an oceangoing ship but is rigged with control fins and rudders rather than sails.

(Eberron: Rising from the Last War, pg. 234)

It’s not at all clear how much control these control surfaces actually provide—they seem unlikely to be able to overpower the might of the elemental controlling the ship—but it certainly is something.

More importantly, the norm for bound-elemental vehicles is that non-dragonmarked characters can interact.

A dragonmarked heir at the helm of a vessel can com­mand the elemental easily. Without such a pilot, it’s very difficult to control the vessel. A character who is touch­ing either the Khyber dragonshard where the bound ele­mental is housed or the magic item at the vessel’s helm can try to communicate with the elemental, but with no guarantee of success.

(Eberron: Rising from the Last War pg. 234)

It isn’t clear to me if the rules for the wheel of wind and water are supposed to supersede these rules, or if this remains an option even on a Lyrandar airship. Since it’s unclear, you can and should, of course, choose to interpret it the way that makes your story workable.

However, if this does apply to airships, it’s a great possibility for you—elementals do not like being bound, and might happily comply with a plan that could see the elemental’s freedom. It might even comply with a plan where its “freedom” comes in the form of death, if its destruction came with the destruction of those who bound it and benefited from its suffering.

Finally, note that many of the details of elemental vessels in Eberron: Rising from the Last War represent something of a ret-con for Eberron, from 3.5e’s Eberron Campaign Setting:

House Lyrandar operates elemental flying vessels (usually utilizing bound air or fire elementals) to make rapid air travel possible across Khorvaire. Built in Zilargo, these vessels can sometimes be found in privateer hands, but the pilots of Lyrandar are renowned for their skill and expertise.

(Eberron Campaign Setting, pg. 124-125)

Here, there are privateers—unaffiliated with House Lyrandar and therefore almost-certainly lacking a Mark of Storm—who operate airships. This seems to contradict the description of the Wind Whisperer Lhazaar Principality that

includes a number of half-elves with the Mark of Storm—foundlings with no tie to House Lyrandar. The Wind Whisperers want to obtain airships by any means necessary.

(Eberron: Rising from the Last War)

In Eberron Campaign Setting, the Wind Whisperers per se weren’t discussed, but non-Lyrandar airships certainly existed, including within the Lhazaar Principalities.

Anyway, long and short of it is, for your own game, you can choose your own canon. There have been canonical statements that seem to nix the idea, but there have been other canonical statements—even within the same book!—that support it. The 3.5e canon is even rather explicit about non-Lyrandar airships, to say nothing of piracy and hijacking of Lyrandar ships. So there is definitely room for this story in Eberron canon, at least for some definitions of that canon.

  1. Wayfinder’s Guide to Eberron is also 5e content, but it’s Unearthed Arcana content and moreover is largely replaced by Eberron: Rising from the Last War. I haven’t doubled-checked that publication for statements on this subject, but even if it had some their canonicity would be doubtful.

Many thanks to Ryan C. Thompson and Darth Pseudonym for pointing out many crucial details in Eberron: Rising from the Last War that greatly improved this answer.

dnd 5e – Eberron – Can someone without the mark of storm change the direction of an airship?

Eberron: Rising from the Last War is unequivocal that the Mark of Storms is required to operate the wheel of wind and water that controls an airship:

A dragonmarked heir of House Lyrandar must pilot a Lyrandar airship, channeling the power of the Mark of Storm through the wheel of wind and water that controls the vessel. (…)

Only a dragonmark heir with the Mark of Storm can use the wheel and command the bound elemental.

(Eberron: Rising from the Last War, pg. 234)

Wheel of Wind and Water

Wondrous item, uncommon

(…) allows a creature that possesses the Mark of Storm to telepathically control the elemental bound inside of the vessel.

(Eberron: Rising from the Last War, pg. 280)

No other means of influencing the vessel’s direction—even a little bit—is described in Eberron: Rising from the Last War, and therefore, by extension, in 5e.¹ The wheel of wind and water is the control mechanism for the airship, and it apparently doesn’t do anything without the Mark of Storm.

There’s a tiny amount of wiggle room, maybe, if we assume that the wheel is also physically linked to control surfaces (e.g. a rudder, possibly elevators or airelons), since it is, after all, a “wheel.” On the other hand, for all we know, the name “wheel” is metaphorical, and none of the art for airships shows physical control surfaces that would work that way.

However, this contradicts the original description of Eberron, from 3.5e’s Eberron Campaign Setting:

House Lyrandar operates elemental flying vessels (usually utilizing bound air or fire elementals) to make rapid air travel possible across Khorvaire. Built in Zilargo, these vessels can sometimes be found in privateer hands, but the pilots of Lyrandar are renowned for their skill and expertise.

(Eberron Campaign Setting, pg. 124-125)

There are a couple of things to note here. First, there’s the statement that Zilargo builds airships—not House Lyrandar, nor The Twelve (as suggested by Eberron: Rising from the Last War on page 74). Second, there are privateers—unaffiliated with House Lyrandar and therefore almost-certainly lacking a Mark of Storm—who operate airships. This contradicts the description of the Wind Whisperer Lhazaar Principality that

includes a number of half-elves with the Mark of Storm—foundlings with no tie to House Lyrandar. The Wind Whisperers want to obtain airships by any means necessary.

(Eberron: Rising from the Last War)

In Eberron Campaign Setting, the Wind Whisperers per se weren’t discussed, but non-Lyrandar airships certainly existed, including within the Lhazaar Principalities.

As Eberron: Rising from the Last War is the only 5e book, within 5e it is the alpha and omega of canon. Within wider D&D history, however, that canon has varied, and has included canonical statements that go entirely the opposite way on this. For your own game, you can choose your own canon. I, for one, certainly am always going to maintain Zilargo’s primacy in the field of elemental binding, and the existence of a few, rare independent airships.

  1. Wayfinder’s Guide to Eberron is also 5e content, but it’s Unearthed Arcana content and moreover is largely replaced by Eberron: Rising from the Last War. I haven’t doubled-checked that publication for statements on this subject, but even if it had some their canonicity would be doubtful.

opengl – Controlling camera with arrow keys keeping up vector and direction (to the origin) fixed

So I am trying to understand how to exactly do this. I want to translate the camera in it’s view space while keeping the up vector and direction fixed using arrow keys, so essentially, the camera will move in an imaginary sphere around the fixed point (origin).
First I will share my code
This snipet is basically when I press “left” arrow key, this happens (this is under the running loop)

if (ImGui::IsKeyDown(ImGui::GetKeyIndex(ImGuiKey_LeftArrow))) {
        strcpy(textKeyStatus, "Key status: Left");
        x -= 0.1f;

        glUseProgram(shaderProgram);

        temp = glm::translate(I, glm::vec3(x, y, z));       //making translation matrix
        //applying transformation
        transV = temp * aa;     //aa is the glm::lookat

        invV = glm::inverse(aa);                        //making inverse of viewT
        glm::mat4 g = invV * transV;                    //world coordinates
        double dArray(16) = {0.0};


        //traversing the matrix
        const float *pSource = (const float*) glm::value_ptr(g);
        for (int i = 0; i < 16; ++i)
            dArray(i) = pSource(i);

        for (int i = 0; i < 16; i++) {
            std::cout << dArray(i) << std::endl;
        }
        std::cout << std::endl;

        //world coordinates in 3d vector        
        wC.x = dArray(12);                              
        wC.y = dArray(13);
        wC.z = dArray(14);
        wC.w = dArray(15);

        aa = glm::lookAt(glm::vec3(wC), glm::vec3(0.0, 0.0, 0.0), glm::vec3(0.0, 1.0, 0.0));

        vView_uniform = glGetUniformLocation(shaderProgram, "vView");
        glUniformMatrix4fv(vView_uniform, 1, GL_FALSE, glm::value_ptr(aa));

What ‘should’ be happening :

  1. So aa = glm::lookAt(glm::vec3(100.0, 0.0, 0.0, 1.0), glm::vec3(0.0, 0.0, 0.0), glm::vec3(0.0, 1.0, 0.0));

  2. I have a cuboid placed at the origin, hence the camera position (to properly see the cuboid).

  3. I first create a translation matrix, and then multiply with ‘aa’. Translation w.r.t. view space successful, store it in ‘transV’.

  4. Now I must update the camera (lookat), for that would need the world coordinates. So I find inverse of ‘aa’ and then multiply it with transV. I get ‘g’ which contains the world coordinates. I store the matrix in an array and get the last 4 floats in my ‘wC’ (which is a glm::vec4).

  5. I then update ‘aa’ as you can see.

  6. I then pass the ‘aa’s value to my ‘vView’ in vshader.vs

vshader.vs (just for clarity to what’s happening)

#version 330 core

in vec3 vVertex;

uniform mat4 vModel;
uniform mat4 vView;
uniform mat4 vProjection;
uniform vec3 vColor;


out vec3 fColor;

void main() {
    gl_Position = vProjection * vView * vModel * vec4(vVertex, 1.0);
    fColor = vColor; //Interpolate color
}

Actual behaviour program is far from ideal and very weird. Can anyone please explain what’s wrong?

gui design – Direction of dropdown arrows when the relative position of the UI component and content is reversed

There has been previous discussions and debates relating to the way or the direction that the arrow should be displayed on a dropdown UI component for the hidden and shown states.

This question relates to a slightly different but related issue, which arises when the component is viewed near the bottom of the page and there isn’t enough room to display all of the items that belong to the dropdown list (whether a scrollbar is provided or not). An example of a dropdown list where the contents are displayed above rather than below the triggering component is provided in the screenshot:

enter image description here

So in the case when the dropdown menu is expanded above the UI component in its initial state (when the user clicks on the arrow), should there be any changes to the way the menu behaves in terms of where the arrow is pointing and how the user might scroll through the list of items in the menu? That is, should it be the same as when the menu of items is expanded above the UI component (when the component is more towards the top of the screen) compared to when it is expanded below the component (when it is more towards the bottom of the screen)?

Here is a breakdown of the dropdown list UI component for reference.

mathematics – How to get the up direction given a point and rotation

TLDR:
I’m asking for the direction of the up vector of an entity that can rotate in JavaScript that has a x, y, and rotation (in radians).


I’m using a JavaScript game library. It doesn’t have a transform.up like that of Unity. I’ve been looking around and I ended up with a source code reference of Unity stating the following:

public Quaternion rotation;
public Vector3 up { get { return rotation * Vector3.up; } }

And looking at the multiplication between the Quaternion and Vector3.up:

// Rotates the point /point/ with /rotation/.
public static Vector3 operator*(Quaternion rotation, Vector3 point)
{
    float x = rotation.x * 2F;
    float y = rotation.y * 2F;
    float z = rotation.z * 2F;
    float xx = rotation.x * x;
    float yy = rotation.y * y;
    float zz = rotation.z * z;
    float xy = rotation.x * y;
    float xz = rotation.x * z;
    float yz = rotation.y * z;
    float wx = rotation.w * x;
    float wy = rotation.w * y;
    float wz = rotation.w * z;

    Vector3 res;
    res.x = (1F - (yy + zz)) * point.x + (xy - wz) * point.y + (xz + wy) * point.z;
    res.y = (xy + wz) * point.x + (1F - (xx + zz)) * point.y + (yz - wx) * point.z;
    res.z = (xz - wy) * point.x + (yz + wx) * point.y + (1F - (xx + yy)) * point.z;
    return res;
}

More importantly, the quaternion x, y, z, & w are not in radians and are values between 0 and 1.

But my issue starts with that I have an object that has a x, y, and rotation (in radians). What math and code will I be needing in order to determine that this direction is indeed the up vector of this object? See photo below:
photo

unity – Player head is not rotating back to the movement direction of the player

public class LookAtTarget : MonoBehaviour
{
    public Transform target;
    public Transform bone;
    public float duration;

    Vector3 originalLookDirection;
    Vector3 orig;
    Vector3 lookVectorVelocity;
    public float lookChangeDuration = 0.1f;
    public float maxLookSpeed = 5f;

    private void Start()
    {
        originalLookDirection = bone.forward;
        orig = bone.rotation.eulerAngles;
    }

    private void LateUpdate()
    {
        Vector3 desiredLook = (target.position - bone.position).normalized;

        if (Vector3.Dot(desiredLook, originalLookDirection) > 0)
        {
            var look = Vector3.SmoothDamp(bone.forward,
                                          desiredLook,
                                          ref lookVectorVelocity,
                                          lookChangeDuration,
                                          maxLookSpeed);

            bone.rotation = Quaternion.LookRotation(look);
        }
        else
        {
            bone.rotation = Quaternion.Lerp(bone.rotation, Quaternion.Euler(orig), duration * Time.deltaTime);
        }
    }
}

When the target is rotating around the player the player is smoothly looking at the target than smoothly return back to origin look.

The problem is if the target is not moving stay at same position and I move the player around when the target is in front of the player the player is looking at it but if the player is in front the target is behind the player head is not returning to the right rotation.

The hierarchy structure

The head is child of empty GameObject because the player parent have Animator with idle animation I had to make it this way with the head so in the script in the player parent I reference to the empty GameObject.

This screenshot is when the Cube stay not moving at all and I moved the player to be in front of the cube so now the cube is in the back, the player head should return to original rotation but if I move the player to the right or to the left the head is rotating forward and not rotating with the movement direction :

The head should be looking to the moving direction but he keep rotating to the orig(original) rotation.

The body direction move was to the right but the head is returning to orig.

The player head is not rotating back to the movement direction but to the orig rotation.

unity – Teleport character a fixed distance in the direction it is looking

Game : bird’s eye view (2D)

  1. When I touch the button, my character will teleport a fixed distance in the direction it is facing.

  2. If there is an object at that distance (like a wall) it will not teleport (it can pass through the wall)

For example, the code below teleports the character, but only takes it to the position determined on the stage with the mouse.
I also tried the “raycast” system, but the problem is that even if there is an object nearby, the character should be able to teleport from there, it does not provide me with raycast. (because of Raycasthit)

Actually what I think is very simple. Assigning the transform of the point in the direction my character is facing, for example 10 units away, to my character’s transform. This way my character will be teleported. However, of course, if there is a collider 10 units away, it cannot teleport, but on the other hand, my character can teleport even if there is a collider object 6 units away. Although it seems simple, I could not do it.

void Update ()
{
   if( Input.GetMouseButtonDown( 0 ) )
   {
    transform.position = Camera.main.ScreenToWorldPoint( new Vector3( Input.mousePosition.x, Input.mousePosition.y, 10 ) );
   }
}

movement – I want to teleport my character a fixed distance in the direction it is looking

Game : bird’s eye view (2D)

  1. When I touch the button, my character will teleport a fixed distance in the direction it is facing.

  2. If there is an object at that distance (like a wall) it will not teleport (it can pass through the wall)

For example, the code below teleports the character, but only takes it to the position determined on the stage with the mouse.
I also tried the “raycast” system, but the problem is that even if there is an object nearby, the character should be able to teleport from there, it does not provide me with raycast. (because of Raycasthit)

Actually what I think is very simple. Assigning the transform of the point in the direction my character is facing, for example 10 units away, to my character’s transform. This way my character will be teleported. However, of course, if there is a collider 10 units away, it cannot teleport, but on the other hand, my character can teleport even if there is a collider object 6 units away. Although it seems simple, I could not do it.

void Update ()
{
   if( Input.GetMouseButtonDown( 0 ) )
   {
    transform.position = Camera.main.ScreenToWorldPoint( new Vector3( Input.mousePosition.x, Input.mousePosition.y, 10 ) );
   }
}

pathfinder 1e – Does using scent to “note the direction” provoke an attack of opportunity?

Does a creature with the scent ability who uses their move action to note the direction of a scent provoke an Attack of Opportunity?

The Scent special ability allows that:

When a creature detects a scent, the exact location of the source is not revealed—only its presence somewhere within range. The creature can take a move action to note the direction of the scent. When the creature is within 5 feet of the source, it pinpoints the source’s location.

Scent’s description doesn’t say one way or the other, and I can’t find a general rule like “move actions generally do (not) provoke unless they say otherwise”. The description of AoOs says:

Some actions, when performed in a threatened square, provoke attacks of opportunity as you divert your attention from the battle. Table: Actions in Combat notes many of the actions that provoke attacks of opportunity.

The table is silent on scent. My next thought was to check Perception’s active use, but it’s mum on AoOs, too (simply “Intentionally searching for stimulus is a move action.”).